Skip to content
Tracon

RunStoreContract

Namespace Tracon.Testing.Contracts.Storage · Assembly Tracon.Testing.Contracts.Xunit.dll

Behavior tests for the IRunStore contract.

public abstract class RunStoreContract : TenantIsolationContract<IRunStore>, IAsyncLifetime, IAsyncDisposable

objectTenantIsolationContract<IRunStore>RunStoreContract

IAsyncLifetime, IAsyncDisposable

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()

The in-memory store and the PostgreSQL store must pass the same scenarios.

protected RunStoreContract()

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()

Task

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()

Task

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()

Task

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()

Task

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()

Task

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()

Task

[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 432)]
public Task Attribution_round_trips()

Task

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()

Task

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()

Task

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()

Task

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()

Task

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()

Task

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()

Task

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()

Task

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()

Task

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()

Task

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()

Task

[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 276)]
public Task Completion_updates_the_summary()

Task

[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 457)]
public Task ContinuedFromRunId_round_trips()

Task

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()

Task

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()

Task

[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1787)]
public Task Cost_is_written_and_read_back()

Task

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()

Task

Reports how many records the given tenant sees through the listing endpoint.

protected override ValueTask<int> CountAsync(string tenantId)

tenantId string

The reading tenant.

ValueTask<int>

The number of records seen.

The score store that writes into the SAME backend as Store.

protected virtual ValueTask<IRunScoreStore?> CreateScoreStoreAsync()

ValueTask<IRunScoreStore?>

The score store, or null when the fixture has none.

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()

Task

[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1353)]
public Task Empty_store_summary_returns_zero()

Task

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()

Task

[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 173)]
public Task Event_fields_round_trip()

Task

[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 152)]
public Task Events_are_read_in_sequence_order()

Task

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()

Task

Reports whether the record is visible from the given tenant’s viewpoint.

protected override ValueTask<bool> ExistsAsync(string tenantId, object key)

tenantId string

The reading tenant.

key object

The key returned by TenantIsolationContract.SeedAsync.

ValueTask<bool>

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()

Task

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()

Task

[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1917)]
public Task Experiment_results_include_cost()

Task

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()

Task

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()

Task

[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1636)]
public Task List_returns_only_root_runs_by_default()

Task

[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 253)]
public Task Nonexistent_run_cannot_be_completed()

Task

[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 263)]
public Task Nonexistent_run_returns_empty_events()

Task

[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1164)]
public Task Nonexistent_run_returns_null()

Task

[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1686)]
public Task Parent_filter_overrides_root_filter()

Task

[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1105)]
public Task Query_applies_paging()

Task

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()

Task

[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1057)]
public Task Query_filters_by_agent_name()

Task

[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1134)]
public Task Query_filters_by_error_type()

Task

[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1121)]
public Task Query_filters_by_start_time()

Task

[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1070)]
public Task Query_filters_by_status()

Task

[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 517)]
public Task Query_filters_by_user()

Task

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()

Task

[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1089)]
public Task Query_sorts_newest_first()

Task

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()

Task

[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 128)]
public Task Reusing_a_sequence_number_is_rejected()

Task

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()

Task

Writes a sample record for the given tenant.

protected override ValueTask<object> SeedAsync(string tenantId, string name)

tenantId string

The tenant that owns the record.

name string

The name distinguishing the record. The same name may be used by two tenants.

ValueTask<object>

The key to use for reading the record back.

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()

Task

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()

Task

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()

Task

[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 745)]
public Task Statistics_break_down_by_user()

Task

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()

Task

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()

Task

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()

Task

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()

Task

[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1168)]
public Task Summary_aggregates_statuses_and_tokens()

Task

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()

Task

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()

Task

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()

Task

[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1366)]
public Task Summary_computes_version_breakdown()

Task

[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1188)]
public Task Summary_excludes_eval_runs()

Task

[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1314)]
public Task Summary_filters_by_agent_name()

Task

[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1326)]
public Task Summary_filters_by_start_time()

Task

[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1340)]
public Task Summary_limits_agent_breakdown()

Task

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()

Task

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()

Task

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()

Task

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()

Task

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()

Task

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()

Task

[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1963)]
public Task Time_series_does_not_exclude_eval_runs()

Task

[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1944)]
public Task Time_series_fills_empty_buckets()

Task

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()

Task

[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 412)]
public Task Token_info_stays_null_when_absent()

Task

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()

Task

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()

Task

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()

Task

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()

Task

[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1564)]
public Task Tree_fields_round_trip()

Task

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()

Task

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()

Task

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()

Task

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()

Task

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()

Task

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()

Task

[Fact("/Users/farukatasoy/Desktop/projects/Tracon/src/Tracon.Testing.Contracts.Xunit/Contracts/RunStoreContract.cs", 1598)]
public Task Workflow_run_lives_in_the_same_table()

Task