16
16
17
17
import unittest
18
18
19
+ import pytest
20
+
19
21
import diffpy .srfit .equation .literals as literals
20
22
import diffpy .srfit .equation .visitors as visitors
21
23
22
24
23
- class TestValidator (unittest .TestCase ):
25
+ class TestValidator :
26
+ @pytest .fixture (autouse = True )
27
+ def setup (self , make_args ):
28
+ self .make_args = make_args
24
29
25
30
def testSimpleFunction (self ):
26
31
"""Test a simple function."""
27
32
28
33
# Make some variables
29
- v1 , v2 , v3 , v4 = _makeArgs (4 )
34
+ v1 , v2 , v3 , v4 = self . make_args (4 )
30
35
31
36
# Make some operations
32
37
mult = literals .MultiplicationOperator ()
@@ -49,50 +54,53 @@ def testSimpleFunction(self):
49
54
# Now validate
50
55
validator = visitors .Validator ()
51
56
mult .identify (validator )
52
- self . assertEqual ( 4 , len (validator .errors ) )
57
+ assert 4 == len (validator .errors )
53
58
54
59
# Fix the equation
55
60
minus .addLiteral (v3 )
56
61
validator .reset ()
57
62
mult .identify (validator )
58
- self . assertEqual ( 3 , len (validator .errors ) )
63
+ assert 3 == len (validator .errors )
59
64
60
65
# Fix the name of plus
61
66
plus .name = "add"
62
67
validator .reset ()
63
68
mult .identify (validator )
64
- self . assertEqual ( 2 , len (validator .errors ) )
69
+ assert 2 == len (validator .errors )
65
70
66
71
# Fix the symbol of plus
67
72
plus .symbol = "+"
68
73
validator .reset ()
69
74
mult .identify (validator )
70
- self . assertEqual ( 1 , len (validator .errors ) )
75
+ assert 1 == len (validator .errors )
71
76
72
77
# Fix the operation of plus
73
78
import numpy
74
79
75
80
plus .operation = numpy .add
76
81
validator .reset ()
77
82
mult .identify (validator )
78
- self . assertEqual ( 0 , len (validator .errors ) )
83
+ assert 0 == len (validator .errors )
79
84
80
85
# Add another literal to minus
81
86
minus .addLiteral (v1 )
82
87
validator .reset ()
83
88
mult .identify (validator )
84
- self . assertEqual ( 1 , len (validator .errors ) )
89
+ assert 1 == len (validator .errors )
85
90
86
91
return
87
92
88
93
89
- class TestArgFinder (unittest .TestCase ):
94
+ class TestArgFinder :
95
+ @pytest .fixture (autouse = True )
96
+ def setup (self , make_args ):
97
+ self .make_args = make_args
90
98
91
99
def testSimpleFunction (self ):
92
100
"""Test a simple function."""
93
101
94
102
# Make some variables
95
- v1 , v2 , v3 , v4 = _makeArgs (4 )
103
+ v1 , v2 , v3 , v4 = self . make_args (4 )
96
104
97
105
# Make some operations
98
106
mult = literals .MultiplicationOperator ()
@@ -116,33 +124,36 @@ def testSimpleFunction(self):
116
124
117
125
# now get the args
118
126
args = visitors .getArgs (mult )
119
- self . assertEqual ( 4 , len (args ) )
120
- self . assertTrue ( v1 in args )
121
- self . assertTrue ( v2 in args )
122
- self . assertTrue ( v3 in args )
123
- self . assertTrue ( v4 in args )
127
+ assert 4 == len (args )
128
+ assert v1 in args
129
+ assert v2 in args
130
+ assert v3 in args
131
+ assert v4 in args
124
132
125
133
return
126
134
127
135
def testArg (self ):
128
136
"""Test just an Argument equation."""
129
137
# Make some variables
130
- v1 = _makeArgs (1 )[0 ]
138
+ v1 = self . make_args (1 )[0 ]
131
139
132
140
args = visitors .getArgs (v1 )
133
141
134
- self . assertEqual ( 1 , len (args ) )
135
- self . assertTrue ( args [0 ] is v1 )
142
+ assert 1 == len (args )
143
+ assert args [0 ] == v1
136
144
return
137
145
138
146
139
- class TestSwapper (unittest .TestCase ):
147
+ class TestSwapper :
148
+ @pytest .fixture (autouse = True )
149
+ def setup (self , make_args ):
150
+ self .make_args = make_args
140
151
141
152
def testSimpleFunction (self ):
142
153
"""Test a simple function."""
143
154
144
155
# Make some variables
145
- v1 , v2 , v3 , v4 , v5 = _makeArgs (5 )
156
+ v1 , v2 , v3 , v4 , v5 = self . make_args (5 )
146
157
147
158
# Make some operations
148
159
mult = literals .MultiplicationOperator ()
@@ -166,43 +177,44 @@ def testSimpleFunction(self):
166
177
v5 .setValue (5 )
167
178
168
179
# Evaluate
169
- self . assertEqual ( 8 , mult .value )
180
+ assert 8 == mult .value
170
181
171
182
# Now swap an argument
172
183
visitors .swap (mult , v2 , v5 )
173
184
174
185
# Check that the operator value is invalidated
175
- self . assertTrue ( mult ._value is None )
176
- self . assertFalse ( v2 .hasObserver (minus ._flush ) )
177
- self . assertTrue ( v5 .hasObserver (minus ._flush ) )
186
+ assert mult ._value is None
187
+ assert not v2 .hasObserver (minus ._flush )
188
+ assert v5 .hasObserver (minus ._flush )
178
189
179
190
# now get the args
180
191
args = visitors .getArgs (mult )
181
- self . assertEqual ( 4 , len (args ) )
182
- self . assertTrue ( v1 in args )
183
- self . assertTrue ( v2 not in args )
184
- self . assertTrue ( v3 in args )
185
- self . assertTrue ( v4 in args )
186
- self . assertTrue ( v5 in args )
192
+ assert 4 == len (args )
193
+ assert v1 in args
194
+ assert v2 not in args
195
+ assert v3 in args
196
+ assert v4 in args
197
+ assert v5 in args
187
198
188
199
# Re-evaluate (1+3)*(4-5) = -4
189
- self . assertEqual ( - 4 , mult .value )
200
+ assert - 4 == mult .value
190
201
191
202
# Swap out the "-" operator
192
203
plus2 = literals .AdditionOperator ()
193
204
visitors .swap (mult , minus , plus2 )
194
- self . assertTrue ( mult ._value is None )
195
- self . assertFalse ( minus .hasObserver (mult ._flush ) )
196
- self . assertTrue ( plus2 .hasObserver (mult ._flush ) )
205
+ assert mult ._value is None
206
+ assert not minus .hasObserver (mult ._flush )
207
+ assert plus2 .hasObserver (mult ._flush )
197
208
198
209
# plus2 has no arguments yet. Verify this.
199
- self .assertRaises (TypeError , mult .getValue )
210
+ with pytest .raises (TypeError ):
211
+ mult .getValue ()
200
212
# Add the arguments to plus2.
201
213
plus2 .addLiteral (v4 )
202
214
plus2 .addLiteral (v5 )
203
215
204
216
# Re-evaluate (1+3)*(4+5) = 36
205
- self . assertEqual ( 36 , mult .value )
217
+ assert 36 == mult .value
206
218
207
219
return
208
220
0 commit comments