zynaddsubfx

ZynAddSubFX open source synthesizer
Log | Files | Refs | Submodules | LICENSE

MsgParseTest.cpp (2662B)


      1 #include "test-suite.h"
      2 #include "../Misc/MsgParsing.h"
      3 
      4 class PluginTest
      5 {
      6     public:
      7         void setUp() {}
      8 
      9         void tearDown() {}
     10 
     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 
     56 int main()
     57 {
     58     PluginTest test;
     59     RUN_TEST(testExtracting);
     60     return test_summary();
     61 }