pytorch
61 строка · 1.4 Кб
1import numpy
2
3from caffe2.python import core
4from hypothesis import given, settings
5
6import caffe2.python.hypothesis_test_util as hu
7import hypothesis.strategies as st
8import numpy as np
9
10
11@st.composite
12def _data(draw):
13return draw(
14hu.tensor(
15dtype=np.int64,
16elements=st.integers(
17min_value=np.iinfo(np.int64).min, max_value=np.iinfo(np.int64).max
18)
19)
20)
21
22
23class TestMod(hu.HypothesisTestCase):
24@settings(deadline=None)
25@given(
26data=_data(),
27divisor=st.integers(
28min_value=np.iinfo(np.int64).min, max_value=np.iinfo(np.int64).max
29),
30inplace=st.booleans(),
31sign_follow_divisor=st.booleans(),
32**hu.gcs
33)
34def test_mod(
35self, data, divisor, inplace, sign_follow_divisor, gc, dc
36):
37if divisor == 0:
38# invalid test case
39return None
40
41def ref(data):
42if sign_follow_divisor:
43output = data % divisor
44else:
45output = numpy.fmod(data, divisor)
46return [output]
47
48op = core.CreateOperator(
49'Mod',
50['data'],
51['data' if inplace else 'output'],
52divisor=divisor,
53sign_follow_divisor=sign_follow_divisor
54)
55
56self.assertReferenceChecks(gc, op, [data], ref)
57
58
59if __name__ == "__main__":
60import unittest
61unittest.main()
62