Files
product-vamp/tests/test_output_contract.py
khodowany bc7baea7c4
ci / checks (push) Failing after 23m22s
Cleanup
2026-10-08 02:13:45 -05:00

21 lines
917 B
Python

"""Exact role scores protect musical choices, notation, IDs and tablature."""
import generator.composition_types
import generator.composition
import generator.source
import json
import pathlib
import unittest
import tests.solo_fixtures
class OutputContract(unittest.TestCase):
def test_complete_roles_including_learned_fallback_match_reviewed_output(self):
root = pathlib.Path(__file__).resolve().parents[1]
expected = json.loads((root / 'tests/fixtures/role_outputs.json').read_text())
source = generator.source.SourceAnalysis.read(tests.solo_fixtures.song(count=2, chords=('Dm7', 'G7')))
for role in generator.composition_types.ROLES:
with self.subTest(role=role):
settings = {'predict': True} if role.endswith('_solo') else {}
actual = generator.composition.generate_role(source, role, root / 'data', settings)['document']
self.assertEqual(actual, expected[role])