Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
            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));
            }