-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest_All.py
285 lines (214 loc) · 10.3 KB
/
test_All.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
from ChemTypes import ElementT
from MolecSet import MolecSet
from Set import Set
from MoleculeT import MoleculeT
from CompoundT import CompoundT
from ReactionT import ReactionT
from pytest import raises
def test_set_add():
addset = Set([0, 0, -2, -5, 28392, 9, 2, 2])
addset.add(0)
addset.add(1)
assert addset.member(1), "Test Case Failed"
assert addset.to_seq() == [0, -2, -5, 28392, 9, 2, 1], "Test Case Failed"
assert addset.size() == 7, "Test Case Failed"
def test_set_rm():
rmset = Set([1, 2, 1, 3, 2, 4, 5, -1])
rmset.rm(1)
rmset.rm(2)
rmset.rm(3)
rmset.rm(4)
rmset.rm(5)
assert rmset.to_seq() == [-1], "Test Case Failed"
assert rmset.size() == 1, "Test Case Failed"
assert rmset.member(5) is False, "Test Case Failed"
assert rmset.member(-1), "Test Case Failed"
with raises(ValueError) as excinfo:
rmset.rm(6)
assert "Test Case Failed" in str(excinfo.value)
def test_set_member():
memberset = Set([-0, 0, 0, 0, 0, 1])
assert memberset.member(-0), "Test Case Failed"
assert memberset.member(+0), "Test Case Failed"
assert memberset.member(1), "Test Case Failed"
assert memberset.member(-1) is False, "Test Case Failed"
def test_set_size():
sizeset = Set([])
assert sizeset.size() == 0, "Test Case Failed"
sizeset.add(100)
sizeset.add(100)
assert sizeset.size() == 1, "Test Case Failed"
sizeset.rm(100)
assert sizeset.size() == 0, "Test Case Failed"
def test_set_equals():
equalsset1 = Set([100, 500, 2, 1, 5, 0, -1, 2000, 2000])
equalsset2 = Set([0, 5, 1, 2, -1, 500, 100, 2000])
assert equalsset1.equals(equalsset2), "Test Case Failed"
equalsset1.rm(2000)
equalsset2.rm(2000)
equalsset1.add(-1)
equalsset1.add(-1)
assert equalsset1.equals(equalsset2), "Test Case Failed"
equalsset1.add(101)
assert equalsset1.equals(equalsset2) is False, "Test Case Failed"
def test_set_to_seq():
toseqset = Set([1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 1])
assert toseqset.to_seq() == [1, 2, 3, 4, 5], "Test Case Failed"
toseqset.add(1)
assert toseqset.to_seq() == [1, 2, 3, 4, 5], "Test Case Failed"
def test_moleculet_get_num():
getnummolec1 = MoleculeT(-1, ElementT.H)
getnummolec2 = MoleculeT(0, ElementT.P)
getnummolec3 = MoleculeT(1, ElementT.Ti)
assert getnummolec1.get_num() == -1, "Test Case Failed"
assert getnummolec2.get_num() == 0, "Test Case Failed"
assert getnummolec3.get_num() == 1, "Test Case Failed"
def test_moleculet_get_elm():
getelmmolec1 = MoleculeT(31312, ElementT.Lv)
getelmmolec2 = MoleculeT(7657324225, ElementT.Ts)
getelmmolec3 = MoleculeT(5353536, ElementT.Og)
assert getelmmolec1.get_elm() == ElementT.Lv, "Test Case Failed"
assert getelmmolec2.get_elm() == ElementT.Ts, "Test Case Failed"
assert getelmmolec3.get_elm() == ElementT.Og, "Test Case Failed"
def test_moleculet_num_atoms():
numatomsmolec = MoleculeT(50 - 20 - 20 - 20 + 35, ElementT.Sg)
assert numatomsmolec.num_atoms(ElementT.Sg) == 25, "Test Case Failed"
assert numatomsmolec.num_atoms(ElementT.Sg) != 24, "Test Case Failed"
assert numatomsmolec.num_atoms(ElementT.Bh) == 0, "Test Case Failed"
def test_moleculet_constit_elems():
constitelemsmolec = MoleculeT(50, ElementT.Es)
assert constitelemsmolec.constit_elems().to_seq() == [ElementT.Es], "Test Case Failed"
def test_moleculet_equals():
equalsmolec1 = MoleculeT(0, ElementT.H)
equalsmolec2 = MoleculeT(0, ElementT.H)
equalsmolec3 = MoleculeT(1, ElementT.H)
equalsmolec4 = MoleculeT(1, ElementT.He)
assert equalsmolec1.equals(equalsmolec2), "Test Case Failed"
assert equalsmolec2.equals(equalsmolec3) is False, "Test Case Failed"
assert equalsmolec3.equals(equalsmolec4) is False, "Test Case Failed"
def test_compoundt_get_molec_set():
gtmolsetcomp = CompoundT(MolecSet([MoleculeT(2, ElementT.H), MoleculeT(1, ElementT.C)]))
temp = gtmolsetcomp.get_molec_set().to_seq()
assert temp[0].equals(MoleculeT(2, ElementT.H)), "Test Case Failed"
assert temp[1].equals(MoleculeT(1, ElementT.C)), "Test Case Failed"
def test_compoundt_num_atoms():
numatomscomp = CompoundT(MolecSet([MoleculeT(2, ElementT.H), MoleculeT(1, ElementT.C)]))
assert numatomscomp.num_atoms(ElementT.H) == 2, "Test Case Failed"
assert numatomscomp.num_atoms(ElementT.C) == 1, "Test Case Failed"
def test_compoundt_constit_elems():
conelmcmp = CompoundT(MolecSet([MoleculeT(2, ElementT.H), MoleculeT(1, ElementT.C)]))
assert conelmcmp.constit_elems().to_seq() == [ElementT.H, ElementT.C], "Test Case Failed"
def test_compoundt_equals():
equalscomp1 = CompoundT(MolecSet([MoleculeT(2, ElementT.H), MoleculeT(1, ElementT.C)]))
equalscomp2 = CompoundT(MolecSet([MoleculeT(2, ElementT.H), MoleculeT(1, ElementT.C)]))
equalscomp3 = CompoundT(MolecSet([MoleculeT(2, ElementT.C), MoleculeT(1, ElementT.C)]))
assert equalscomp1.equals(equalscomp2), "Test Case Failed"
assert equalscomp2.equals(equalscomp3) is False, "Test Case Failed"
def test_reactiont_get_lhs():
hydrogen2 = MoleculeT(2, ElementT.H)
hydrogen8 = MoleculeT(8, ElementT.H)
carbon1 = MoleculeT(1, ElementT.C)
carbon3 = MoleculeT(3, ElementT.C)
oxygen1 = MoleculeT(1, ElementT.O)
oxygen2 = MoleculeT(2, ElementT.O)
propane = CompoundT(MolecSet([carbon3, hydrogen8, oxygen2]))
oxygen = CompoundT(MolecSet([oxygen2]))
water = CompoundT(MolecSet([hydrogen2, oxygen1]))
carbdioxide = CompoundT(MolecSet([carbon1, oxygen2]))
reaction = ReactionT([propane, oxygen], [water, carbdioxide])
lhsresult = reaction.get_lhs()
lhsexpected = [propane, oxygen]
assert lhsresult[0].equals(lhsexpected[0]), "Test Case Failed"
assert lhsresult[1].equals(lhsexpected[1]), "Test Case Failed"
def test_reactiont_get_rhs():
hydrogen2 = MoleculeT(2, ElementT.H)
hydrogen8 = MoleculeT(8, ElementT.H)
carbon1 = MoleculeT(1, ElementT.C)
carbon3 = MoleculeT(3, ElementT.C)
oxygen1 = MoleculeT(1, ElementT.O)
oxygen2 = MoleculeT(2, ElementT.O)
propane = CompoundT(MolecSet([carbon3, hydrogen8, oxygen2]))
oxygen = CompoundT(MolecSet([oxygen2]))
water = CompoundT(MolecSet([hydrogen2, oxygen1]))
carbdioxide = CompoundT(MolecSet([carbon1, oxygen2]))
reaction = ReactionT([propane, oxygen], [water, carbdioxide])
rhsresult = reaction.get_rhs()
rhsexpected = [water, carbdioxide]
assert rhsresult[0].equals(rhsexpected[0]), "Test Case Failed"
assert rhsresult[1].equals(rhsexpected[1]), "Test Case Failed"
def test_reactiont_get_lhs_coeff():
hydrogen1 = MoleculeT(1, ElementT.H)
hydrogen2 = MoleculeT(2, ElementT.H)
hydrogen3 = MoleculeT(3, ElementT.H)
hydrogen4 = MoleculeT(4, ElementT.H)
hydrogen8 = MoleculeT(8, ElementT.H)
hydrogen12 = MoleculeT(12, ElementT.H)
carbon1 = MoleculeT(1, ElementT.C)
carbon3 = MoleculeT(3, ElementT.C)
nitrogen1 = MoleculeT(1, ElementT.N)
nitrogen2 = MoleculeT(2, ElementT.N)
nitrogen3 = MoleculeT(3, ElementT.N)
oxygen1 = MoleculeT(1, ElementT.O)
oxygen2 = MoleculeT(2, ElementT.O)
oxygen3 = MoleculeT(3, ElementT.O)
oxygen4 = MoleculeT(4, ElementT.O)
oxygen40 = MoleculeT(40, ElementT.O)
phosphorus1 = MoleculeT(1, ElementT.P)
mbdenum1 = MoleculeT(1, ElementT.Mo)
mbdenum12 = MoleculeT(12, ElementT.Mo)
propane = CompoundT(MolecSet([carbon3, hydrogen8]))
oxygen = CompoundT(MolecSet([oxygen2]))
water = CompoundT(MolecSet([hydrogen2, oxygen1]))
carbdioxide = CompoundT(MolecSet([carbon1, oxygen2]))
nitrdioxide = CompoundT(MolecSet([nitrogen1, oxygen2]))
nitracid = CompoundT(MolecSet([hydrogen1, nitrogen1, oxygen3]))
phosacid = CompoundT(MolecSet([hydrogen3, phosphorus1, oxygen4]))
ammonorth = CompoundT(MolecSet([nitrogen2, hydrogen8, mbdenum1, oxygen4]))
ammonphos = CompoundT(MolecSet([nitrogen3, hydrogen12, phosphorus1, oxygen40, mbdenum12]))
ammonnitr = CompoundT(MolecSet([nitrogen2, hydrogen4, oxygen3]))
reaction1 = ReactionT([propane, oxygen], [water, carbdioxide])
reaction2 = ReactionT([phosacid, ammonorth, nitracid], [ammonphos, ammonnitr, water])
assert reaction1.get_lhs_coeff() == [1, 5], "Test Case Failed"
assert reaction2.get_lhs_coeff() == [1, 12, 21], "Test Case Failed"
with raises(ValueError) as excinfo:
reaction3 = ReactionT([water, nitrdioxide], [nitracid])
reaction3.get_lhs_coeff()
assert "Test Case Failed" in str(excinfo.value)
def test_reactiont_get_rhs_coeff():
hydrogen1 = MoleculeT(1, ElementT.H)
hydrogen2 = MoleculeT(2, ElementT.H)
hydrogen3 = MoleculeT(3, ElementT.H)
hydrogen4 = MoleculeT(4, ElementT.H)
hydrogen8 = MoleculeT(8, ElementT.H)
hydrogen12 = MoleculeT(12, ElementT.H)
carbon1 = MoleculeT(1, ElementT.C)
carbon3 = MoleculeT(3, ElementT.C)
nitrogen1 = MoleculeT(1, ElementT.N)
nitrogen2 = MoleculeT(2, ElementT.N)
nitrogen3 = MoleculeT(3, ElementT.N)
oxygen1 = MoleculeT(1, ElementT.O)
oxygen2 = MoleculeT(2, ElementT.O)
oxygen3 = MoleculeT(3, ElementT.O)
oxygen4 = MoleculeT(4, ElementT.O)
oxygen40 = MoleculeT(40, ElementT.O)
phosphorus1 = MoleculeT(1, ElementT.P)
mbdenum1 = MoleculeT(1, ElementT.Mo)
mbdenum12 = MoleculeT(12, ElementT.Mo)
propane = CompoundT(MolecSet([carbon3, hydrogen8, oxygen2]))
oxygen = CompoundT(MolecSet([oxygen2]))
water = CompoundT(MolecSet([hydrogen2, oxygen1]))
carbdioxide = CompoundT(MolecSet([carbon1, oxygen2]))
nitrdioxide = CompoundT(MolecSet([nitrogen1, oxygen2]))
nitracid = CompoundT(MolecSet([hydrogen1, nitrogen1, oxygen3]))
phosacid = CompoundT(MolecSet([hydrogen3, phosphorus1, oxygen4]))
ammonorth = CompoundT(MolecSet([nitrogen2, hydrogen8, mbdenum1, oxygen4]))
ammonphos = CompoundT(MolecSet([nitrogen3, hydrogen12, phosphorus1, oxygen40, mbdenum12]))
ammonnitr = CompoundT(MolecSet([nitrogen2, hydrogen4, oxygen3]))
reaction1 = ReactionT([propane, oxygen], [water, carbdioxide])
reaction2 = ReactionT([phosacid, ammonorth, nitracid], [ammonphos, ammonnitr, water])
assert reaction1.get_rhs_coeff() == [4, 3], "Test Case Failed"
assert reaction2.get_rhs_coeff() == [1, 21, 12], "Test Case Failed"
with raises(ValueError) as excinfo:
reaction3 = ReactionT([water, nitrdioxide], [nitracid])
reaction3.get_rhs_coeff()
assert "Test Case Failed" in str(excinfo.value)