def test_except_status_update_sum_segment_tree(self): test_view_model = SegmentTreeViewModel() test_view_model.set_input_size(5) test_view_model.set_input_array([2, 6, 17, 3, 22]) test_view_model.set_method('sum') test_view_model.calculate() test_view_model.set_update_index(-3) test_view_model.set_update_value(10) test_view_model.update() self.assertEqual(False, test_view_model.get_success_procedure())
def test_update_min_segment_tree(self): test_view_model = SegmentTreeViewModel() test_view_model.set_input_size(5) test_view_model.set_input_array([2, 6, 17, 3, 22]) test_view_model.set_method('min') test_view_model.calculate() test_view_model.set_update_index(0) test_view_model.set_update_value(10) test_view_model.update() self.assertEqual(True, test_view_model.get_success_procedure())
def test_except_message_update_sum_segment_tree(self): test_view_model = SegmentTreeViewModel() test_view_model.set_input_size(5) test_view_model.set_input_array([2, 6, 17, 3, 22]) test_view_model.set_method('sum') test_view_model.calculate() test_view_model.set_update_index(-3) test_view_model.set_update_value(10) test_view_model.update() self.assertEqual('index is out of bounds', test_view_model.get_error_message())
def test_update_button_disable_wrong_value(self): test_model = SegmentTreeViewModel() test_model.set_update_index(1) test_model.set_update_value('a') self.assertEqual('disabled', test_model.is_update_button_enable())
def test_update_button_enabled_after_input_array(self): test_view_model = SegmentTreeViewModel() test_view_model.set_input_array([1, 2, 3]) test_view_model.set_update_index(0) test_view_model.set_update_value(3) self.assertEqual('normal', test_view_model.is_update_button_enable())
def test_init_update_wrong_value(self): test_view_model = SegmentTreeViewModel() test_view_model.set_update_value('=') self.assertEqual('Incorrect update value', test_view_model.get_error_message())
def test_init_update_value(self): test_view_model = SegmentTreeViewModel() test_view_model.set_update_value(5) self.assertEqual(5, test_view_model.get_update_value())
class TestViewModelFakeLogging(unittest.TestCase): def setUp(self): self.view_model = SegmentTreeViewModel(FakeLogger()) def test_logging_init(self): self.assertEqual('Welcome to segment tree application', self.view_model.logger.get_last_message()) def test_logging_set_input_size(self): self.view_model.set_input_size(5) self.assertEqual('Set tree size = 5', self.view_model.logger.get_last_message()) def test_logging_set_input_size_with_incorrect_argument(self): self.view_model.set_input_size('mistake') self.assertEqual('Incorrect type of input size', self.view_model.logger.get_last_message()) def test_logging_set_input_array(self): self.view_model.set_input_array([1, 2, 3, 4, 5]) self.assertEqual('Set array for tree [1, 2, 3, 4, 5]', self.view_model.logger.get_last_message()) def test_logging_build_tree(self): self.view_model.set_input_size(5) self.view_model.set_input_array([1, 2, 3, 4, 5]) self.view_model.set_method('sum') self.view_model.calculate() self.assertEqual('Build segment tree', self.view_model.logger.get_last_message()) def test_logging_build_tree_failed(self): self.view_model.set_input_size(5) self.view_model.set_input_array([1, 2, 3, 4, 5]) self.view_model.set_method('lol') self.view_model.calculate() self.assertEqual('Incorrect type of segment tree. Expected: max\min\sum', self.view_model.logger.get_last_message()) def test_logging_set_method(self): self.view_model.set_method('sum') self.assertEqual('Set method sum', self.view_model.logger.get_last_message()) def test_logging_set_input_array_with_incorrect_argument(self): self.view_model.set_input_array(['mistake', 'mistake']) self.assertEqual('Incorrect input array', self.view_model.logger.get_last_message()) def test_logging_set_left_border(self): self.view_model.set_left_border(0) self.assertEqual('Set left border = 0', self.view_model.logger.get_last_message()) def test_logging_set_left_border_with_incorrect_argument(self): self.view_model.set_left_border('mistake') self.assertEqual('Incorrect left border', self.view_model.logger.get_last_message()) def test_logging_set_right_border(self): self.view_model.set_right_border(2) self.assertEqual('Set right border = 2', self.view_model.logger.get_last_message()) def test_logging_set_right_border_with_incorrect_argument(self): self.view_model.set_right_border('mistake') self.assertEqual('Incorrect right border', self.view_model.logger.get_last_message()) def test_logging_set_update_index(self): self.view_model.set_update_index(1) self.assertEqual('Set update index = 1', self.view_model.logger.get_last_message()) def test_logging_set_update_index_with_incorrect_argument(self): self.view_model.set_update_index('mistake') self.assertEqual('Incorrect update index', self.view_model.logger.get_last_message()) def test_logging_set_update_value(self): self.view_model.set_update_value(100500) self.assertEqual('Set update value = 100500', self.view_model.logger.get_last_message()) def test_logging_set_update_value_with_incorrect_argument(self): self.view_model.set_update_value('mistake') self.assertEqual('Incorrect update value', self.view_model.logger.get_last_message()) def test_logging_update(self): self.view_model.set_input_size(5) self.view_model.set_input_array([1, 2, 3, 4, 5]) self.view_model.set_method('sum') self.view_model.calculate() self.view_model.set_update_index(3) self.view_model.set_update_value(100500) self.view_model.update() self.assertEqual('Element updated', self.view_model.logger.get_last_message()) def test_logging_update_failed(self): self.view_model.set_input_size(5) self.view_model.set_input_array([1, 2, 3, 4, 5]) self.view_model.set_method('sum') self.view_model.calculate() self.view_model.set_update_index(10) self.view_model.set_update_value(100500) self.view_model.update() self.assertEqual('index is out of bounds', self.view_model.logger.get_last_message()) def test_logging_cut_array(self): self.view_model.set_input_size(5) self.view_model.set_input_array([1, 2, 3, 4, 5]) self.view_model.set_method('sum') self.view_model.calculate() self.view_model.set_left_border(0) self.view_model.set_right_border(2) self.view_model.cut_array_for_given_border() self.assertEqual('Cut array for given border, result: 6', self.view_model.logger.get_last_message()) def test_logging_cut_array_fails(self): self.view_model.set_input_size(5) self.view_model.set_input_array([1, 2, 3, 4, 5]) self.view_model.set_method('sum') self.view_model.calculate() self.view_model.set_left_border(-1) self.view_model.set_right_border(2) self.view_model.cut_array_for_given_border() self.assertEqual('Wrong indices: indices is out of bounds', self.view_model.logger.get_last_message()) def test_logging_build_tree_full(self): expected_messages = ['Welcome to segment tree application', 'Set tree size = 5', 'Set array for tree [1, 2, 3, 4, 5]', 'Set method sum', 'Build segment tree'] self.view_model.set_input_size(5) self.view_model.set_input_array([1, 2, 3, 4, 5]) self.view_model.set_method('sum') self.view_model.calculate() self.assertEqual(expected_messages, self.view_model.logger.get_log_messages())