示例#1
0
 def test_scalar_max_months(self):
     (state1, mons1) = dcs.dist_enum_and_mons(self.num, self.distribution, self.prng, max_months=1)
     (state2, mons2) = dcs.dist_enum_and_mons(self.num, self.distribution, self.prng, max_months=3)
     np.testing.assert_array_equal(set(state1), {1, 2, 3, 4})
     np.testing.assert_array_equal(set(state2), {1, 2, 3, 4})
     np.testing.assert_array_equal(set(mons1), {1})
     np.testing.assert_array_equal(set(mons2), {1, 2, 3})
示例#2
0
 def test_different_start_num(self):
     (state1, mons1) = dcs.dist_enum_and_mons(self.num, self.distribution, self.prng, max_months=self.max_months)
     (state2, mons2) = dcs.dist_enum_and_mons(self.num, self.distribution, self.prng, max_months=self.max_months, start_num=101)
     np.testing.assert_array_equal(set(state1), {1, 2, 3, 4})
     np.testing.assert_array_equal(set(state2), {101, 102, 103, 104})
     np.testing.assert_array_equal(set(mons1), {1})
     np.testing.assert_array_equal(set(mons2), {1})
示例#3
0
 def test_calling(self):
     (state, mons) = dcs.dist_enum_and_mons(self.num, self.distribution, self.prng, max_months=self.max_months)
     breakout = np.histogram(state, bins = [0.5, 1.5, 2.5, 3.5, 4.5])[0]
     breakout_per = breakout / self.num
     for ix in range(len(self.distribution)):
         self.assertTrue(np.abs(breakout_per[ix] - self.distribution[ix]) <= self.per_lim)
     self.assertTrue(np.all(mons <= self.max_months[state-1]) and np.all(mons >= 1))
示例#4
0
 def test_zero_num(self):
     self.num = 0
     (state, mons) = dcs.dist_enum_and_mons(self.num, self.distribution, self.prng, max_months=self.max_months)
     self.assertTrue(len(state) == 0)
     self.assertTrue(len(mons) == 0)
示例#5
0
 def test_single_num(self):
     self.num = 1
     (state, mons) = dcs.dist_enum_and_mons(self.num, self.distribution, self.prng, max_months=self.max_months)
     self.assertIn(state[0], {1, 2, 3, 4})
     self.assertTrue(mons[0] <= max(self.max_months))
示例#6
0
 def test_max_months_is_none(self):
     (state, mons) = dcs.dist_enum_and_mons(self.num, self.distribution, self.prng)
     np.testing.assert_array_equal(set(state), {1, 2, 3, 4})
     self.assertTrue(mons is None)
示例#7
0
 def test_all_in_one_bin(self):
     for i in range(4):
         temp = np.zeros(4)
         temp[i] = 1
         (tb_state, _) = dcs.dist_enum_and_mons(self.num, temp, self.prng, max_months=self.max_months)
         self.assertTrue(np.all(tb_state == i+1))