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

1from concept.concept import Concept 

2from test.data_for_tests import * 

3from util.constants import NULL_VAL_INT, NULL_VAL_STRING 

4 

5 

6class TestConcept: 

7 

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 

25 

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 

30 

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 

38 

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 

46 

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 

54 

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 

62 

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 

71 

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 

80 

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 

88 

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 

96 

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 

104 

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 

112 

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 

121 

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 

130 

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 

139 

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 

153