test_answer_blocked_randomization_and_dual_primary_holm (__main__.AnswerExperimentChecks.test_answer_blocked_randomization_and_dual_primary_holm) ... ok
test_answer_grader_context_keeps_evidence_and_masks_assignment (__main__.AnswerExperimentChecks.test_answer_grader_context_keeps_evidence_and_masks_assignment) ... ok
test_answer_grades_reject_out_of_range_and_noninteger_values (__main__.AnswerExperimentChecks.test_answer_grades_reject_out_of_range_and_noninteger_values) ... 
  test_answer_grades_reject_out_of_range_and_noninteger_values (__main__.AnswerExperimentChecks.test_answer_grades_reject_out_of_range_and_noninteger_values) (bad_grade=True) ... FAIL
test_answer_grades_require_each_obligation_once (__main__.AnswerExperimentChecks.test_answer_grades_require_each_obligation_once) ... ok
test_complementary_assignment_has_each_question_once_per_reader (__main__.AnswerExperimentChecks.test_complementary_assignment_has_each_question_once_per_reader) ... ok
test_pool_includes_all_compared_top5_with_blinded_unique_codes (__main__.EvaluationChecks.test_pool_includes_all_compared_top5_with_blinded_unique_codes) ... ok
test_rows_use_grade_threshold_fixed_denominator_and_agreed_coverage (__main__.EvaluationChecks.test_rows_use_grade_threshold_fixed_denominator_and_agreed_coverage) ... ok
test_holm_monotonicity_original_order_ties_and_clipping (__main__.MetricChecks.test_holm_monotonicity_original_order_ties_and_clipping) ... ok
test_kappa_empty_is_undefined_without_nan (__main__.MetricChecks.test_kappa_empty_is_undefined_without_nan) ... ok
test_kappa_matches_pairwise_expectation_and_degenerate_case (__main__.MetricChecks.test_kappa_matches_pairwise_expectation_and_degenerate_case) ... ok
test_kappa_rejects_mismatched_pairs_and_invalid_grades (__main__.MetricChecks.test_kappa_rejects_mismatched_pairs_and_invalid_grades) ... ok
test_ndcg_exponential_gains_fractional_grades_and_pool_ideal (__main__.MetricChecks.test_ndcg_exponential_gains_fractional_grades_and_pool_ideal) ... ok
test_ndcg_zero_ideal_empty_and_short_rankings (__main__.MetricChecks.test_ndcg_zero_ideal_empty_and_short_rankings) ... ok
test_paired_zero_constant_and_stratified_resampling (__main__.MetricChecks.test_paired_zero_constant_and_stratified_resampling) ... ok
test_bm25_tfidf_rrf_match_hand_computation (__main__.RankingChecks.test_bm25_tfidf_rrf_match_hand_computation) ... ok
test_nonfinite_scores_rejected (__main__.RankingChecks.test_nonfinite_scores_rejected) ... ok
test_positive_only_and_stable_id_ties (__main__.RankingChecks.test_positive_only_and_stable_id_ties) ... ok
test_unknown_query_has_no_candidates (__main__.RankingChecks.test_unknown_query_has_no_candidates) ... ok
test_controls_preserve_topology_or_direction_as_declared (__main__.TypedChecks.test_controls_preserve_topology_or_direction_as_declared) ... ok
test_cycles_and_self_edges_do_not_revisit_nodes (__main__.TypedChecks.test_cycles_and_self_edges_do_not_revisit_nodes) ... ok
test_depth_two_discount_no_third_hop (__main__.TypedChecks.test_depth_two_discount_no_third_hop) ... ok
test_empty_zero_and_no_reachable_path_preserve_raw_baseline (__main__.TypedChecks.test_empty_zero_and_no_reachable_path_preserve_raw_baseline) ... ok
test_forward_direction_and_reverse_control (__main__.TypedChecks.test_forward_direction_and_reverse_control) ... ok
test_independent_scalar_oracle_multiple_seeds_paths_and_ties (__main__.TypedChecks.test_independent_scalar_oracle_multiple_seeds_paths_and_ties) ... ok
test_intent_weights_are_exact_token_matches (__main__.TypedChecks.test_intent_weights_are_exact_token_matches) ... ok
test_metadata_and_evidence_remain_available_for_edge_lookup (__main__.TypedChecks.test_metadata_and_evidence_remain_available_for_edge_lookup) ... ok
test_seed_cap_uses_positive_scores_and_id_ties (__main__.TypedChecks.test_seed_cap_uses_positive_scores_and_id_ties) ... ok
test_single_outgoing_type_weight_cancels (__main__.TypedChecks.test_single_outgoing_type_weight_cancels) ... ok
test_symmetric_direction_survives_reverse (__main__.TypedChecks.test_symmetric_direction_survives_reverse) ... ok
test_type_intent_changes_relative_branch_weights (__main__.TypedChecks.test_type_intent_changes_relative_branch_weights) ... ok
test_rewiring_preserves_degree_edge_count_and_seed (__main__.UntypedChecks.test_rewiring_preserves_degree_edge_count_and_seed) ... ok
test_walk_matches_independent_scalar_iterations (__main__.UntypedChecks.test_walk_matches_independent_scalar_iterations) ... ok

======================================================================
FAIL: test_answer_grades_reject_out_of_range_and_noninteger_values (__main__.AnswerExperimentChecks.test_answer_grades_reject_out_of_range_and_noninteger_values) (bad_grade=True)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "D:\W\Unified\USS\128\tools\test_r02_engine.py", line 647, in test_answer_grades_reject_out_of_range_and_noninteger_values
    with self.assertRaises((AssertionError, ValueError)):
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: (<class 'AssertionError'>, <class 'ValueError'>) not raised

----------------------------------------------------------------------
Ran 32 tests in 0.323s

FAILED (failures=1)
