public void TestNullable_Create() { var nullable = new NullableTable(); var expected = true; var actual = _repository.Create(nullable); Assert.IsTrue(actual == expected, $"expected: {expected}, but received: {actual}"); Assert.IsTrue(_repository.GetAll().Count() == 4); }
public void TestNullable_Create_NotNull() { var nullable = new NullableTable { Age = 1, DoB = DateTime.Now, lolVal = Guid.NewGuid() }; var expected = true; var actual = _repository.Create(nullable); Assert.IsTrue(actual == expected, $"expected: {expected}, but received: {actual}"); Assert.IsTrue(_repository.GetAll().Count() == 4); }
public static NullableComputer Compute(LL1Algo algo) { var iterations = new List <NullableTable>(); var nullable = new NullableTable(); // initialize first iteration foreach (var A in algo.Thecfg.Nonterminals) { nullable.Add(A, false); } do { if (iterations.Count == 0) { iterations.Add(nullable); } else { iterations.Add(new NullableTable(nullable)); } nullable = iterations.Last(); foreach (var prod in algo.Thecfg.Productions) { if (prod.DerivesToNull || prod.Rhs.All(e => e.Type == Symbol.Types.NonTerminal && nullable[e])) { nullable[prod.Lhs] = true; } } // stop loop if no changes between iterations } while (iterations.Count == 1 || nullable.Except(iterations[iterations.Count - 2]).Any()); return(new NullableComputer(algo, iterations)); }