Skip to content

Commit

Permalink
fix div 0 error of ftt.rfftfreq (#49955)
Browse files Browse the repository at this point in the history
  • Loading branch information
Liyulingyue authored Feb 6, 2023
1 parent e12c922 commit b8e6ca9
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 0 deletions.
2 changes: 2 additions & 0 deletions python/paddle/fft.py
Original file line number Diff line number Diff line change
Expand Up @@ -1326,6 +1326,8 @@ def rfftfreq(n, d=1.0, dtype=None, name=None):
# [0. , 0.66666669, 1.33333337])
"""
if d * n == 0:
raise ValueError("d or n should not be 0.")

dtype = paddle.framework.get_default_dtype()
val = 1.0 / (n * d)
Expand Down
17 changes: 17 additions & 0 deletions python/paddle/fluid/tests/unittests/fft/test_fft.py
Original file line number Diff line number Diff line change
Expand Up @@ -1860,6 +1860,23 @@ def test_rfftfreq(self):
)


@place(DEVICES)
@parameterize(
(TEST_CASE_NAME, 'n', 'd', 'dtype', 'expect_exception'),
[
('test_with_0_0', 0, 0, 'float32', ValueError),
('test_with_n_0', 20, 0, 'float32', ValueError),
('test_with_0_d', 0, 20, 'float32', ValueError),
],
)
class TestRfftFreqException(unittest.TestCase):
def test_rfftfreq2(self):
"""Test fftfreq with d = 0"""
with paddle.fluid.dygraph.guard(self.place):
with self.assertRaises(self.expect_exception):
paddle.fft.rfftfreq(self.n, self.d, self.dtype)


@place(DEVICES)
@parameterize(
(TEST_CASE_NAME, 'x', 'axes', 'dtype'),
Expand Down

0 comments on commit b8e6ca9

Please sign in to comment.