Пример #1
0
 def test_has_labels_case_sensitivity(self):
     tns = TaxonNamespace(self.str_labels)
     labels_upper = [label.upper() for label in self.str_labels if label.upper() != label]
     assert labels_upper
     tns.is_case_sensitive = True
     self.assertFalse(tns.has_taxa_labels(labels_upper))
     tns.is_case_sensitive = False
     self.assertTrue(tns.has_taxa_labels(labels_upper))
Пример #2
0
 def test_case_insensitive_require_taxon_by_label2(self):
     tns = TaxonNamespace(self.str_labels)
     labels_upper = [label.upper() for label in self.str_labels if label.upper() != label]
     labels_upper = list(set(labels_upper))
     assert labels_upper
     for label in labels_upper:
         tns.is_case_sensitive = True
         t = tns.require_taxon(label)
         self.assertEqual(t.label, label)
     self.validate_taxon_concepts(tns, self.str_labels + labels_upper)
Пример #3
0
 def test_case_insensitive_require_taxon_by_label1(self):
     tns = TaxonNamespace(self.str_labels)
     labels_upper = [label.upper() for label in self.str_labels if label.upper() != label]
     assert labels_upper
     for label in labels_upper:
         tns.is_case_sensitive = False
         t = tns.require_taxon(label)
         self.assertEqual(t.label.lower(), label.lower())
         self.assertEqual(len(tns), len(self.str_labels))
     self.validate_taxon_concepts(tns, self.str_labels)
Пример #4
0
 def test_findall_multiple(self):
     tns = TaxonNamespace(self.str_labels)
     multilabels= ["_", "z"]
     for label in multilabels:
         tns.is_case_sensitive=True
         taxa = tns.findall(label=label)
         self.assertTrue(isinstance(taxa, collections.Iterable))
         self.assertEqual(len(taxa), len([s for s in self.str_labels if s == label]))
         for t in taxa:
             self.assertEqual(t.label, label)
Пример #5
0
 def test_remove_taxon_label_case_insensitive(self):
     ucase_labels = [s.upper() for s in self.str_labels]
     assert ucase_labels
     assert ucase_labels != self.str_labels
     taxa = [Taxon(s) for s in self.str_labels]
     tns = TaxonNamespace(taxa)
     expected = taxa[:]
     for idx, label in enumerate(set(ucase_labels)):
         if label != label.lower():
             with self.assertRaises(LookupError):
                 tns.is_case_sensitive = True
                 tns.remove_taxon_label(label)
         tns.is_case_sensitive = False
         tns.remove_taxon_label(label)
         for t in taxa:
             if t.label.upper() == label.upper() and t in expected:
                 expected.remove(t)
         self.assertEqual(len(tns), len(expected))
         for t1, t2 in zip(tns, expected):
             self.assertIs(t1, t2)
Пример #6
0
 def test_case_insensitive_get_taxa_by_label(self):
     tns = TaxonNamespace(self.str_labels)
     labels_upper = [label.upper() for label in self.str_labels if label.upper() != label]
     assert labels_upper
     # default: case-insensitive
     t2 = tns.get_taxa(labels_upper)
     self.assertEqual(len(t2), len(labels_upper))
     for t, label in zip(t2, labels_upper):
         self.assertEqual(t.label.lower(), label.lower())
     # test: case sensitive
     tns.is_case_sensitive = True
     t1 = tns.get_taxa(labels_upper)
     self.assertEqual(len(t1), 0)
Пример #7
0
 def test_case_insensitive_get_taxon_by_label(self):
     tns = TaxonNamespace(self.str_labels)
     labels_upper = [label.upper() for label in self.str_labels if label.upper() != label]
     assert labels_upper
     # default: case insensitive
     for label in labels_upper:
         t = tns.get_taxon(label)
         self.assertIsNot(t, None)
         self.assertEqual(t.label.lower(), label.lower())
     # test: case sensitive
     tns.is_case_sensitive = True
     for label in labels_upper:
         t = tns.get_taxon(label)
         self.assertIs(t, None)
Пример #8
0
 def test_discard_taxon_label_case_sensitive(self):
     ucase_labels = [s.upper() for s in self.str_labels]
     assert ucase_labels
     assert ucase_labels != self.str_labels
     taxa = [Taxon(s) for s in self.str_labels]
     tns = TaxonNamespace(taxa)
     expected = taxa[:]
     # test: case sensitive
     tns.is_case_sensitive = True
     for idx, label in enumerate(set(ucase_labels)):
         if label != label.lower():
             x1 = len(tns)
             try:
                 tns.discard_taxon_label(label)
             except LookupError:
                 self.fail()
             else:
                 self.assertEqual(len(tns), x1)
Пример #9
0
 def test_findall_not_found(self):
     tns = TaxonNamespace(self.str_labels)
     tns.is_case_sensitive=True
     taxa = tns.findall(label="x")
     self.assertEqual(taxa, [])