public void GetHomographNumber_3SameLexicalFormsAnd3OtherLexicalForms_Returns123()
		{
			using (var env = new TestEnvironment())
			{
				LexEntry red1 = env.MakeEntryWithLexemeForm(env.HeadwordWritingSystem.LanguageTag, "red");
				LexEntry blue1 = env.MakeEntryWithLexemeForm(env.HeadwordWritingSystem.LanguageTag, "blue");
				LexEntry red2 = env.MakeEntryWithLexemeForm(env.HeadwordWritingSystem.LanguageTag, "red");
				LexEntry blue2 = env.MakeEntryWithLexemeForm(env.HeadwordWritingSystem.LanguageTag, "blue");
				LexEntry red3 = env.MakeEntryWithLexemeForm(env.HeadwordWritingSystem.LanguageTag, "red");
				LexEntry blue3 = env.MakeEntryWithLexemeForm(env.HeadwordWritingSystem.LanguageTag, "blue");
				Assert.AreEqual(1, env.Repository.GetHomographNumber(blue1, env.HeadwordWritingSystem));
				Assert.AreEqual(3, env.Repository.GetHomographNumber(blue3, env.HeadwordWritingSystem));
				Assert.AreEqual(2, env.Repository.GetHomographNumber(blue2, env.HeadwordWritingSystem));
				Assert.AreEqual(1, env.Repository.GetHomographNumber(red1, env.HeadwordWritingSystem));
				Assert.AreEqual(3, env.Repository.GetHomographNumber(red3, env.HeadwordWritingSystem));
				Assert.AreEqual(2, env.Repository.GetHomographNumber(red2, env.HeadwordWritingSystem));
			}
		}
		public void GetHomographNumber_3SameLexicalForms_Returns123()
		{
			using (var env = new TestEnvironment())
			{
				LexEntry entry1 = env.MakeEntryWithLexemeForm(env.HeadwordWritingSystem.LanguageTag, "blue");
				LexEntry entry2 = env.MakeEntryWithLexemeForm(env.HeadwordWritingSystem.LanguageTag, "blue");
				LexEntry entry3 = env.MakeEntryWithLexemeForm(env.HeadwordWritingSystem.LanguageTag, "blue");
				Assert.AreEqual(1,
					env.Repository.GetHomographNumber(entry1, env.HeadwordWritingSystem));
				Assert.AreEqual(3,
					env.Repository.GetHomographNumber(entry3, env.HeadwordWritingSystem));
				Assert.AreEqual(2,
					env.Repository.GetHomographNumber(entry2, env.HeadwordWritingSystem));
			}
		}
		public void GetHomographNumber_ThirdEntry_Returns3()
		{
			using (var env = new TestEnvironment())
			{
				LexEntry entryOther = env.MakeEntryWithLexemeForm("en", "blue");
				Assert.AreNotEqual("en", env.HeadwordWritingSystem.LanguageTag);
				LexEntry entry1 = env.MakeEntryWithLexemeForm(env.HeadwordWritingSystem.LanguageTag, "blue");
				LexEntry entry2 = env.MakeEntryWithLexemeForm(env.HeadwordWritingSystem.LanguageTag, "blue");
				LexEntry entry3 = env.MakeEntryWithLexemeForm(env.HeadwordWritingSystem.LanguageTag, "blue");
				Assert.AreEqual(3,
					env.Repository.GetHomographNumber(entry3, env.HeadwordWritingSystem));
				Assert.AreEqual(2,
					env.Repository.GetHomographNumber(entry2, env.HeadwordWritingSystem));
				Assert.AreEqual(1,
					env.Repository.GetHomographNumber(entry1, env.HeadwordWritingSystem));
			}
		}
		public void GetHomographNumber_AssignesUniqueNumbers()
		{
			using (var env = new TestEnvironment())
			{
				LexEntry entryOther = env.MakeEntryWithLexemeForm("en", "blue");
				Assert.AreNotEqual("en", env.HeadwordWritingSystem.LanguageTag);
				LexEntry[] entries = new LexEntry[3];
				entries[0] = env.MakeEntryWithLexemeForm(env.HeadwordWritingSystem.LanguageTag, "blue");
				entries[1] = env.MakeEntryWithLexemeForm(env.HeadwordWritingSystem.LanguageTag, "blue");
				entries[2] = env.MakeEntryWithLexemeForm(env.HeadwordWritingSystem.LanguageTag, "blue");
				List<int> ids = new List<int>(entries.Length);
				foreach (LexEntry entry in entries)
				{
					int homographNumber = env.Repository.GetHomographNumber(entry,
						env.HeadwordWritingSystem);
					Assert.IsFalse(ids.Contains(homographNumber));
					ids.Add(homographNumber);
				}
			}
		}
		public void GetHomographNumber_SecondEntry_Returns2()
		{
			using (var env = new TestEnvironment())
			{
				env.MakeEntryWithLexemeForm(env.HeadwordWritingSystem.LanguageTag, "blue");
				LexEntry entry2 = env.MakeEntryWithLexemeForm(env.HeadwordWritingSystem.LanguageTag, "blue");
				Assert.AreEqual(2,
					env.Repository.GetHomographNumber(entry2, env.HeadwordWritingSystem));
			}
		}
		public void GetHomographNumber_FirstEntryWithFollowingHomograph_Returns1()
		{
			using (var env = new TestEnvironment())
			{
				LexEntry entry1 = env.MakeEntryWithLexemeForm(env.HeadwordWritingSystem.LanguageTag, "blue");
				env.MakeEntryWithLexemeForm(env.HeadwordWritingSystem.LanguageTag, "blue");
				Assert.AreEqual(1,
					env.Repository.GetHomographNumber(entry1, env.HeadwordWritingSystem));
			}
		}