import numpy as np from scripts.compare_openvino_classes import matrix_report, output_class, probability_class def test_detector_output_channel_offset_and_background(): output = np.zeros((1, 13, 336), dtype=np.float32) output[0, :4, 0] = [64, 64, 128, 128] assert output_class(output, 0.25, 4) == 4 output[0, 5, 0] = 0.6 assert output_class(output, 0.25, 4) == 1 # blackdot, not black output[0, 4, 50] = 0.9 assert output_class(output, 0.25, 4) == 0 def test_report_excludes_background_from_foreground_agreement(): matrix = np.array([[1, 1], [0, 8]]) report = matrix_report(matrix, ["blackdot", "normal"], 1) assert report["agreement"] == 0.9 assert report["foreground_agreement"] == 0.5 def test_probability_output_has_no_coordinate_offset(): probabilities = np.array([[0.1, 0.8, 0.1]]) assert probability_class(probabilities, .25, 2) == 1 assert probability_class(np.array([[.3, .4, .3]]), .5, 2) == 2