var ir = dsl.flatten(dsl.parse("
? bkfst : tag:breakfast
& dinner : tag:dinner
"));
assertEquals("aggregates,conditions", listSort(structKeyList(ir), 'text'));
assertEquals(1, arrayLen(ir.conditions));
assertTrue(isInstanceOf(ir.conditions[1].criterion, "reporting_dsl.simplecriterion"));
assertEquals("bkfst", ir.conditions[1].value);
assertEquals("tag:breakfast", ir.conditions[1].query);
assertEquals(1, arrayLen(ir.aggregates));
assertTrue(isInstanceOf(ir.aggregates[1].criterion, "reporting_dsl.simplecriterion"));
assertEquals("dinner", ir.aggregates[1].value);
assertEquals("tag:dinner", ir.aggregates[1].query);
var ir = dsl.flatten(dsl.parse("
+ tag:barney tag:home
? bkfst : tag:breakfast
& dinner : tag:dinner
"));
// still don't have core stuff
assertEquals("aggregates,conditions", listSort(structKeyList(ir), 'text'));
assertEquals(1, arrayLen(ir.conditions));
assertTrue(isInstanceOf(ir.conditions[1].criterion, "reporting_dsl.andcriterion"));
assertEquals("bkfst", ir.conditions[1].value);
assertEquals("tag:barney tag:home tag:breakfast", ir.conditions[1].query);
assertEquals(1, arrayLen(ir.aggregates));
assertTrue(isInstanceOf(ir.aggregates[1].criterion, "reporting_dsl.andcriterion"));
assertEquals("dinner", ir.aggregates[1].value);
assertEquals("tag:barney tag:home tag:dinner", ir.aggregates[1].query);