public void PartPatternMatches_OneTranslatablePartOneKeyTerm()
		{
			AddMockedKeyTerm("wunkers");
			AddMockedKeyTerm("punkers");

			TranslatablePhrase tp1 = new TranslatablePhrase("Wuzzee wunkers?");
			TranslatablePhrase tp2 = new TranslatablePhrase("Wuzzee punkers.");
			TranslatablePhrase tp3 = new TranslatablePhrase("Wuzzee wunkers!");
			TranslatablePhrase tp4 = new TranslatablePhrase("Wunkers wuzzee!");
			TranslatablePhrase tp5 = new TranslatablePhrase("A dude named punkers?");

			new PhraseTranslationHelper(new[] {
				tp1,
				tp2,
				tp3,
				tp4,
				tp5},
				m_dummyKtList, m_keyTermRules, new List<Substitution>());

			Assert.IsTrue(tp1.PartPatternMatches(tp2));
			Assert.IsTrue(tp1.PartPatternMatches(tp3));
			Assert.IsFalse(tp1.PartPatternMatches(tp4));
			Assert.IsFalse(tp1.PartPatternMatches(tp5));

			Assert.IsTrue(tp2.PartPatternMatches(tp3));
			Assert.IsFalse(tp2.PartPatternMatches(tp4));
			Assert.IsFalse(tp2.PartPatternMatches(tp5));

			Assert.IsFalse(tp3.PartPatternMatches(tp4));
			Assert.IsFalse(tp3.PartPatternMatches(tp5));

			Assert.IsFalse(tp4.PartPatternMatches(tp5));
		}
		public void PartPatternMatches_SinglePart()
		{
			TranslatablePhrase tp1 = new TranslatablePhrase("Wuzzee?");
			TranslatablePhrase tp2 = new TranslatablePhrase("Wuzzee!");
			TranslatablePhrase tp3 = new TranslatablePhrase("As a man thinks in his heart, how is he?");

			new PhraseTranslationHelper(new[] {
				tp1,
				tp2,
				tp3},
				m_dummyKtList, m_keyTermRules, new List<Substitution>());

			Assert.IsTrue(tp1.PartPatternMatches(tp2));
			Assert.IsTrue(tp2.PartPatternMatches(tp1));
			Assert.IsTrue(tp2.PartPatternMatches(tp2));
			Assert.IsFalse(tp3.PartPatternMatches(tp2));
			Assert.IsFalse(tp3.PartPatternMatches(tp1));
			Assert.IsFalse(tp1.PartPatternMatches(tp3));
			Assert.IsFalse(tp2.PartPatternMatches(tp3));
			Assert.IsTrue(tp3.PartPatternMatches(tp3));
		}