from unittest import TestCase from kpmatch import compile def specificity(pattern: str) -> int: return compile(pattern)[0].specificity class SpecificityTests(TestCase): def test_compare_specificity(self): self.assertGreater(specificity("**"), specificity("")) self.assertGreater(specificity("**/a"), specificity("**")) self.assertGreater(specificity("**/a/file.txt"), specificity("**/a/*.txt")) self.assertGreater(specificity("file.txt"), specificity("*.txt")) self.assertGreater(specificity("*.txt"), specificity("*")) self.assertGreater(specificity("image_???.png"), specificity("image_*.png")) self.assertGreater(specificity("image.png"), specificity("image_???.png")) self.assertEqual(specificity("**/a"), specificity("**/b")) self.assertEqual(specificity("*.txt"), specificity("*.html")) self.assertEqual( specificity("image_?.png"), specificity("image_[0123456789].png") )