formalang/tests/regular/ParseRegular.cpp

41 lines
1.3 KiB
C++
Raw Normal View History

2021-09-26 23:59:08 +00:00
#include <gtest/gtest.h>
#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)*)*");
}