spellcheck.c: add test_find_closest_string

gcc/ChangeLog:
	* spellcheck.c (selftest::test_find_closest_string): New function.
	(spellcheck_c_tests): Call the above.

From-SVN: r237181
This commit is contained in:
David Malcolm 2016-06-07 17:33:04 +00:00 committed by David Malcolm
parent e10183dce1
commit 484b59c482
2 changed files with 28 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2016-06-07 David Malcolm <dmalcolm@redhat.com>
* spellcheck.c (selftest::test_find_closest_string): New function.
(spellcheck_c_tests): Call the above.
2016-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 2016-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* simplify-rtx.c (simplify_cond_clz_ctz): Delete 'mode' local * simplify-rtx.c (simplify_cond_clz_ctz): Delete 'mode' local

View File

@ -198,6 +198,27 @@ levenshtein_distance_unit_test (const char *a, const char *b,
levenshtein_distance_unit_test_oneway (b, a, expected); levenshtein_distance_unit_test_oneway (b, a, expected);
} }
/* Verify that find_closest_string is sane. */
static void
test_find_closest_string ()
{
auto_vec<const char *> candidates;
/* Verify that it can handle an empty vec. */
ASSERT_EQ (NULL, find_closest_string ("", &candidates));
/* Verify that it works sanely for non-empty vecs. */
candidates.safe_push ("apple");
candidates.safe_push ("banana");
candidates.safe_push ("cherry");
ASSERT_STREQ ("apple", find_closest_string ("app", &candidates));
ASSERT_STREQ ("banana", find_closest_string ("banyan", &candidates));
ASSERT_STREQ ("cherry", find_closest_string ("berry", &candidates));
ASSERT_EQ (NULL, find_closest_string ("not like the others", &candidates));
}
/* Verify levenshtein_distance for a variety of pairs of pre-canned /* Verify levenshtein_distance for a variety of pairs of pre-canned
inputs, comparing against known-good values. */ inputs, comparing against known-good values. */
@ -218,6 +239,8 @@ spellcheck_c_tests ()
("Lorem ipsum dolor sit amet, consectetur adipiscing elit,", ("Lorem ipsum dolor sit amet, consectetur adipiscing elit,",
"All your base are belong to us", "All your base are belong to us",
44); 44);
test_find_closest_string ();
} }
} // namespace selftest } // namespace selftest