예제 #1
0
    def test_lo_hi_equal(self):
        with self.assertRaises(ValueError):
            random.randint(3, 3, size=0)

        with self.assertRaises(ValueError):
            # int(-0.2) is not less than int(0.3)
            random.randint(-0.2, 0.3)
예제 #2
0
 def test_goodness_of_fit(self):
     mx = 5
     trial = 100
     vals = [random.randint(mx).get() for _ in six.moves.xrange(trial)]
     counts = numpy.histogram(vals, bins=numpy.arange(mx + 1))[0]
     expected = numpy.array([float(trial) / mx] * mx)
     self.assertTrue(hypothesis.chi_square_test(counts, expected))
예제 #3
0
 def test_dtype(self, dtype):
     size = (1000, )
     low = numpy.iinfo(dtype).min
     high = numpy.iinfo(dtype).max + 1
     x = random.randint(low, high, size, dtype)
     self.assertLessEqual(low, min(x))
     self.assertLessEqual(max(x), high)
예제 #4
0
 def test_goodness_of_fit(self):
     mx = 5
     trial = 100
     vals = [random.randint(mx).get() for _ in six.moves.xrange(trial)]
     counts = numpy.histogram(vals, bins=numpy.arange(mx + 1))[0]
     expected = numpy.array([float(trial) / mx] * mx)
     self.assertTrue(hypothesis.chi_square_test(counts, expected))
예제 #5
0
 def test_dtype(self, dtype):
     size = (1000,)
     low = numpy.iinfo(dtype).min
     high = numpy.iinfo(dtype).max + 1
     x = random.randint(low, high, size, dtype).get()
     assert low <= min(x)
     assert max(x) <= high
예제 #6
0
 def test_bound_float1(self):
     # generate floats s.t. int(low) < int(high)
     low, high = sorted(numpy.random.uniform(-5, 5, size=2))
     low -= 1
     high += 1
     vals = [random.randint(low, high, (2, 3)).get() for _ in range(10)]
     for val in vals:
         assert val.shape == (2, 3)
     assert min(_.min() for _ in vals) == int(low)
     assert max(_.max() for _ in vals) == int(high) - 1
예제 #7
0
    def test_dtype2(self, dtype):
        dtype = numpy.dtype(dtype)

        # randint does not support 64 bit integers
        if dtype in (numpy.int64, numpy.uint64):
            return

        iinfo = numpy.iinfo(dtype)
        size = (10000, )

        x = random.randint(iinfo.min, iinfo.max + 1, size, dtype)
        self.assertEqual(x.dtype, dtype)
        self.assertLessEqual(iinfo.min, min(x))
        self.assertLessEqual(max(x), iinfo.max)

        # Lower bound check
        with self.assertRaises(ValueError):
            random.randint(iinfo.min - 1, iinfo.min + 10, size, dtype)

        # Upper bound check
        with self.assertRaises(ValueError):
            random.randint(iinfo.max - 10, iinfo.max + 2, size, dtype)
예제 #8
0
    def test_dtype2(self, dtype):
        dtype = numpy.dtype(dtype)

        # randint does not support 64 bit integers
        if dtype in (numpy.int64, numpy.uint64):
            return

        iinfo = numpy.iinfo(dtype)
        size = (10000,)

        x = random.randint(iinfo.min, iinfo.max + 1, size, dtype).get()
        assert x.dtype == dtype
        assert iinfo.min <= min(x)
        assert max(x) <= iinfo.max

        # Lower bound check
        with self.assertRaises(ValueError):
            random.randint(iinfo.min - 1, iinfo.min + 10, size, dtype)

        # Upper bound check
        with self.assertRaises(ValueError):
            random.randint(iinfo.max - 10, iinfo.max + 2, size, dtype)
예제 #9
0
    def test_zero_sizes(self):
        a = random.randint(10, size=(0,))
        testing.assert_array_equal(a, cupy.array(()))

        a = random.randint(10, size=0)
        testing.assert_array_equal(a, cupy.array(()))
예제 #10
0
 def test_high_and_size_are_none(self):
     random.randint(3)
     self.m.interval.assert_called_with(2, None)
예제 #11
0
 def test_value_error(self):
     with self.assertRaises(ValueError):
         random.randint(100, 1)
예제 #12
0
 def test_high_and_size_are_none(self):
     random.randint(3)
     self.m.interval.assert_called_with(2, None)
예제 #13
0
 def test_bound_1(self):
     vals = [random.randint(0, 10, (2, 3)).get() for _ in range(10)]
     for val in vals:
         self.assertEqual(val.shape, (2, 3))
     self.assertEqual(min(_.min() for _ in vals), 0)
     self.assertEqual(max(_.max() for _ in vals), 9)
예제 #14
0
 def test_bound_float2(self):
     vals = [random.randint(-1.0, 1.0, (2, 3)).get() for _ in range(10)]
     for val in vals:
         assert val.shape == (2, 3)
     assert min(_.min() for _ in vals) == -1
     assert max(_.max() for _ in vals) == 0
예제 #15
0
 def test_bound_overflow(self):
     # 100 - (-100) exceeds the range of int8
     val = random.randint(numpy.int8(-100), numpy.int8(100), size=20).get()
     assert val.shape == (20,)
     assert val.min() >= -100
     assert val.max() < 100
예제 #16
0
 def test_no_none(self):
     random.randint(3, 5, (1, 2, 3))
     self.m.interval.assert_called_with(1, (1, 2, 3))
예제 #17
0
 def test_upper_bound(self):
     val = random.randint(0, 2).get()
     self.assertEqual(1, val)
예제 #18
0
 def test_within_interval(self):
     val = random.randint(0, 10, (2, 3)).get()
     numpy.testing.assert_array_less(
         numpy.full((2, 3), -1, dtype=numpy.int64), val)
     numpy.testing.assert_array_less(
         val, numpy.full((2, 3), 10, dtype=numpy.int64))
예제 #19
0
 def test_no_none(self):
     random.randint(3, 5, (1, 2, 3))
     self.m.interval.assert_called_with(1, (1, 2, 3))
예제 #20
0
 def test_high_is_none(self):
     random.randint(3, None, (1, 2, 3))
     self.m.interval.assert_called_with(2, (1, 2, 3))
예제 #21
0
 def test_size_is_none(self):
     random.randint(3, 5)
     self.m.interval.assert_called_with(1, None)
예제 #22
0
 def test_bound_1(self):
     vals = [random.randint(0, 10, (2, 3)).get() for _ in range(20)]
     for val in vals:
         assert val.shape == (2, 3)
     assert min(_.min() for _ in vals) == 0
     assert max(_.max() for _ in vals) == 9
예제 #23
0
 def test_bound_2(self):
     vals = [random.randint(0, 2).get() for _ in range(20)]
     for val in vals:
         assert val.shape == ()
     assert min(vals) == 0
     assert max(vals) == 1
예제 #24
0
 def test_goodness_of_fit_2(self):
     mx = 5
     vals = random.randint(mx, size=(5, 20)).get()
     counts = numpy.histogram(vals, bins=numpy.arange(mx + 1))[0]
     expected = numpy.array([float(vals.size) / mx] * mx)
     self.assertTrue(hypothesis.chi_square_test(counts, expected))
예제 #25
0
 def test_size_is_none(self):
     random.randint(3, 5)
     self.m.interval.assert_called_with(1, None)
예제 #26
0
 def test_bound_overflow(self):
     # 100 - (-100) exceeds the range of int8
     val = random.randint(numpy.int8(-100), numpy.int8(100), size=20).get()
     self.assertEqual(val.shape, (20,))
     self.assertGreaterEqual(val.min(), -100)
     self.assertLess(val.max(), 100)
예제 #27
0
 def test_lo_hi_reversed(self):
     with self.assertRaises(ValueError):
         random.randint(100, 1)
예제 #28
0
 def test_upper_bound(self):
     val = random.randint(0, 2).get()
     self.assertEqual(1, val)
예제 #29
0
 def test_bound_2(self):
     vals = [random.randint(0, 2).get() for _ in range(20)]
     for val in vals:
         self.assertEqual(val.shape, ())
     self.assertEqual(min(vals), 0)
     self.assertEqual(max(vals), 1)
예제 #30
0
 def test_high_is_none(self):
     random.randint(3, None, (1, 2, 3))
     self.m.interval.assert_called_with(2, (1, 2, 3))
예제 #31
0
 def test_goodness_of_fit_2(self):
     mx = 5
     vals = random.randint(mx, size=(5, 20)).get()
     counts = numpy.histogram(vals, bins=numpy.arange(mx + 1))[0]
     expected = numpy.array([float(vals.size) / mx] * mx)
     self.assertTrue(hypothesis.chi_square_test(counts, expected))
예제 #32
0
    def test_lo_hi_nonrandom(self):
        a = random.randint(-0.9, 1.1, size=3)
        testing.assert_array_equal(a, cupy.full((3,), 0))

        a = random.randint(-1.1, -0.9, size=(2, 2))
        testing.assert_array_equal(a, cupy.full((2, 2), -1))
예제 #33
0
 def test_within_interval(self):
     val = random.randint(0, 10, (2, 3)).get()
     numpy.testing.assert_array_less(
         numpy.full((2, 3), -1, dtype=numpy.int64), val)
     numpy.testing.assert_array_less(
         val, numpy.full((2, 3), 10, dtype=numpy.int64))
예제 #34
0
 def test_value_error(self):
     with self.assertRaises(ValueError):
         random.randint(100, 1)