CFGLibTest.Unit.TestCFGToCNFEmptyProb.TestToCNF02 C# (CSharp) Method

TestToCNF02() private method

private TestToCNF02 ( ) : void
return void
		public void TestToCNF02() {
			var productions = new List<Production> {
				CFGParser.Production(@"<S> -> 'a' <B> <B>"),
				CFGParser.Production(@"<B> -> 'b'"),
				CFGParser.Production(@"<B> -> ε"),
			};
			Grammar g = new Grammar(productions, Nonterminal.Of("S"));
			CNFGrammar h = g.ToCNF();

			var pa = h.Cyk(Sentence.FromLetters("a"));
			var pab = h.Cyk(Sentence.FromLetters("ab"));
			var pabb = h.Cyk(Sentence.FromLetters("abb"));

			Assert.IsTrue(pa > 0.0);
			Assert.IsTrue(pab > 0.0);
			Assert.IsTrue(pabb > 0.0);
			Helpers.AssertNear(1.0, pa + pab + pabb);
		}