var result = dsl.parsePredicateMap("x:week y:count type:bar");
assertEquals("type,x,y", listSort(structKeyList(result), 'text'));
assertEquals("bar", result.type);
assertEquals("week", result.x);
assertEquals("count", result.y);
try {
dsl.parsePredicateMap("x:week count type:bar");
fail("didn't error on predicateless term'");
} catch (IllegalArgumentException.MissingPredicate e) {
// good
}
var result = dsl.parsePredicateMap("x:week -y:count type:bar");
assertEquals("type,x", listSort(structKeyList(result), 'text'));
assertEquals("bar", result.type);
assertEquals("week", result.x);
var result = dsl.parsePredicateMap("x:week -count type:bar");
assertEquals("type,x", listSort(structKeyList(result), 'text'));
assertEquals("bar", result.type);
assertEquals("week", result.x);
var result = dsl.parsePredicateMap("x:week (y:count type:bar) z:cat");
assertEquals("x,z", listSort(structKeyList(result), 'text'));
assertEquals("week", result.x);
assertEquals("cat", result.z);
var result = dsl.parsePredicateMap("x:week y:count x:day");
assertEquals("x,y", listSort(structKeyList(result), 'text'));
assertEquals("day", result.x);
assertEquals("count", result.y);