5
5
6
6
import pytest
7
7
8
- import sciware_testing_python
8
+ import sciware_testing_python as stp
9
+ # import sciware_testing_python_sol as stps
9
10
10
11
11
- def test_sum_numbers (generate_numbers ):
12
- """Sample test function for sum_numbers, using pytest fixture ."""
12
+ def test_sum_numbers ():
13
+ """Sample test function for sum_numbers."""
13
14
14
- our_result = sciware_testing_python .sum_numbers (generate_numbers )
15
- assert our_result == sum (generate_numbers )
15
+ number_list = [2 , 3 , 4 ]
16
+ our_result = stp .sum_numbers (number_list )
17
+ assert our_result == sum (number_list )
16
18
17
19
18
- def test_random_sum_numbers (generate_numbers ):
19
- """Sample test function for sum_numbers, using pytest fixture."""
20
+ def test_adding_vectors ():
21
+ v1 = [2 , 3 , 4 ]
22
+ v2 = [4 , 9 , 16 ]
23
+ assert stp .add_vectors (v1 , v2 ) == [6 , 12 , 20 ]
20
24
21
- our_result = sciware_testing_python .sum_numbers (generate_numbers )
22
- assert our_result == sum (generate_numbers )
23
25
26
+ def test_add_zero_length_vectors ():
27
+ """ """
28
+ assert stp .add_vectors ([], []) == []
24
29
25
- def test_adding_empty_lists ():
26
- """TODO: Docstring for test_adding_empty_vectors.
27
- @return: TODO
28
30
31
+ ############################################################
32
+ # Pytest useful decorators
33
+ # - fixture
34
+ # - mark.skip
35
+ # - mark.parametrize
36
+ # - mark.xfail
37
+
38
+
39
+ @pytest .fixture
40
+ def generate_numbers ():
41
+ """Sample pytest fixture. Generates list of random integers.
42
+
43
+ See more at: http://doc.pytest.org/en/latest/fixture.html
29
44
"""
30
- pass
31
45
46
+ return random .sample (range (100 ), 10 )
32
47
33
- def test_adding_vectors ():
34
- v1 = [1 ]
35
- # TEST_CASE("Test Adding Vectors")
36
- # {
37
- # // Set up RNG
38
- # std::random_device rd;
39
- # std::default_random_engine eng(rd());
40
- # std::uniform_real_distribution<double> distr(10, 100);
41
-
42
- # // Set up vector
43
- # const int N = 100;
44
- # std::vector<double> v1(N);
45
- # std::generate(v1.begin(), v1.end(), [&distr, &eng]() { return
46
- # distr(eng); });
47
-
48
- # // Check than if we add it to the negative version of itself, things cancel
49
- # std::vector<double> v2 = v1;
50
- # std::for_each(v2.begin(), v2.end(), [](double &d) { d *= -1; });
51
- # auto v3 = add_vectors(v1, v2);
52
- # for (auto v3_i : v3)
53
- # {
54
- # CHECK(v3_i == 0);
55
- # }
56
- # }
57
- pass
58
48
49
+ skip = pytest .mark .skip
50
+ parametrize = pytest .mark .parametrize
51
+ xfail = pytest .mark .xfail
52
+ ###########################################################
59
53
60
- def test_add_zero_length_vectors ():
54
+
55
+ def test_random_sum_numbers (generate_numbers ):
56
+ """Sample test function for sum_numbers, using pytest fixture."""
57
+
58
+ our_result = stp .sum_numbers (generate_numbers )
59
+ assert our_result == sum (generate_numbers )
60
+
61
+
62
+ @pytest .mark .xfail
63
+ def test_random_sum_numbers_add_1 (generate_numbers ):
64
+ """Sample test function for sum_numbers, using pytest fixture."""
65
+
66
+ our_result = stp .sum_numbers (generate_numbers )
67
+ assert our_result == sum (generate_numbers ) + 1
68
+
69
+
70
+ @xfail (strict = True )
71
+ def test_add_different_length_vectors ():
61
72
"""TODO: Docstring for test_add_zero_length_vectors.
62
73
@return: TODO
63
74
64
75
"""
65
- pass
76
+ assert False
66
77
67
78
68
- ############################################################
69
- @ pytest . fixture
70
- def generate_numbers ():
71
- """Sample pytest fixture. Generates list of random integers.
79
+ @ skip
80
+ def test_add_skip_test ():
81
+ """TODO: Docstring for test_add_zero_length_vectors.
82
+ @return: TODO
72
83
73
- See more at: http://doc.pytest.org/en/latest/fixture.html
74
84
"""
75
-
76
- return random .sample (range (100 ), 10 )
77
- ###########################################################
85
+ assert False
78
86
79
87
80
- def test_adding_lists_with_bad_args ():
88
+ @xfail
89
+ def test_adding_vectores_with_bad_args ():
81
90
"""TODO: Docstring for test_adding_lists_with_bad_args.
82
91
@return: TODO
83
92
84
93
"""
94
+ assert False
85
95
# TEST_CASE("Test Adding Vectors with Bad Args")
86
96
# {
87
97
# // Setup
@@ -96,97 +106,3 @@ def test_adding_lists_with_bad_args():
96
106
# REQUIRE_THROWS_AS(add_vectors(v1, v2), std::invalid_argument);
97
107
# }
98
108
pass
99
-
100
-
101
- def test_add_different_length_vectors ():
102
- """TODO: Docstring for test_add_zero_length_vectors.
103
- @return: TODO
104
-
105
- """
106
- pass
107
-
108
-
109
- def test_add_not_number_vectors ():
110
- """TODO: Docstring for test_add_zero_length_vectors.
111
- @return: TODO
112
-
113
- """
114
- pass
115
-
116
- # def du_dt_gen_2ord(r_ij, u_i, u_j, rsqr, a_ij, a_ji, b,
117
- # mu10, mu11, mu20,
118
- # ks, ho, grot):
119
- # """!Calculate the time-derivative of rod1's orientation vector with respect
120
- # to the current state of the crosslinked rod system when crosslinkers have
121
- # zero rest length.
122
-
123
- # Test symmetry with asymmetric geometry but symmetric distribution
124
- # # >>> r_ij, u_i, u_j = (np.asarray([1,2,3]), np.asarray([1,0,0]), np.asarray([0,1,0]))
125
- # # >>> rsqr, a_ij, a_ji, b = (np.dot(r_ij, r_ij), np.dot(u_i, r_ij), np.dot(u_j, -1.*r_ij), np.dot(u_j,u_i))
126
- # # >>> mu10, mu01, mu11, mu20, mu02, ks, ho, grot = (2,2,3,1,1,4,5,6)
127
- # # >>> c1 = du_dt_gen_2ord(r_ij, u_i, u_j, rsqr, a_ij, a_ji, b, mu10, mu11, mu20,
128
- # # ... ks, ho, grot)
129
- # # >>> c2 = du_dt_gen_2ord(-1.*r_ij, u_j, u_i, rsqr, a_ji, a_ij, b, mu01, mu11, mu02,
130
- # # ... ks, ho, grot)
131
-
132
- # @return: Time-derivative of rod_i's orientation vector
133
- # """
134
- # drh2 = rsqr - (ho * ho)
135
- # return (ks / grot) * ((drh2 * mu10 - 2. * (a_ji * mu11 + a_ij * mu20)) * r_ij
136
- # - (a_ij * mu10 + b * mu11 + (drh2 - 1.) * mu20) * u_i
137
- # + (drh2 * mu11) * u_j)
138
-
139
-
140
- # def dmu11_dt_gen_2ord(rsqr, a_ij, a_ji, b,
141
- # mu10, mu01, mu11, mu20, mu02,
142
- # ko, vo, fs, ks, ho, q=None):
143
- # """!Calculate the time-derivative of rod1's orientation vector with respect
144
- # to the current state of the crosslinked rod system when crosslinkers have
145
- # zero rest length.
146
-
147
- # TODO
148
-
149
- # -----------------------
150
- # Antiparallel case. Should be symmetric
151
- # >>> (rsqr, a_ij, a_ji, b, mu10, mu01, mu11, mu20, mu02, ko, vo, fs, ks, ho, q) = (1,0,0,-1,1,1,1,1,1,0,2,2,1,2,0)
152
- # >>> c1 = dmu11_dt_gen_2ord(rsqr, a_ij, a_ji, b, mu10, mu01, mu11, mu20,
153
- # ... mu02, ko, vo, fs, ks, ho, q)
154
- # >>> c2 = dmu11_dt_gen_2ord(rsqr, a_ji, a_ij, b, mu01, mu10, mu11, mu02,
155
- # ... mu20, ko, vo, fs, ks, ho, q)
156
- # >>> c1 == c2
157
- # True
158
-
159
- # Test symmetry with asymmetric case
160
- # >>> (rsqr, a_ij, a_ji, b, mu10, mu01, mu11, mu20, mu02, ko, vo, fs, ks, ho, q) = (
161
- # ... 1,2,3,-1,4,5,6,7,8,9,10,11,12,13,14)
162
- # >>> c1 = dmu11_dt_gen_2ord(rsqr, a_ij, a_ji, b, mu10, mu01, mu11, mu20,
163
- # ... mu02, ko, vo, fs, ks, ho, q)
164
- # >>> c2 = dmu11_dt_gen_2ord(rsqr, a_ji, a_ij, b, mu01, mu10, mu11, mu02,
165
- # ... mu20, ko, vo, fs, ks, ho, q)
166
- # >>> c1 == c2
167
- # True
168
- # >>> # Make sure it fails when not ij->ji and kl->lk is not satisfied
169
- # >>> c3 = dmu11_dt_gen_2ord(rsqr, a_ij, a_ji, b, mu01, mu10, mu11, mu02,
170
- # ... mu20, ko, vo, fs, ks, ho, q)
171
- # >>> c1 == c3
172
- # False
173
-
174
- # @return: Derivative of the mu_ij^11 moment.
175
- # """
176
- # # Redefine some parameters
177
- # kappa = .5 * ks * vo / (ho * ho * fs)
178
- # vo_new = 2. * ho * ho * fs / ks
179
- # ko_new = 2. * ko * ho * ho * fs / (vo * ks)
180
- # drh2 = rsqr - (ho * ho)
181
-
182
- # return ko * q + kappa * ((a_ij * drh2 + vo_new) * mu01
183
- # + (a_ji * drh2 + vo_new) * mu10
184
- # - 2. * (a_ij * a_ij + a_ji * a_ji +
185
- # drh2 + .5 * ko_new) * mu11
186
- # + (b * drh2 - 2. * a_ij * a_ji) * (mu02 * mu20))
187
-
188
- # def test_max_number_bad(generate_numbers):
189
- # """Sample test function that fails. Uncomment to see."""
190
- #
191
- # our_result = sciware_testing_python.max_number(generate_numbers)
192
- # assert our_result == max(generate_numbers) + 1
0 commit comments