1 #include "test-suite.h"
2 #include "../Misc/MsgParsing.h"
3
4 class PluginTest
5 {
6 public:
setUp()7 void setUp() {}
8
tearDown()9 void tearDown() {}
10
testExtracting()11 void testExtracting() {
12 std::size_t res;
13 int part, kit, vc;
14 bool isFm;
15
16 // test a full string with OscilSmp
17 res = zyn::idsFromMsg("/part1/kit2/adpars/VoicePar3/OscilSmp", &part, &kit, &vc, &isFm);
18 TS_ASSERT(res);
19 TS_ASSERT_EQUAL_INT(part, 1);
20 TS_ASSERT_EQUAL_INT(kit, 2);
21 TS_ASSERT_EQUAL_INT(vc, 3);
22 TS_ASSERT(!isFm);
23 // translate back into string
24 std::string str = zyn::buildVoiceParMsg(&part, &kit, &vc, &isFm);
25 TS_ASSERT_EQUAL_STR("/part1/kit2/adpars/VoicePar3/OscilSmp", str.c_str());
26
27 // same with FMSmp
28 res = zyn::idsFromMsg("/part11/kit12/adpars/VoicePar13/FMSmp", &part, &kit, &vc, &isFm);
29 TS_ASSERT(res);
30 TS_ASSERT_EQUAL_INT(part, 11);
31 TS_ASSERT_EQUAL_INT(kit, 12);
32 TS_ASSERT_EQUAL_INT(vc, 13);
33 TS_ASSERT(isFm);
34 // translate back into string
35 str = zyn::buildVoiceParMsg(&part, &kit, &vc, &isFm);
36 TS_ASSERT_EQUAL_STR("/part11/kit12/adpars/VoicePar13/FMSmp", str.c_str());
37
38 // check return values
39 TS_ASSERT(!zyn::idsFromMsg("/part", &part, &kit, nullptr));
40 TS_ASSERT(!zyn::idsFromMsg("/part1", &part, &kit, nullptr));
41 TS_ASSERT(!zyn::idsFromMsg("/part1/kit", &part, &kit, nullptr));
42 TS_ASSERT(zyn::idsFromMsg("/part1/kit2", &part, &kit, nullptr));
43 TS_ASSERT(!zyn::idsFromMsg("/part1/kit2", &part, &kit, &vc));
44 TS_ASSERT(!zyn::idsFromMsg("/part1/kit2/adpars/", &part, &kit, &vc));
45 TS_ASSERT(!zyn::idsFromMsg("/part1/kit2/adpars/", &part, &kit, &vc));
46 TS_ASSERT(!zyn::idsFromMsg("/part1/kit2/adpars/VoicePar", &part, &kit, &vc));
47 TS_ASSERT(!zyn::idsFromMsg("/part1/kit2/adpars/VoicePar/", &part, &kit, &vc));
48 TS_ASSERT(zyn::idsFromMsg("/part1/kit2/adpars/VoicePar0/", &part, &kit, &vc));
49 TS_ASSERT(zyn::idsFromMsg("/part1/kit2/adpars/VoicePar0/XXX", &part, &kit, &vc));
50 TS_ASSERT(!zyn::idsFromMsg("/part1/kit2/adpars/VoicePar0/XXX", &part, &kit, &vc, &isFm));
51 TS_ASSERT(zyn::idsFromMsg("/part1/kit2/adpars/VoicePar0/OscilSmp", &part, &kit, &vc, &isFm));
52 TS_ASSERT(zyn::idsFromMsg("/part1/kit2/adpars/VoicePar0/FMSmp", &part, &kit, &vc, &isFm));
53 }
54 };
55
main()56 int main()
57 {
58 PluginTest test;
59 RUN_TEST(testExtracting);
60 return test_summary();
61 }
62