Skip to content

Commit 2a3d7c8

Browse files
committed
Refactor expecting divison by zero test
1 parent 27f433d commit 2a3d7c8

File tree

2 files changed

+42
-6
lines changed

2 files changed

+42
-6
lines changed

news/pytest-handle-warning.rst

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
**Added:**
2+
3+
* No news added
4+
5+
**Changed:**
6+
7+
* <news item>
8+
9+
**Deprecated:**
10+
11+
* <news item>
12+
13+
**Removed:**
14+
15+
* <news item>
16+
17+
**Fixed:**
18+
19+
* <news item>
20+
21+
**Security:**
22+
23+
* <news item>

tests/test_transforms.py

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -117,19 +117,32 @@ def test_tth_to_q_bad(wavelength, tth, expected_error_type, expected_error_msg):
117117

118118

119119
@pytest.mark.parametrize(
120-
"q, expected_d",
120+
"q, expected_d, warning_expected",
121121
[
122-
# UC1: User specified empty q values
123-
(np.array([]), np.array([])),
124-
# UC2: User specified valid q values
122+
# Case 1: empty q values, expect empty d values
123+
(np.array([]), np.array([]), False),
124+
125+
# Case 2:
126+
# 1. valid q values, expect d values without warning
127+
(
128+
np.array([0.1, 1 * np.pi, 2 * np.pi, 3 * np.pi, 4 * np.pi, 5 * np.pi]),
129+
np.array([62.83185307, 2, 1, 0.66667, 0.5, 0.4]),
130+
False
131+
),
132+
# 2. valid q values containing 0, expect d values with divide by zero warning
125133
(
126134
np.array([0, 1 * np.pi, 2 * np.pi, 3 * np.pi, 4 * np.pi, 5 * np.pi]),
127135
np.array([np.inf, 2, 1, 0.66667, 0.5, 0.4]),
136+
True
128137
),
129138
],
130139
)
131-
def test_q_to_d(q, expected_d):
132-
actual_d = q_to_d(q)
140+
def test_q_to_d(q, expected_d, warning_expected):
141+
if warning_expected:
142+
with pytest.warns(RuntimeWarning, match="divide by zero encountered in divide"):
143+
actual_d = q_to_d(q)
144+
else:
145+
actual_d = q_to_d(q)
133146
assert np.allclose(actual_d, expected_d)
134147

135148

0 commit comments

Comments
 (0)