public void Compute_ordered_multiplier() { var multiplier1 = FullTextIndex.ComputeBonusIfOrderIsPreserved(Tokenize("a b c"), Tokenize("b c a")); var multiplier2 = FullTextIndex.ComputeBonusIfOrderIsPreserved(Tokenize("a b c"), Tokenize("c b a")); Assert.IsTrue(multiplier1 > multiplier2); Assert.AreEqual(1, multiplier2); // no multiplier as the order is not preserved var multiplier3 = FullTextIndex.ComputeBonusIfOrderIsPreserved(Tokenize("nice evening"), Tokenize("nice evening")); var multiplier4 = FullTextIndex.ComputeBonusIfOrderIsPreserved(Tokenize("nice evening"), Tokenize("it was a nice evening")); Assert.AreEqual(multiplier3, multiplier4); Assert.IsTrue(multiplier3 > 1); var multiplier5 = FullTextIndex.ComputeBonusIfOrderIsPreserved(Tokenize("nice and happy evening"), Tokenize("nice evening")); var multiplier6 = FullTextIndex.ComputeBonusIfOrderIsPreserved(Tokenize("nice evening"), Tokenize("nice and happy evening")); Assert.IsTrue(multiplier6 > multiplier5); Assert.IsTrue(multiplier5 > 1); var multiplier7 = FullTextIndex.ComputeBonusIfOrderIsPreserved(Tokenize("nice view close beach"), Tokenize("nice view and close to the beach")); Assert.IsTrue(multiplier7 > 10 * 3); var multiplier8 = FullTextIndex.ComputeBonusIfOrderIsPreserved(Tokenize("c++"), Tokenize("c++")); var multiplier9 = FullTextIndex.ComputeBonusIfOrderIsPreserved(Tokenize("c++"), Tokenize("+c")); Assert.IsTrue(multiplier8 > 1); Assert.AreEqual(1, multiplier9); // no multiplier as the order is not preserved }