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>
* 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);
}
/* 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
inputs, comparing against known-good values. */
@ -218,6 +239,8 @@ spellcheck_c_tests ()
("Lorem ipsum dolor sit amet, consectetur adipiscing elit,",
"All your base are belong to us",
44);
test_find_closest_string ();
}
} // namespace selftest