# Path: expremigen/io/constants.py
# class PhraseProperty:
#     """
#     list of animatable properties
#     """
#     NOTE = "0"
#     DUR = "1"
#     PLAYEDDUR = "2"
#     VOL = "3"
#     LAG = "4"
#     TEMPO = "5"
# 
#     @classmethod
#     def ctrl_dur_key(cls, cc_number):
#         """
#         calculates a key for specifying control change duration value (internal usage)
#         :param cc_number: control change number
#         :return: cc key
#         """
#         return f"D{cc_number}"
# 
#     @classmethod
#     def ctrl_val_key(cls, cc_number):
#         """
#         calculates a key for specifying control change value (internal usage)
#         :param cc_number: control change number
#         :return: cc key
#         """
#         return f"V{cc_number}"


import unittest
from expremigen.io.constants import PhraseProperty



class TestPrand(unittest.TestCase):
    def test_phraseproperty(self):
        self.assertEqual(PhraseProperty.ctrl_val_key(45), "V45")

# Path: expremigen/io/constants.py
# class PhraseProperty:
#     """
#     list of animatable properties
#     """
#     NOTE = "0"
#     DUR = "1"
#     PLAYEDDUR = "2"
#     VOL = "3"
#     LAG = "4"
#     TEMPO = "5"
# 
#     @classmethod
#     def ctrl_dur_key(cls, cc_number):
#         """
#         calculates a key for specifying control change duration value (internal usage)
#         :param cc_number: control change number
#         :return: cc key
#         """
#         return f"D{cc_number}"
# 
#     @classmethod
#     def ctrl_val_key(cls, cc_number):
#         """
#         calculates a key for specifying control change value (internal usage)
#         :param cc_number: control change number
#         :return: cc key
#         """
#         return f"V{cc_number}"


# Path: tests/testphraseproperty.py
import unittest
from expremigen.io.constants import PhraseProperty




class TestPrand(unittest.TestCase):
    def test_phraseproperty(self):
        self.assertEqual(PhraseProperty.ctrl_val_key(45), "V45")

        self.assertEqual(PhraseProperty.ctrl_dur_key(67), "D67")