@@ -267,6 +267,42 @@ public void HomographValidationWorks()
267267 }
268268 }
269269
270+ /// <summary>
271+ /// Exercises the entry-level wrapper
272+ /// (Algorithm behaviour is covered by HomographValidationWorks.)
273+ /// </summary>
274+ [ Test ]
275+ public void CorrectHomographNumbers_OnEntry_RenumbersInvalidSet ( )
276+ {
277+ const string sLexForm = "entryCorrectHnTest" ;
278+ var e1 = MakeEntry ( sLexForm ) ;
279+ var e2 = MakeEntry ( sLexForm ) ;
280+ var e3 = MakeEntry ( sLexForm ) ;
281+
282+ e1 . HomographNumber = 2 ;
283+ e2 . HomographNumber = 2 ;
284+ e3 . HomographNumber = 0 ;
285+
286+ Assert . IsFalse ( e1 . CorrectHomographNumbers ( ) , "Invalid set should be renumbered." ) ;
287+ CollectionAssert . AreEquivalent ( new [ ] { 1 , 2 , 3 } ,
288+ new [ ] { e1 . HomographNumber , e2 . HomographNumber , e3 . HomographNumber } ) ;
289+ Assert . IsTrue ( e1 . CorrectHomographNumbers ( ) , "Already-valid set: no change." ) ;
290+ }
291+
292+ /// <summary>
293+ /// Empty-form branch added on top of LexDb.CorrectHomographNumbers.
294+ /// </summary>
295+ [ Test ]
296+ public void CorrectHomographNumbers_OnEntryWithEmptyForm_ForcesZero ( )
297+ {
298+ var entry = MakeEntry ( "" ) ;
299+ Assert . AreEqual ( Strings . ksQuestions , entry . HomographFormKey ) ;
300+ entry . HomographNumber = 7 ;
301+
302+ Assert . IsFalse ( entry . CorrectHomographNumbers ( ) ) ;
303+ Assert . AreEqual ( 0 , entry . HomographNumber ) ;
304+ }
305+
270306 private ILexEntry MakeEntry ( string sLexForm )
271307 {
272308 var lme = Cache . ServiceLocator . GetInstance < ILexEntryFactory > ( ) . Create ( ) ;
0 commit comments