CFGLibTest.Unit.TestCFGToCNF.TestCNFNoNull01 C# (CSharp) Method

TestCNFNoNull01() private method

private TestCNFNoNull01 ( ) : void
return void
		public void TestCNFNoNull01() {
			var productions = new HashSet<Production> {
				CFGParser.Production("<A> -> <A> <B>"),
				CFGParser.Production("<A> -> <B>"),
				CFGParser.Production("<A> -> 'a'"),
				CFGParser.Production("<B> -> <A>"),
				CFGParser.Production("<B> -> 'b'"),
			};

			Grammar g = new Grammar(productions, Nonterminal.Of("A"));
			CNFGrammar h = g.ToCNF();

			Helpers.AssertNear(0, h.Cyk(Sentence.FromLetters("")));
			Helpers.AssertNear(0.4, h.Cyk(Sentence.FromLetters("a")));
			Helpers.AssertNear(0.2, h.Cyk(Sentence.FromLetters("b")));
			Helpers.AssertNear(0.096, h.Cyk(Sentence.FromLetters("ab")));
			Helpers.AssertNear(0.048, h.Cyk(Sentence.FromLetters("bb")));
			Helpers.AssertNear(0.032, h.Cyk(Sentence.FromLetters("aa")));
			Helpers.AssertNear(0.016, h.Cyk(Sentence.FromLetters("ba")));
		}