c2-utopia/lib/OSC/test/OSCMessage_match_test/OSCMessage_match_test.ino

87 lines
1.8 KiB
C++

#include <ArduinoUnit.h>
#include <OSCMessage.h>
test(message_address_match){
OSCMessage msg("/a/0");
assertEqual(msg.match("/a"), 2);
assertEqual(msg.match("/a/0"), 4);
}
test(message_address_match_offset){
OSCMessage msg("/a/0");
assertEqual(msg.match("/0", 2), 2);
assertEqual(msg.match("/1", 2), 0);
}
test(message_address_match_range){
OSCMessage msg("/[a-z]/0");
assertEqual(msg.match("/a"), 6);
assertEqual(msg.match("/b/0"), 8);
}
test(message_address_match_or){
OSCMessage msg("/{a,b}/0");
assertEqual(msg.match("/a/0"), 8);
assertEqual(msg.match("/b/0"), 8);
assertEqual(msg.match("/c/0"), 0);
}
test(message_address_match_char){
OSCMessage msg("/a/?");
assertEqual(msg.match("/a/0"), 4);
assertEqual(msg.match("/a/1"), 4);
assertEqual(msg.match("/a/10"), 0);
}
test(message_address_match_star){
OSCMessage msg("/a/*");
assertEqual(msg.match("/a/0"), 4);
assertEqual(msg.match("/a/10"), 4);
assertEqual(msg.match("/a/100"), 4);
}
test(message_address_fullMatch){
OSCMessage msg("/a/0");
assertTrue(msg.fullMatch("/a/0"));
assertFalse(msg.fullMatch("/a/1"));
assertTrue(msg.fullMatch("/0", 2));
}
void dispatchMsg(OSCMessage &m){
assertTrue(m.isInt(0));
assertEqual(m.getInt(0), 1);
}
test(message_address_dispatch){
OSCMessage msg("/a/[0-9]");
msg.add(1);
assertTrue(msg.dispatch("/a/0", dispatchMsg));
assertTrue(msg.dispatch("/1", dispatchMsg, 2));
}
void routeMsg(OSCMessage &m, int offset){
assertTrue(m.isInt(0));
assertEqual(m.getInt(0), 2);
assertEqual(offset, 2);
}
test(message_address_route){
OSCMessage msg("/?/[0-9]");
msg.add(2);
assertTrue(msg.route("/a", routeMsg));
assertTrue(msg.route("/b", routeMsg));
}
void setup()
{
Serial.begin(9600);
while(!Serial); // for the Arduino Leonardo/Micro only
}
void loop()
{
Test::run();
}