예제 #1
0
 def test_check_history_breaks_at_first_error(self):
     obj1 = create_plot_object(dt.DiceTable())
     obj2 = create_plot_object(dt.DiceTable())
     obj1['tuple_list'] = [(2.0, 1)]
     del obj2['pts']
     hist = np.array([obj1, obj2])
     self.assertEqual(fh.check_history(hist),
                      'error: corrupted "tuple_list"')
예제 #2
0
 def test_check_saved_tables_within_array_returns_first_error(self):
     obj1 = create_saved_dice_table(dt.DiceTable())
     obj2 = create_saved_dice_table(dt.DiceTable())
     obj1._tuple_list = [(2.0, 1)]
     obj2._title = 2
     save_data_array = np.array([obj1, obj2])
     self.assertEqual(fh.check_saved_tables_within_array(save_data_array),
                      'error: invalid tuple list')
예제 #3
0
 def test_SavedDiceTable_equality_test_false_by_tuple_list(self):
     table_1 = dt.DiceTable()
     table_1.add_die(1, dt.WeightedDie({1: 5, 2: 1}))
     data_obj = create_saved_dice_table(table_1)
     table_2 = dt.DiceTable()
     table_2.add_die(1, dt.WeightedDie({1: 1, 2: 5}))
     other_data_obj = create_saved_dice_table(table_2)
     self.assertEqual(data_obj.title, other_data_obj.title)
     self.assertFalse(data_obj == other_data_obj)
예제 #4
0
 def test_SavedDiceTable_equality_test_true(self):
     table = dt.DiceTable()
     table.add_die(2, dt.Die(2))
     data_obj = create_saved_dice_table(table)
     not_really_equal_data_obj = fh.SavedDiceTable('2D2', [(2, 1), (3, 2),
                                                           (4, 1)], [], [])
     self.assertTrue(data_obj == not_really_equal_data_obj)
예제 #5
0
 def test_check_data_reports_multiple_errors(self):
     obj = create_plot_object(dt.DiceTable())
     obj['tuple_list'] = [(10 * 1000, 2.0)]
     obj['dice'] = [('a', 2.)]
     self.assertEqual(
         fh.check_data(obj),
         'error: corrupted "tuple_list" dicelist at (\'a\', 2.0)')
예제 #6
0
 def test_SavedDiceTable_get_dice_table(self):
     table = dt.DiceTable()
     table.add_die(2, dt.Die(2))
     data_obj = create_saved_dice_table(table)
     data_obj_table = data_obj.dice_table
     self.assertNotEqual(data_obj_table, table)
     self.assertEqual(data_obj_table.frequency_all(), table.frequency_all())
     self.assertEqual(data_obj_table.get_list(), table.get_list())
예제 #7
0
 def test_DiceTableManager_request_reload(self):
     table = dt.DiceTable()
     table.add_die(1, dt.Die(2))
     table.add_die(1, dt.Die(4))
     data_obj = fh.SavedDiceTable('1D2 \\ 1D4', table.frequency_all(), table.get_list(), [])
     self.DTM.request_reload(data_obj)
     self.assertEqual(self.DTM.title, '1D2\n1D4')
     self.assertEqual(self.DTM.full_text,
                      '2: 1\n3: 2\n4: 2\n5: 2\n6: 1\n')
예제 #8
0
 def test_check_data_incorrect_type_at_key(self):
     table = dt.DiceTable()
     table.add_die(3, dt.Die(6))
     obj = create_plot_object(table)
     obj['pts'] = 'a'
     #for difference in python2 and 3
     self.assertIn(
         fh.check_data(obj),
         ("error: pts not <type 'list'>", "error: pts not <class 'list'>"))
예제 #9
0
 def test_check_data_all_die_types_pass(self):
     table = dt.DiceTable()
     table.add_die(1, dt.Die(4))
     table.add_die(1, dt.ModDie(4, 2))
     table.add_die(1, dt.WeightedDie({1: 2}))
     table.add_die(1, dt.ModWeightedDie({1: 2}, 3))
     table.add_die(1, dt.StrongDie(dt.Die(3), 3))
     obj = create_plot_object(table)
     self.assertEqual(fh.check_data(obj), 'ok')
예제 #10
0
 def test_read_write_hist_np_work_ok_for_normal_case(self):
     table = dt.DiceTable()
     table.add_die(1, dt.Die(3))
     obj1 = create_plot_object(table)
     table.add_die(2, dt.Die(5))
     obj2 = create_plot_object(table)
     hist = np.array([obj1, obj2])
     fh.write_history_np(hist)
     msg, new_hist = fh.read_history_np()
     self.assertEqual(msg, 'ok')
     self.assertArrayEqual(hist, new_hist)
예제 #11
0
 def test_read_write_saved_tables_array_work_ok_for_normal_case(self):
     table = dt.DiceTable()
     table.add_die(1, dt.Die(3))
     obj1 = create_saved_dice_table(table)
     table.add_die(2, dt.Die(5))
     obj2 = create_saved_dice_table(table)
     save_data = np.array([obj1, obj2])
     fh.write_saved_tables_array(save_data)
     msg, new_save_data = fh.read_saved_tables_array()
     self.assertEqual(msg, 'ok')
     self.assertArrayEqual(save_data, new_save_data)
예제 #12
0
 def test_read_np_returns_error_and_empty_if_corrupted_file(self):
     table = dt.DiceTable()
     table.add_die(1, dt.Die(3))
     obj1 = create_plot_object(table)
     table.add_die(2, dt.Die(5))
     obj2 = create_plot_object(table)
     hist = np.array([obj1, obj2])
     fh.write_history_np(hist)
     #for differences between python2 and 3
     try:
         with open('numpy_history.npy', 'r') as f:
             to_write = f.read()[:-1]
     except UnicodeDecodeError:
         with open('numpy_history.npy', 'r', errors='ignore') as f:
             to_write = f.read()[:-1]
     with open('numpy_history.npy', 'w') as f:
         f.write(to_write)
     msg, hist = fh.read_history_np()
     self.assertEqual(msg, 'error: file corrupted')
     self.assertArrayEqual(hist, np.array([], dtype=object))
예제 #13
0
 def test_read_saved_tables_array_returns_error_and_empty_if_corrupted_file(
         self):
     table = dt.DiceTable()
     table.add_die(1, dt.Die(3))
     obj1 = create_saved_dice_table(table)
     table.add_die(2, dt.Die(5))
     obj2 = create_saved_dice_table(table)
     save_data_array = np.array([obj1, obj2])
     fh.write_saved_tables_array(save_data_array)
     # for differences between python2 and 3
     try:
         with open('save_data.npy', 'r') as f:
             to_write = f.read()[:-1]
     except UnicodeDecodeError:
         with open('save_data.npy', 'r', errors='ignore') as f:
             to_write = f.read()[:-1]
     with open('save_data.npy', 'w') as f:
         f.write(to_write)
     msg, new_data = fh.read_saved_tables_array()
     self.assertEqual(msg, 'error: file corrupted')
     self.assertArrayEqual(new_data, np.array([], dtype=object))
예제 #14
0
 def test_check_data_incorrect_die_in_dice(self):
     obj = create_plot_object(dt.DiceTable())
     obj['dice'] = [('a', 2.)]
     self.assertEqual(fh.check_data(obj), 'error: dicelist at (\'a\', 2.0)')
예제 #15
0
 def test_check_data_incorrect_val_in_tuple_list(self):
     obj = create_plot_object(dt.DiceTable())
     obj['tuple_list'] = [(10 * 1000, 2.0)]
     self.assertEqual(fh.check_data(obj), 'error: corrupted "tuple_list"')
예제 #16
0
 def test_check_data_long_in_freq_in_tuple_list_ok(self):
     obj = create_plot_object(dt.DiceTable())
     obj['tuple_list'] = [(10 * 1000, 2)]
     self.assertEqual(fh.check_data(obj), 'ok')
예제 #17
0
 def test_check_data_incorrect_y_range(self):
     obj = create_plot_object(dt.DiceTable())
     obj['y_range'] = (1.0, 2)
     self.assertEqual(fh.check_data(obj), 'error: incorrect y_range')
예제 #18
0
 def test_SavedDiceTable_get_title(self):
     table = dt.DiceTable()
     table.add_die(2, dt.Die(1))
     table.add_die(3, dt.Die(2))
     data_obj = create_saved_dice_table(table)
     self.assertEqual('2D1 \\ 3D2', data_obj.title)
예제 #19
0
 def test_SavedDiceTable_get_title_on_empty_obj(self):
     data_obj = create_saved_dice_table(dt.DiceTable())
     self.assertEqual('', data_obj.title)
예제 #20
0
 def request_reset(self):
     '''reset dice table'''
     self._table = dt.DiceTable()
예제 #21
0
 def __init__(self):
     '''just a shell for table'''
     self._table = dt.DiceTable()
예제 #22
0
 def test_check_history_ok_for_valid_hist(self):
     obj1 = create_plot_object(dt.DiceTable())
     obj2 = create_plot_object(dt.DiceTable())
     hist = np.array([obj1, obj2])
     self.assertEqual(fh.check_history(hist), 'ok')
예제 #23
0
 def test_SavedDiceTable_get_graph_pts(self):
     table = dt.DiceTable()
     table.add_die(1, dt.Die(2))
     data_obj = create_saved_dice_table(table)
     self.assertEqual([(1, 50.0), (2, 50.0)], data_obj.graph_pts)
예제 #24
0
 def dice_table(self):
     new_table = dt.DiceTable()
     new_table.add(1, self._tuple_list)
     for die, number in self._dice_list:
         new_table.update_list(number, die)
     return new_table
예제 #25
0
 def test_SavedDiceTable_get_y_range(self):
     table = dt.DiceTable()
     table.add_die(2, dt.Die(2))
     data_obj = create_saved_dice_table(table)
     self.assertEqual((25.0, 50.0), data_obj.y_range)
예제 #26
0
 def test_dice_table_data_get_tuple_list(self):
     data_obj = create_saved_dice_table(dt.DiceTable())
     self.assertEqual([(0, 1)], data_obj.tuple_list)
예제 #27
0
 def request_reload(self, plot_obj):
     '''loads plot_obj as the main die table'''
     self._table = dt.DiceTable()
     for die, number in plot_obj['dice']:
         self._table.update_list(number, die)
     self._table.add(1, plot_obj['tuple_list'])
예제 #28
0
 def test_check_data_empty_table(self):
     table = dt.DiceTable()
     obj = create_plot_object(table)
     self.assertEqual(fh.check_data(obj), 'ok')
예제 #29
0
 def test_check_data_missing_key(self):
     table = dt.DiceTable()
     table.add_die(3, dt.Die(6))
     obj = create_plot_object(table)
     del obj['pts']
     self.assertEqual(fh.check_data(obj), 'error: missing key')
예제 #30
0
 def test_SavedDiceTable_get_tuple_list_does_not_mutate_original_list(self):
     data_obj = create_saved_dice_table(dt.DiceTable())
     new_tuple_list = data_obj.tuple_list
     new_tuple_list[0] = 5
     self.assertEqual([(0, 1)], data_obj.tuple_list)