Backfill test for item set transitions

This commit is contained in:
Max Brunsfeld 2014-04-29 08:18:41 -07:00
parent 0d763d229d
commit d685edf015

View file

@ -7,7 +7,7 @@ using namespace build_tables;
START_TEST
describe("item set transitions", []() {
describe("lexical item set transitions", []() {
PreparedGrammar grammar({}, {});
describe("when two items in the set have transitions on the same character", [&]() {
@ -29,4 +29,26 @@ describe("item set transitions", []() {
});
});
describe("syntactic item set transitions", [&]() {
PreparedGrammar grammar({
{ "A", blank() },
{ "B", i_token(21) },
}, {});
it("computes the closure of the new item sets", [&]() {
ParseItemSet set1({
ParseItem(Symbol(0), seq({ i_token(22), i_sym(1) }), 3, Symbol(23, SymbolOptionToken)),
});
SymTransitions sym_transitions;
AssertThat(sym_transitions(set1, grammar), Equals(map<Symbol, ParseItemSet>({
{ Symbol(22, SymbolOptionToken), ParseItemSet({
ParseItem(Symbol(0), i_sym(1), 4, Symbol(23, SymbolOptionToken)),
ParseItem(Symbol(1), i_token(21), 0, Symbol(23, SymbolOptionToken))
}) },
})));
});
});
END_TEST