Coverage for test/test_concept.py: 100%
134 statements
« prev ^ index » next coverage.py v7.8.0, created at 2025-04-12 17:57 +0000
« prev ^ index » next coverage.py v7.8.0, created at 2025-04-12 17:57 +0000
1from concept.concept import Concept
2from test.data_for_tests import *
3from util.constants import NULL_VAL_INT, NULL_VAL_STRING
6class TestConcept:
8 def test_init(self):
9 test_concept = Concept('test_name')
10 assert test_concept.concept_name == 'test_name'
11 assert test_concept.aphia_id == NULL_VAL_INT
12 assert test_concept.scientific_name == NULL_VAL_STRING
13 assert test_concept.authorship == NULL_VAL_STRING
14 assert test_concept.vernacular_names == NULL_VAL_STRING
15 assert test_concept.synonyms == []
16 assert test_concept.taxon_rank == NULL_VAL_STRING
17 assert test_concept.taxon_ranks == {}
18 assert test_concept.descriptors == []
19 assert test_concept.concept_words == ['test_name']
20 assert test_concept.concept_add_words == []
21 assert test_concept.cf_flag == []
22 assert test_concept.nr_flag == []
23 assert test_concept.aff_flag == []
24 assert test_concept.sp_flag is False
26 def test_flatten_tree(self):
27 test_concept = Concept('test_name')
28 test_concept.flatten_taxa_tree(taxon_tree, test_concept.taxon_ranks)
29 assert test_concept.taxon_ranks == flattened_tree
31 def test_analyze_concept_name_simple(self):
32 test_concept = Concept('Synaphobranchidae')
33 assert test_concept.concept_words == ['Synaphobranchidae']
34 assert test_concept.cf_flag == []
35 assert test_concept.nr_flag == []
36 assert test_concept.aff_flag == []
37 assert test_concept.sp_flag is False
39 def test_analyze_concept_name_cf_end(self):
40 test_concept = Concept('Ceriantharia cf')
41 assert test_concept.concept_words == ['NEED_PARENT']
42 assert test_concept.cf_flag == ['Ceriantharia']
43 assert test_concept.nr_flag == []
44 assert test_concept.aff_flag == []
45 assert test_concept.sp_flag is False
47 def test_analyze_concept_name_slash(self):
48 test_concept = Concept('Ptilella/Pennatula')
49 assert test_concept.concept_words == ['NEED_PARENT']
50 assert test_concept.cf_flag == []
51 assert test_concept.nr_flag == []
52 assert test_concept.aff_flag == []
53 assert test_concept.sp_flag is False
55 def test_analyze_concept_name_cf_mid(self):
56 test_concept = Concept('Iridogorgia splendens cf')
57 assert test_concept.concept_words == ['Iridogorgia']
58 assert test_concept.cf_flag == ['splendens']
59 assert test_concept.nr_flag == []
60 assert test_concept.aff_flag == []
61 assert test_concept.sp_flag is False
63 def test_analyze_concept_name_sp_one(self):
64 test_concept = Concept('Hemicorallium sp')
65 assert test_concept.concept_words == ['Hemicorallium']
66 assert test_concept.descriptors == []
67 assert test_concept.cf_flag == []
68 assert test_concept.nr_flag == []
69 assert test_concept.aff_flag == []
70 assert test_concept.sp_flag is True
72 def test_analyze_concept_name_sp_two(self):
73 test_concept = Concept('Hyalonema (Corynonema) sp')
74 assert test_concept.concept_words == ['Hyalonema', '(Corynonema)']
75 assert test_concept.descriptors == []
76 assert test_concept.cf_flag == []
77 assert test_concept.nr_flag == []
78 assert test_concept.aff_flag == []
79 assert test_concept.sp_flag is True
81 def test_analyze_concept_name_nr_one(self):
82 test_concept = Concept('Farrea nr occa')
83 assert test_concept.concept_words == ['Farrea']
84 assert test_concept.cf_flag == []
85 assert test_concept.nr_flag == ['occa']
86 assert test_concept.aff_flag == []
87 assert test_concept.sp_flag is False
89 def test_analyze_concept_name_nr_two(self):
90 test_concept = Concept('Farrea nr occa erecta')
91 assert test_concept.concept_words == ['Farrea']
92 assert test_concept.cf_flag == []
93 assert test_concept.nr_flag == ['occa', 'erecta']
94 assert test_concept.aff_flag == []
95 assert test_concept.sp_flag is False
97 def test_analyze_concept_name_aff_one(self):
98 test_concept = Concept('Genus aff species')
99 assert test_concept.concept_words == ['Genus']
100 assert test_concept.cf_flag == []
101 assert test_concept.nr_flag == []
102 assert test_concept.aff_flag == ['species']
103 assert test_concept.sp_flag is False
105 def test_analyze_concept_name_aff_two(self):
106 test_concept = Concept('Genus aff species sub')
107 assert test_concept.concept_words == ['Genus']
108 assert test_concept.cf_flag == []
109 assert test_concept.nr_flag == []
110 assert test_concept.aff_flag == ['species', 'sub']
111 assert test_concept.sp_flag is False
113 def test_analyze_concept_name_new_sp(self):
114 test_concept = Concept('Porites n sp')
115 assert test_concept.concept_words == ['Porites']
116 assert test_concept.cf_flag == []
117 assert test_concept.nr_flag == []
118 assert test_concept.aff_flag == []
119 assert test_concept.descriptors == ['Undescribed species']
120 assert test_concept.sp_flag is False
122 def test_analyze_concept_name_new_sub_sp(self):
123 test_concept = Concept('Porites (n subgenus) n sp')
124 assert test_concept.concept_words == ['Porites']
125 assert test_concept.cf_flag == []
126 assert test_concept.nr_flag == []
127 assert test_concept.aff_flag == []
128 assert test_concept.descriptors == ['Undescribed subgenus, undescribed species']
129 assert test_concept.sp_flag is False
131 def test_analyze_concept_name_new_gen(self):
132 test_concept = Concept('Poritidae n gen')
133 assert test_concept.concept_words == ['Poritidae']
134 assert test_concept.cf_flag == []
135 assert test_concept.nr_flag == []
136 assert test_concept.aff_flag == []
137 assert test_concept.descriptors == ['Undescribed genus']
138 assert test_concept.sp_flag is False
140 def test_load_from_record(self):
141 test_concept = Concept('Illex coindetii')
142 test_concept.load_from_record(aphia_record)
143 assert test_concept.concept_name == 'Illex coindetii'
144 assert test_concept.aphia_id == aphia_record['AphiaID']
145 assert test_concept.scientific_name == aphia_record['scientificname']
146 assert test_concept.authorship == aphia_record['authority']
147 assert test_concept.taxon_rank == aphia_record['rank']
148 assert test_concept.descriptors == []
149 assert test_concept.cf_flag == []
150 assert test_concept.nr_flag == []
151 assert test_concept.aff_flag == []
152 assert test_concept.sp_flag is False