41 lines
1.3 KiB
C++
41 lines
1.3 KiB
C++
|
#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)*)*");
|
||
|
}
|
||
|
|