fix: record and require the walk identity backend
This commit is contained in:
parent
ac315eb48e
commit
6cad638c26
4 changed files with 75 additions and 18 deletions
|
|
@ -23,6 +23,8 @@ from eval_live import ( # noqa: E402
|
|||
labelled_top1,
|
||||
leaked_labels,
|
||||
load_index,
|
||||
recorded_identity,
|
||||
resolve_identity,
|
||||
score_recording,
|
||||
score_tracks,
|
||||
track_churn,
|
||||
|
|
@ -176,7 +178,7 @@ class LeakageTests(unittest.TestCase):
|
|||
)
|
||||
with open(os.path.join(recording, "labels.json"), "w", encoding="utf-8") as handle:
|
||||
json.dump({"labels": [{"frame": 1, "box": [0, 0, 12, 12], "sku_id": "sku_a"}]}, handle)
|
||||
report = score_recording(recording, stock_dir=stock)
|
||||
report = score_recording(recording, stock_dir=stock, identity="matcher")
|
||||
self.assertEqual(report["leakage"]["excluded"], 1)
|
||||
self.assertEqual(report["labelled_top1"]["labels"], 0)
|
||||
self.assertEqual(report["labelled_top1"]["top1"], None)
|
||||
|
|
@ -220,8 +222,8 @@ class CliTests(unittest.TestCase):
|
|||
handle.write(json.dumps(line) + "\n")
|
||||
with open(os.path.join(recording, "labels.json"), "w", encoding="utf-8") as handle:
|
||||
json.dump({"labels": [{"frame": 4, "box": [0, 0, 8, 8], "sku_id": "sku_a"}]}, handle)
|
||||
first = score_recording(recording, stock_dir=stock)
|
||||
second = score_recording(recording, stock_dir=stock)
|
||||
first = score_recording(recording, stock_dir=stock, identity="matcher")
|
||||
second = score_recording(recording, stock_dir=stock, identity="matcher")
|
||||
self.assertEqual(first, second)
|
||||
self.assertEqual(first["decisions"]["accepted"], 1)
|
||||
self.assertEqual(first["decisions"]["ambiguous"], 1)
|
||||
|
|
@ -273,5 +275,26 @@ class IdentityContractTests(unittest.TestCase):
|
|||
self.assertFalse(os.path.exists(report_path))
|
||||
self.assertNotIn("accepted_rate", completed.stdout)
|
||||
|
||||
def test_a_silent_recording_does_not_become_the_matcher(self):
|
||||
with self.assertRaises(EvalInputError):
|
||||
resolve_identity(None, None)
|
||||
self.assertEqual(resolve_identity("matcher", None), "matcher")
|
||||
self.assertEqual(resolve_identity(None, "gallery"), "gallery")
|
||||
with self.assertRaises(EvalInputError):
|
||||
resolve_identity("matcher", "gallery")
|
||||
|
||||
def test_recorded_backend_is_read_and_a_mix_is_refused(self):
|
||||
self.assertEqual(recorded_identity([{"identity_backend": "Gallery"}]), "gallery")
|
||||
self.assertIsNone(recorded_identity([{"frame": 1}]))
|
||||
self.assertEqual(
|
||||
recorded_identity([{"identity": {"backend": "matcher", "sku_id": "sku_a"}}]),
|
||||
"matcher",
|
||||
)
|
||||
with self.assertRaises(EvalInputError):
|
||||
recorded_identity([
|
||||
{"identity_backend": "gallery"},
|
||||
{"identity_backend": "matcher"},
|
||||
])
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue