"""Confidence calibration. These are the thresholds that decide whether a download lands in the library untouched or waits for a human, so the bands matter more than the exact numbers -- assert the band, not the score.""" import os, sys sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) os.environ.setdefault("MUSE_AUTH", "off") os.environ.setdefault("MUSE_DB", "dev/matching.db") import app # noqa: E402 CASES = [ # well-organised shares: artist and album in the path (r"@@music\Radiohead\Pablo Honey\02 - Creep.flac", "Radiohead", "Creep", "Pablo Honey", "auto"), (r"Kendrick Lamar\good kid\06 - Money Trees.flac", "Kendrick Lamar", "Money Trees", "good kid, m.A.A.d city", "auto"), (r"Music\R\Radiohead - Creep.mp3", "Radiohead", "Creep", None, "auto"), (r"x\Tame Impala - The Less I Know The Better.flac", "Tame Impala", "The Less I Know The Better", None, "auto"), # right song, but something is missing or off -- a human should look (r"shared\02 Creep.flac", "Radiohead", "Creep", "Pablo Honey", "review"), (r"Live\Radiohead - Creep (Live at Glastonbury 1997).mp3", "Radiohead", "Creep", None, "review"), (r"Radiohead\Creep (Remix).mp3", "Radiohead", "Creep", None, "review"), # wrong song, or too little to tell (r"covers\Creep (Acoustic Cover).mp3", "Radiohead", "Creep", None, "low"), (r"Various\Karma Police.flac", "Radiohead", "Creep", None, "low"), (r"stuff\track01.mp3", "Radiohead", "Creep", None, "low"), (r"Nirvana\Nevermind\01 - Smells Like Teen Spirit.flac", "Radiohead", "Creep", None, "low"), ] def band(c: float) -> str: if c >= app.AUTO_CONFIDENCE: return "auto" return "review" if c >= app.REVIEW_CONFIDENCE else "low" def main() -> int: bad = 0 for fn, artist, title, album, want in CASES: c, why = app.confidence(fn, artist, title, album) got = band(c) if got != want: bad += 1 print(f" FAIL {got:<6} (want {want:<6}) {c:.2f} {fn}") print(f" {'; '.join(why)}") else: print(f" PASS {got:<6} {c:.2f} {fn}") # A variant tag must never auto-import, however perfect the rest is. c, _ = app.confidence(r"Radiohead\Pablo Honey\Creep (Live).flac", "Radiohead", "Creep", "Pablo Honey") if c >= app.AUTO_CONFIDENCE: bad += 1 print(f" FAIL a live version auto-imported at {c:.2f}") else: print(f" PASS live version capped below auto ({c:.2f})") # ...unless the variant is what was asked for. c, _ = app.confidence(r"Radiohead\Creep (Acoustic).mp3", "Radiohead", "Creep (Acoustic)", None) if c < app.AUTO_CONFIDENCE: bad += 1 print(f" FAIL requested acoustic version held at {c:.2f}") else: print(f" PASS requested acoustic version auto-imports ({c:.2f})") print(f"\n{len(CASES) + 2 - bad} passed, {bad} failed") return 1 if bad else 0 if __name__ == "__main__": sys.exit(main())