#include #include "regular/RegularTree.hpp" using namespace regular; TEST(parse_regular, only_addition) { RegularTree("a"); RegularTree("aa"); RegularTree("aaa"); RegularTree("aaaa"); RegularTree("aaaaa"); RegularTree("a|aaaa"); RegularTree("a|a|a|a|a"); RegularTree("hello|world"); RegularTree("qe|wr|lkj|alk"); } TEST(parse_regular, only_folding) { RegularTree("(kajfkasf(aksdjf)jka(((aksjdf)K)))jakd"); RegularTree("(kajsdfk(aksdjf)kajsdf)kjasdkfja(skdjf(((aksjdkadf)ksjf(kdja))))"); RegularTree("((((kdjf))))"); RegularTree("kasjf(akjsfkjasdg)kajsdg"); RegularTree("akjsdf(akjdf(kdjfak(jkasdf)))"); RegularTree("123k4j1k351kk21jkj21k6j2k36j1(((((ajkfajsdfkafdalkdjflk)))))"); } TEST(parse_regular, only_modifiers) { RegularTree("jlakjdf*aksdjflaf8*laksfj*lakjsf*alksjdf"); RegularTree("jlakjdf*aksdjflaf8+laksfj*lakjsf*alksjdf*"); RegularTree("jlakjdf*aksdjflaf8*laksfj*lakjsf+alksjdf"); RegularTree("jlakjd+aksdjflaf8*laksfj*lakjsf*alksjdf+"); } TEST(parse_regular, all_operations) { RegularTree("(alkjdfaksdf*|lkasdj*|(kasjdf|kajdf*|kjd)*|laksjf*)+"); RegularTree("(alkjdfaksdf|lkasdj*|(kas+jdf|kajdf*|kjd)*|laksjf*)+"); RegularTree("a|(a|(a|(a|)*))*"); RegularTree("kj*|kjadf*|(kajsdf|(kajsd|kjadf|(kasjdf)|kajs)*)*"); }