CFGLibTest.Unit.UnitTests.TestCYK01 C# (CSharp) Method

TestCYK01() private method

private TestCYK01 ( ) : void
return void
		public void TestCYK01() {
			var productions = new List<Production> {
				new Production(
					Nonterminal.Of("S"),
					new Sentence { Nonterminal.Of("X"), Nonterminal.Of("X") },
					2
				),
				new Production(
					Nonterminal.Of("X"),
					new Sentence { Nonterminal.Of("X"), Nonterminal.Of("X") },
					2
				),
				new Production(
					Nonterminal.Of("S"),
					new Sentence { Terminal.Of("a") },
					8
				),
				new Production(
					Nonterminal.Of("X"),
					new Sentence { Terminal.Of("a") },
					8
				)
			};

			var g = new CNFGrammar(productions, Nonterminal.Of("S"));
			
			Helpers.AssertNear(0.8, g.Cyk(Sentence.FromLetters("a")));
			Helpers.AssertNear(0.128, g.Cyk(Sentence.FromLetters("aa")));
			Helpers.AssertNear(0.04096, g.Cyk(Sentence.FromLetters("aaa")));
			Helpers.AssertNear(0.016384, g.Cyk(Sentence.FromLetters("aaaa")));
			Helpers.AssertNear(0.007340032, g.Cyk(Sentence.FromLetters("aaaaa")));
		}