Exemplo n.º 1
0
 def setUp(self):
     self.obj = TimeStepLogLinesBlock()
Exemplo n.º 2
0
class TimeStepLogLinesBlockTest(unittest.TestCase):
    def setUp(self):
        self.obj = TimeStepLogLinesBlock()

    def test_is_log_lines_block(self):
        self.assertTrue(issubclass(TimeStepLogLinesBlock, LogLineBlock))

    def test_accepts_start_of_time_step_only_if_empty(self):
        self.assertEqual(len(self.obj.lines), 0)

        with self.assertRaises(ValueError):
            self.obj.append_line(ITERMEDIATE_LINE)

        self.obj.append_line(TIME_STEP_START_LINE)
        self.assertEqual(len(self.obj.lines), 1)

        with self.assertRaises(ValueError):
            self.obj.append_line(TIME_STEP_START_LINE)

    def test_start_of_time_step_must_match_certain_criteria(self):
        with self.assertRaises(ValueError):
            self.obj.append_line(DEBUG_LINE)

    def test_accepts_other_lines_only_if_non_empty(self):
        with self.assertRaises(ValueError):
            self.obj.append_line(ITERMEDIATE_LINE)

        self.obj.append_line(TIME_STEP_START_LINE)
        self.obj.append_line(ITERMEDIATE_LINE)
        self.assertEqual(len(self.obj.lines), 2)

    def test_has_prop_time_step(self):
        self.assertIsNone(self.obj.time_step)
        self.obj.append_line(TIME_STEP_START_LINE)
        self.assertEqual(self.obj.time_step, 1)

    def test_has_prop_total_steps(self):
        self.assertIsNone(self.obj.total_steps)
        self.obj.append_line(TIME_STEP_START_LINE)
        self.assertEqual(self.obj.total_steps, 2)

    def test_to_model(self):
        self.obj.append_line(TIME_STEP_START_LINE)
        self.obj.iterations.append(IterationLogLinesBlock([ITER_START_LINE, ITER_CONTENT_LINE]))

        self.assertEqual(self.obj.time_step, 1)
        self.assertEqual(self.obj.total_steps, 2)
        self.assertEqual(len(self.obj.iterations), 1)
        model = self.obj.to_model()
        self.assertEqual(model.index, 1)
        self.assertEqual(model.total_steps, 2)