.NET API
RunStoreContract
Tracon.Testing.Contracts.Xunit.dllBehavior tests for the IRunStore contract.
public abstract class RunStoreContract : TenantIsolationContract<IRunStore>, IAsyncLifetime, IAsyncDisposableInheritance
Section titled “Inheritance”object ← TenantIsolationContract<IRunStore> ← RunStoreContract
Implements
Section titled “Implements”IAsyncLifetime, IAsyncDisposable
Inherited Members
Section titled “Inherited Members”TenantIsolationContract<IRunStore>.TenantA, TenantIsolationContract<IRunStore>.TenantB, TenantIsolationContract<IRunStore>.CreateStoreAsync(), TenantIsolationContract<IRunStore>.UseAmbientTenant(MutableTenantContext), TenantIsolationContract<IRunStore>.InitializeAsync(), TenantIsolationContract<IRunStore>.DisposeAsync(), TenantIsolationContract<IRunStore>.OnDisposeAsync(), TenantIsolationContract<IRunStore>.SeedAsync(string, string), TenantIsolationContract<IRunStore>.ExistsAsync(string, object), TenantIsolationContract<IRunStore>.CountAsync(string), TenantIsolationContract<IRunStore>.TryDeleteAsync(string, object), TenantIsolationContract<IRunStore>.TryOverwriteAsync(string, string), TenantIsolationContract<IRunStore>.Tenant_cannot_read_another_tenants_record(), TenantIsolationContract<IRunStore>.Tenant_reads_its_own_record(), TenantIsolationContract<IRunStore>.Tenant_does_not_see_another_tenants_record_in_the_list(), TenantIsolationContract<IRunStore>.Tenant_cannot_delete_another_tenants_record(), TenantIsolationContract<IRunStore>.Same_name_lives_independently_across_two_tenants(), TenantIsolationContract<IRunStore>.AmbientTenant, TenantIsolationContract<IRunStore>.Store, object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()
Remarks
Section titled “Remarks”The in-memory store and the PostgreSQL store must pass the same scenarios.
Constructors
Section titled “Constructors”RunStoreContract()
Section titled “ RunStoreContract()”protected RunStoreContract()Methods
Section titled “Methods”A_label_key_without_a_value_matches_any_value_of_that_key()
Section titled “ A_label_key_without_a_value_matches_any_value_of_that_key()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 553)]public Task A_label_key_without_a_value_matches_any_value_of_that_key()Returns
Section titled “Returns”A_run_that_reports_only_a_cache_count_still_produces_a_usage_record()
Section titled “ A_run_that_reports_only_a_cache_count_still_produces_a_usage_record()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 624)]public Task A_run_that_reports_only_a_cache_count_still_produces_a_usage_record()Returns
Section titled “Returns”A_run_without_attribution_reads_back_as_null_not_as_an_empty_map()
Section titled “ A_run_without_attribution_reads_back_as_null_not_as_an_empty_map()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 476)]public Task A_run_without_attribution_reads_back_as_null_not_as_an_empty_map()Returns
Section titled “Returns”A_second_start_without_attribution_does_not_erase_the_first_one()
Section titled “ A_second_start_without_attribution_does_not_erase_the_first_one()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 492)]public Task A_second_start_without_attribution_does_not_erase_the_first_one()Returns
Section titled “Returns”AppendEventAsync_does_not_write_with_the_wrong_expected_tenant()
Section titled “ AppendEventAsync_does_not_write_with_the_wrong_expected_tenant()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 2163)]public Task AppendEventAsync_does_not_write_with_the_wrong_expected_tenant()Returns
Section titled “Returns”Applied_unit_prices_round_trip_and_do_not_enter_the_total()
Section titled “ Applied_unit_prices_round_trip_and_do_not_enter_the_total()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 680)]public Task Applied_unit_prices_round_trip_and_do_not_enter_the_total()Returns
Section titled “Returns”Attribution_round_trips()
Section titled “ Attribution_round_trips()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 432)]public Task Attribution_round_trips()Returns
Section titled “Returns”ClaimOrphanedRunsAsync_does_not_touch_a_Running_row_within_the_threshold()
Section titled “ ClaimOrphanedRunsAsync_does_not_touch_a_Running_row_within_the_threshold()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 2358)]public Task ClaimOrphanedRunsAsync_does_not_touch_a_Running_row_within_the_threshold()Returns
Section titled “Returns”ClaimOrphanedRunsAsync_marks_a_stale_Running_row_as_Failed()
Section titled “ ClaimOrphanedRunsAsync_marks_a_stale_Running_row_as_Failed()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 2290)]public Task ClaimOrphanedRunsAsync_marks_a_stale_Running_row_as_Failed()Returns
Section titled “Returns”ClaimOrphanedRunsAsync_never_touches_a_Queued_row()
Section titled “ ClaimOrphanedRunsAsync_never_touches_a_Queued_row()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 2374)]public Task ClaimOrphanedRunsAsync_never_touches_a_Queued_row()Returns
Section titled “Returns”ClaimOrphanedRunsAsync_reports_ContinuedFromRunId_on_the_claimed_record()
Section titled “ ClaimOrphanedRunsAsync_reports_ContinuedFromRunId_on_the_claimed_record()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 2327)]public Task ClaimOrphanedRunsAsync_reports_ContinuedFromRunId_on_the_claimed_record()Returns
Section titled “Returns”CompleteRunAsync_does_not_close_with_the_wrong_expected_tenant()
Section titled “ CompleteRunAsync_does_not_close_with_the_wrong_expected_tenant()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 2187)]public Task CompleteRunAsync_does_not_close_with_the_wrong_expected_tenant()Returns
Section titled “Returns”Completion_leaves_the_model_id_unchanged_when_no_override_is_given()
Section titled “ Completion_leaves_the_model_id_unchanged_when_no_override_is_given()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 331)]public Task Completion_leaves_the_model_id_unchanged_when_no_override_is_given()Returns
Section titled “Returns”Completion_leaves_the_model_provider_unchanged_when_no_override_is_given()
Section titled “ Completion_leaves_the_model_provider_unchanged_when_no_override_is_given()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 368)]public Task Completion_leaves_the_model_provider_unchanged_when_no_override_is_given()Returns
Section titled “Returns”Completion_overrides_the_model_id_when_a_fallback_answered()
Section titled “ Completion_overrides_the_model_id_when_a_fallback_answered()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 309)]public Task Completion_overrides_the_model_id_when_a_fallback_answered()Returns
Section titled “Returns”Completion_overrides_the_model_provider_when_a_fallback_answered()
Section titled “ Completion_overrides_the_model_provider_when_a_fallback_answered()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 347)]public Task Completion_overrides_the_model_provider_when_a_fallback_answered()Returns
Section titled “Returns”Completion_stores_error_class_and_fingerprint()
Section titled “ Completion_stores_error_class_and_fingerprint()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 384)]public Task Completion_stores_error_class_and_fingerprint()Returns
Section titled “Returns”Completion_updates_the_summary()
Section titled “ Completion_updates_the_summary()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 276)]public Task Completion_updates_the_summary()Returns
Section titled “Returns”ContinuedFromRunId_round_trips()
Section titled “ ContinuedFromRunId_round_trips()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 457)]public Task ContinuedFromRunId_round_trips()Returns
Section titled “Returns”Cost_does_not_exist_at_all_when_model_is_unknown()
Section titled “ Cost_does_not_exist_at_all_when_model_is_unknown()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1842)]public Task Cost_does_not_exist_at_all_when_model_is_unknown()Returns
Section titled “Returns”Cost_fields_are_null_but_source_is_written_as_unknown_when_pricing_is_undefined()
Section titled “ Cost_fields_are_null_but_source_is_written_as_unknown_when_pricing_is_undefined()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1819)]public Task Cost_fields_are_null_but_source_is_written_as_unknown_when_pricing_is_undefined()Returns
Section titled “Returns”Cost_is_written_and_read_back()
Section titled “ Cost_is_written_and_read_back()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1787)]public Task Cost_is_written_and_read_back()Returns
Section titled “Returns”Cost_recalculation_updates_the_target_row()
Section titled “ Cost_recalculation_updates_the_target_row()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1991)]public Task Cost_recalculation_updates_the_target_row()Returns
Section titled “Returns”CountAsync(string)
Section titled “ CountAsync(string)”Reports how many records the given tenant sees through the listing endpoint.
protected override ValueTask<int> CountAsync(string tenantId)Parameters
Section titled “Parameters”tenantId string
The reading tenant.
Returns
Section titled “Returns”The number of records seen.
CreateScoreStoreAsync()
Section titled “ CreateScoreStoreAsync()”The score store that writes into the SAME backend as Store.
protected virtual ValueTask<IRunScoreStore?> CreateScoreStoreAsync()Returns
Section titled “Returns”The score store, or null when the fixture has none.
Remarks
Section titled “Remarks”IRunStore.GetExperimentResultsAsync averages the
run_scores rows belonging to each run, but scores are written
through a DIFFERENT interface. A fixture that cannot hand back a score
store pointing at the same backend skips the scenarios that need one;
every store in this repository overrides this.
Virtual and not abstract on purpose: this contract ships, and turning an existing contract class abstract would break every third-party store that already derives from it.
Custom_event_custom_type_round_trips_and_stays_null_for_every_other_type()
Section titled “ Custom_event_custom_type_round_trips_and_stays_null_for_every_other_type()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 206)]public Task Custom_event_custom_type_round_trips_and_stays_null_for_every_other_type()Returns
Section titled “Returns”Empty_store_summary_returns_zero()
Section titled “ Empty_store_summary_returns_zero()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1353)]public Task Empty_store_summary_returns_zero()Returns
Section titled “Returns”Event_cannot_be_appended_to_a_nonexistent_run()
Section titled “ Event_cannot_be_appended_to_a_nonexistent_run()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 248)]public Task Event_cannot_be_appended_to_a_nonexistent_run()Returns
Section titled “Returns”Event_fields_round_trip()
Section titled “ Event_fields_round_trip()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 173)]public Task Event_fields_round_trip()Returns
Section titled “Returns”Events_are_read_in_sequence_order()
Section titled “ Events_are_read_in_sequence_order()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 152)]public Task Events_are_read_in_sequence_order()Returns
Section titled “Returns”Every_cost_total_includes_the_cache_charge()
Section titled “ Every_cost_total_includes_the_cache_charge()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 977)]public Task Every_cost_total_includes_the_cache_charge()Returns
Section titled “Returns”ExistsAsync(string, object)
Section titled “ ExistsAsync(string, object)”Reports whether the record is visible from the given tenant’s viewpoint.
protected override ValueTask<bool> ExistsAsync(string tenantId, object key)Parameters
Section titled “Parameters”tenantId string
The reading tenant.
key object
The key returned by TenantIsolationContract.SeedAsync.
Returns
Section titled “Returns”true if the record is visible.
Experiment_results_are_summarized_per_arm()
Section titled “ Experiment_results_are_summarized_per_arm()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1412)]public Task Experiment_results_are_summarized_per_arm()Returns
Section titled “Returns”Experiment_results_average_a_run_level_score_written_with_an_empty_message_id()
Section titled “ Experiment_results_average_a_run_level_score_written_with_an_empty_message_id()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1464)]public Task Experiment_results_average_a_run_level_score_written_with_an_empty_message_id()Returns
Section titled “Returns”Experiment_results_include_cost()
Section titled “ Experiment_results_include_cost()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1917)]public Task Experiment_results_include_cost()Returns
Section titled “Returns”Experiment_results_leave_a_message_level_score_out_of_the_average()
Section titled “ Experiment_results_leave_a_message_level_score_out_of_the_average()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1511)]public Task Experiment_results_leave_a_message_level_score_out_of_the_average()Returns
Section titled “Returns”Experiment_results_return_empty_for_an_experiment_with_no_traffic()
Section titled “ Experiment_results_return_empty_for_an_experiment_with_no_traffic()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1556)]public Task Experiment_results_return_empty_for_an_experiment_with_no_traffic()Returns
Section titled “Returns”List_returns_only_root_runs_by_default()
Section titled “ List_returns_only_root_runs_by_default()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1636)]public Task List_returns_only_root_runs_by_default()Returns
Section titled “Returns”Nonexistent_run_cannot_be_completed()
Section titled “ Nonexistent_run_cannot_be_completed()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 253)]public Task Nonexistent_run_cannot_be_completed()Returns
Section titled “Returns”Nonexistent_run_returns_empty_events()
Section titled “ Nonexistent_run_returns_empty_events()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 263)]public Task Nonexistent_run_returns_empty_events()Returns
Section titled “Returns”Nonexistent_run_returns_null()
Section titled “ Nonexistent_run_returns_null()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1164)]public Task Nonexistent_run_returns_null()Returns
Section titled “Returns”Parent_filter_overrides_root_filter()
Section titled “ Parent_filter_overrides_root_filter()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1686)]public Task Parent_filter_overrides_root_filter()Returns
Section titled “Returns”Query_applies_paging()
Section titled “ Query_applies_paging()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1105)]public Task Query_applies_paging()Returns
Section titled “Returns”Query_filters_by_a_label_key_and_value_together()
Section titled “ Query_filters_by_a_label_key_and_value_together()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 530)]public Task Query_filters_by_a_label_key_and_value_together()Returns
Section titled “Returns”Query_filters_by_agent_name()
Section titled “ Query_filters_by_agent_name()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1057)]public Task Query_filters_by_agent_name()Returns
Section titled “Returns”Query_filters_by_error_type()
Section titled “ Query_filters_by_error_type()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1134)]public Task Query_filters_by_error_type()Returns
Section titled “Returns”Query_filters_by_start_time()
Section titled “ Query_filters_by_start_time()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1121)]public Task Query_filters_by_start_time()Returns
Section titled “Returns”Query_filters_by_status()
Section titled “ Query_filters_by_status()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1070)]public Task Query_filters_by_status()Returns
Section titled “Returns”Query_filters_by_user()
Section titled “ Query_filters_by_user()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 517)]public Task Query_filters_by_user()Returns
Section titled “Returns”Query_session_filter_with_includeChildren_also_returns_child_runs()
Section titled “ Query_session_filter_with_includeChildren_also_returns_child_runs()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1658)]public Task Query_session_filter_with_includeChildren_also_returns_child_runs()Returns
Section titled “Returns”Query_sorts_newest_first()
Section titled “ Query_sorts_newest_first()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1089)]public Task Query_sorts_newest_first()Returns
Section titled “Returns”RecordToolInvocationAsync_does_not_write_with_the_wrong_expected_tenant()
Section titled “ RecordToolInvocationAsync_does_not_write_with_the_wrong_expected_tenant()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 2241)]public Task RecordToolInvocationAsync_does_not_write_with_the_wrong_expected_tenant()Returns
Section titled “Returns”Reusing_a_sequence_number_is_rejected()
Section titled “ Reusing_a_sequence_number_is_rejected()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 128)]public Task Reusing_a_sequence_number_is_rejected()Returns
Section titled “Returns”Run_record_is_stamped_with_the_current_tenant()
Section titled “ Run_record_is_stamped_with_the_current_tenant()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 2134)]public Task Run_record_is_stamped_with_the_current_tenant()Returns
Section titled “Returns”SeedAsync(string, string)
Section titled “ SeedAsync(string, string)”Writes a sample record for the given tenant.
protected override ValueTask<object> SeedAsync(string tenantId, string name)Parameters
Section titled “Parameters”tenantId string
The tenant that owns the record.
name string
The name distinguishing the record. The same name may be used by two tenants.
Returns
Section titled “Returns”The key to use for reading the record back.
Remarks
Section titled “Remarks”The tenant is not a parameter on the interface; it is read from ITenantContext. Each hook therefore sets the current tenant first.
StartRunAsync_return_value_carries_the_coalesced_attribution()
Section titled “ StartRunAsync_return_value_carries_the_coalesced_attribution()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 106)]public Task StartRunAsync_return_value_carries_the_coalesced_attribution()Returns
Section titled “Returns”StartRunAsync_upserts_when_called_twice_with_the_same_id()
Section titled “ StartRunAsync_upserts_when_called_twice_with_the_same_id()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 81)]public Task StartRunAsync_upserts_when_called_twice_with_the_same_id()Returns
Section titled “Returns”Statistics_break_down_by_label_and_the_rows_do_not_partition_the_runs()
Section titled “ Statistics_break_down_by_label_and_the_rows_do_not_partition_the_runs()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 767)]public Task Statistics_break_down_by_label_and_the_rows_do_not_partition_the_runs()Returns
Section titled “Returns”Statistics_break_down_by_user()
Section titled “ Statistics_break_down_by_user()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 745)]public Task Statistics_break_down_by_user()Returns
Section titled “Returns”Statistics_narrow_to_one_label_when_asked()
Section titled “ Statistics_narrow_to_one_label_when_asked()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 813)]public Task Statistics_narrow_to_one_label_when_asked()Returns
Section titled “Returns”Statistics_narrow_to_one_user_when_asked()
Section titled “ Statistics_narrow_to_one_user_when_asked()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 800)]public Task Statistics_narrow_to_one_user_when_asked()Returns
Section titled “Returns”Statistics_total_the_token_breakdown_beside_the_input_and_output_totals()
Section titled “ Statistics_total_the_token_breakdown_beside_the_input_and_output_totals()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 835)]public Task Statistics_total_the_token_breakdown_beside_the_input_and_output_totals()Returns
Section titled “Returns”Summary_aggregates_cost_and_reports_the_undefined_count()
Section titled “ Summary_aggregates_cost_and_reports_the_undefined_count()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1900)]public Task Summary_aggregates_cost_and_reports_the_undefined_count()Returns
Section titled “Returns”Summary_aggregates_statuses_and_tokens()
Section titled “ Summary_aggregates_statuses_and_tokens()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1168)]public Task Summary_aggregates_statuses_and_tokens()Returns
Section titled “Returns”Summary_and_time_series_do_not_leak_across_tenants()
Section titled “ Summary_and_time_series_do_not_leak_across_tenants()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 2095)]public Task Summary_and_time_series_do_not_leak_across_tenants()Returns
Section titled “Returns”Summary_computes_breakdown_by_error_class()
Section titled “ Summary_computes_breakdown_by_error_class()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1235)]public Task Summary_computes_breakdown_by_error_class()Returns
Section titled “Returns”Summary_computes_error_rate_only_over_completed_runs()
Section titled “ Summary_computes_error_rate_only_over_completed_runs()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1212)]public Task Summary_computes_error_rate_only_over_completed_runs()Returns
Section titled “Returns”Summary_computes_version_breakdown()
Section titled “ Summary_computes_version_breakdown()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1366)]public Task Summary_computes_version_breakdown()Returns
Section titled “Returns”Summary_excludes_eval_runs()
Section titled “ Summary_excludes_eval_runs()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1188)]public Task Summary_excludes_eval_runs()Returns
Section titled “Returns”Summary_filters_by_agent_name()
Section titled “ Summary_filters_by_agent_name()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1314)]public Task Summary_filters_by_agent_name()Returns
Section titled “Returns”Summary_filters_by_start_time()
Section titled “ Summary_filters_by_start_time()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1326)]public Task Summary_filters_by_start_time()Returns
Section titled “Returns”Summary_limits_agent_breakdown()
Section titled “ Summary_limits_agent_breakdown()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1340)]public Task Summary_limits_agent_breakdown()Returns
Section titled “Returns”Summary_returns_at_most_three_failure_clusters_per_class()
Section titled “ Summary_returns_at_most_three_failure_clusters_per_class()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1259)]public Task Summary_returns_at_most_three_failure_clusters_per_class()Returns
Section titled “Returns”Summary_returns_no_error_rate_when_no_run_has_completed()
Section titled “ Summary_returns_no_error_rate_when_no_run_has_completed()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1227)]public Task Summary_returns_no_error_rate_when_no_run_has_completed()Returns
Section titled “Returns”Summary_rows_with_no_error_class_appear_in_the_unknown_bucket()
Section titled “ Summary_rows_with_no_error_class_appear_in_the_unknown_bucket()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1274)]public Task Summary_rows_with_no_error_class_appear_in_the_unknown_bucket()Returns
Section titled “Returns”Summary_sorts_agent_breakdown_by_run_count()
Section titled “ Summary_sorts_agent_breakdown_by_run_count()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1297)]public Task Summary_sorts_agent_breakdown_by_run_count()Returns
Section titled “Returns”The_cache_charge_round_trips_and_counts_toward_the_total()
Section titled “ The_cache_charge_round_trips_and_counts_toward_the_total()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 643)]public Task The_cache_charge_round_trips_and_counts_toward_the_total()Returns
Section titled “Returns”The_token_breakdown_round_trips_and_stays_null_when_it_was_never_reported()
Section titled “ The_token_breakdown_round_trips_and_stays_null_when_it_was_never_reported()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 576)]public Task The_token_breakdown_round_trips_and_stays_null_when_it_was_never_reported()Returns
Section titled “Returns”Time_series_does_not_exclude_eval_runs()
Section titled “ Time_series_does_not_exclude_eval_runs()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1963)]public Task Time_series_does_not_exclude_eval_runs()Returns
Section titled “Returns”Time_series_fills_empty_buckets()
Section titled “ Time_series_fills_empty_buckets()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1944)]public Task Time_series_fills_empty_buckets()Returns
Section titled “Returns”Time_series_throws_when_the_bucket_limit_is_exceeded()
Section titled “ Time_series_throws_when_the_bucket_limit_is_exceeded()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1979)]public Task Time_series_throws_when_the_bucket_limit_is_exceeded()Returns
Section titled “Returns”Token_info_stays_null_when_absent()
Section titled “ Token_info_stays_null_when_absent()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 412)]public Task Token_info_stays_null_when_absent()Returns
Section titled “Returns”TouchHeartbeatAsync_refreshed_row_is_not_considered_orphaned()
Section titled “ TouchHeartbeatAsync_refreshed_row_is_not_considered_orphaned()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 2391)]public Task TouchHeartbeatAsync_refreshed_row_is_not_considered_orphaned()Returns
Section titled “Returns”TouchHeartbeatAsync_silently_skips_a_nonexistent_or_non_Running_id()
Section titled “ TouchHeartbeatAsync_silently_skips_a_nonexistent_or_non_Running_id()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 2269)]public Task TouchHeartbeatAsync_silently_skips_a_nonexistent_or_non_Running_id()Returns
Section titled “Returns”Tree_cost_adds_the_cache_charge_of_every_run_in_the_tree()
Section titled “ Tree_cost_adds_the_cache_charge_of_every_run_in_the_tree()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 931)]public Task Tree_cost_adds_the_cache_charge_of_every_run_in_the_tree()Returns
Section titled “Returns”Tree_cost_is_not_summed_with_its_own_cost_separate_fields()
Section titled “ Tree_cost_is_not_summed_with_its_own_cost_separate_fields()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1864)]public Task Tree_cost_is_not_summed_with_its_own_cost_separate_fields()Returns
Section titled “Returns”Tree_fields_round_trip()
Section titled “ Tree_fields_round_trip()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1564)]public Task Tree_fields_round_trip()Returns
Section titled “Returns”Tree_query_returns_the_root_and_all_its_descendants()
Section titled “ Tree_query_returns_the_root_and_all_its_descendants()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1708)]public Task Tree_query_returns_the_root_and_all_its_descendants()Returns
Section titled “Returns”Tree_total_combines_tokens_of_root_and_descendants()
Section titled “ Tree_total_combines_tokens_of_root_and_descendants()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1736)]public Task Tree_total_combines_tokens_of_root_and_descendants()Returns
Section titled “Returns”Tree_total_stays_null_when_no_tokens_are_reported()
Section titled “ Tree_total_stays_null_when_no_tokens_are_reported()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1770)]public Task Tree_total_stays_null_when_no_tokens_are_reported()Returns
Section titled “Returns”Tree_usage_sums_the_breakdown_across_child_runs()
Section titled “ Tree_usage_sums_the_breakdown_across_child_runs()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 866)]public Task Tree_usage_sums_the_breakdown_across_child_runs()Returns
Section titled “Returns”Unit_prices_stay_null_when_the_model_price_is_unknown()
Section titled “ Unit_prices_stay_null_when_the_model_price_is_unknown()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 721)]public Task Unit_prices_stay_null_when_the_model_price_is_unknown()Returns
Section titled “Returns”UpdateRunCostAsync_does_not_update_with_the_wrong_expected_tenant()
Section titled “ UpdateRunCostAsync_does_not_update_with_the_wrong_expected_tenant()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 2216)]public Task UpdateRunCostAsync_does_not_update_with_the_wrong_expected_tenant()Returns
Section titled “Returns”Workflow_run_lives_in_the_same_table()
Section titled “ Workflow_run_lives_in_the_same_table()”[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1598)]public Task Workflow_run_lives_in_the_same_table()