| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- import unittest
- from field_similarity import analyze_fields
- class TestAnalyzeFields(unittest.TestCase):
- def test_full_match(self):
- result = analyze_fields("hello world", "hello@@world")
- self.assertEqual(result["field_count"], 2)
- self.assertEqual(result["non_zero_count"], 2)
- self.assertAlmostEqual(result["avg_ratio"], 1.0)
- self.assertAlmostEqual(result["max_ratio"], 1.0)
- def test_partial_match(self):
- result = analyze_fields("abc", "zab")
- self.assertEqual(result["field_count"], 1)
- self.assertEqual(result["non_zero_count"], 1)
- self.assertAlmostEqual(result["avg_ratio"], 2 / 3)
- self.assertAlmostEqual(result["max_ratio"], 2 / 3)
- def test_zero_match(self):
- result = analyze_fields("abc", "xyz")
- self.assertEqual(result["field_count"], 1)
- self.assertEqual(result["non_zero_count"], 0)
- self.assertAlmostEqual(result["avg_ratio"], 0.0)
- self.assertAlmostEqual(result["max_ratio"], 0.0)
- def test_empty_fields_are_skipped(self):
- result = analyze_fields("abc", "ab@@@@bc")
- self.assertEqual(result["field_count"], 2)
- self.assertEqual(result["non_zero_count"], 2)
- self.assertAlmostEqual(result["avg_ratio"], (1 + 1) / 2)
- self.assertAlmostEqual(result["max_ratio"], 1.0)
- def test_all_empty_fields(self):
- result = analyze_fields("abc", "@@")
- self.assertEqual(result, {})
- def test_empty_field_list_string(self):
- result = analyze_fields("abc", "")
- self.assertEqual(result, {})
- def test_empty_question(self):
- result = analyze_fields("", "a@@bb")
- self.assertEqual(result["field_count"], 2)
- self.assertEqual(result["non_zero_count"], 0)
- self.assertAlmostEqual(result["avg_ratio"], 0.0)
- self.assertAlmostEqual(result["max_ratio"], 0.0)
- if __name__ == "__main__":
- unittest.main()
|