Example #1
0
    def test_matrix_structure_without_loops(self):
        b = Transition(D('0.4'), D('10'))
        a = Transition(D('0.6'), D('20'))

        f = Transition(D('0.5'), D('10'))
        d = Transition(D('0.5'), D('15'))

        e = Transition(D('0.8'), D('5'))
        z = Transition(D('0.2'), D('10'))

        trans_matrix = TransitionMatrix([
            [_, _, b, a],
            [_, _, _, _],
            [_, f, _, d],
            [_, e, z, _]
        ])

        cell_1_2 = transform_trans_while_excluding_vertex(
            column_trans=a, row_trans=e, host_cell=_)
        cell_1_3 = transform_trans_while_excluding_vertex(
            column_trans=a, row_trans=z, host_cell=b)
        cell_3_2 = transform_trans_while_excluding_vertex(
            column_trans=d, row_trans=e, host_cell=f)
        cell_3_3 = transform_trans_while_excluding_vertex(
            column_trans=d, row_trans=z, host_cell=_)
        trans_matrix_after_excluding = TransitionMatrix([
            [_, cell_1_2, cell_1_3],
            [_, _, _],
            [_, cell_3_2, cell_3_3],
        ])

        trans_matrix.exclude_last_vertex()
        self.assertEqual(repr(trans_matrix),
                         repr(trans_matrix_after_excluding))
Example #2
0
    def test_matrix_structure_without_loops(self):
        b = Transition(D('0.4'), D('10'))
        a = Transition(D('0.6'), D('20'))

        f = Transition(D('0.5'), D('10'))
        d = Transition(D('0.5'), D('15'))

        e = Transition(D('0.8'), D('5'))
        z = Transition(D('0.2'), D('10'))

        trans_matrix = TransitionMatrix([[_, _, b, a], [_, _, _, _],
                                         [_, f, _, d], [_, e, z, _]])

        cell_1_2 = transform_trans_while_excluding_vertex(column_trans=a,
                                                          row_trans=e,
                                                          host_cell=_)
        cell_1_3 = transform_trans_while_excluding_vertex(column_trans=a,
                                                          row_trans=z,
                                                          host_cell=b)
        cell_3_2 = transform_trans_while_excluding_vertex(column_trans=d,
                                                          row_trans=e,
                                                          host_cell=f)
        cell_3_3 = transform_trans_while_excluding_vertex(column_trans=d,
                                                          row_trans=z,
                                                          host_cell=_)
        trans_matrix_after_excluding = TransitionMatrix([
            [_, cell_1_2, cell_1_3],
            [_, _, _],
            [_, cell_3_2, cell_3_3],
        ])

        trans_matrix.exclude_last_vertex()
        self.assertEqual(repr(trans_matrix),
                         repr(trans_matrix_after_excluding))
Example #3
0
    def test_host_cell_is_empty(self):
        column_trans = Transition(D('0.6'), D('20'))
        row_trans = Transition(D('0.8'), D('5'))
        # Probability is c.P * r.P = 0.6 * 0.8 = 0.48
        # Resource is c.R + r.R = 25
        expected_intersection = Transition(D('0.48'), D('25'))

        intersection = transform_trans_while_excluding_vertex(
            column_trans, row_trans)
        self.assertEqual(intersection, expected_intersection)
Example #4
0
    def test_host_cell_is_empty(self):
        column_trans = Transition(D('0.6'), D('20'))
        row_trans = Transition(D('0.8'), D('5'))
        # Probability is c.P * r.P = 0.6 * 0.8 = 0.48
        # Resource is c.R + r.R = 25
        expected_intersection = Transition(D('0.48'), D('25'))

        intersection = transform_trans_while_excluding_vertex(
            column_trans, row_trans)
        self.assertEqual(intersection, expected_intersection)
Example #5
0
    def test_host_cell_has_value(self):
        column_trans = Transition(D('0.6'), D('8'))
        row_trans = Transition(D('0.2'), D('2'))
        host_cell = Transition(D('0.4'), D('10'))
        # Probability is h.P + (c.P * r.P) = 0.4 + (0.6 * 0.2) = 0.52
        # Resource is (h.P * h.R + c.P * r.P * (c.R + r.R))
        #                / (h.P + c.P * r.P)
        # (0.4 * 10 + 0.6 * 0.2 * (8 + 2)) / 0.52 = 10
        expected_intersection = Transition(D('0.52'), D('10'))

        intersection = transform_trans_while_excluding_vertex(
            column_trans, row_trans, host_cell)
        self.assertEqual(intersection, expected_intersection)
Example #6
0
    def test_host_cell_has_value(self):
        column_trans = Transition(D('0.6'), D('8'))
        row_trans = Transition(D('0.2'), D('2'))
        host_cell = Transition(D('0.4'), D('10'))
        # Probability is h.P + (c.P * r.P) = 0.4 + (0.6 * 0.2) = 0.52
        # Resource is (h.P * h.R + c.P * r.P * (c.R + r.R))
        #                / (h.P + c.P * r.P)
        # (0.4 * 10 + 0.6 * 0.2 * (8 + 2)) / 0.52 = 10
        expected_intersection = Transition(D('0.52'), D('10'))

        intersection = transform_trans_while_excluding_vertex(
            column_trans, row_trans, host_cell)
        self.assertEqual(intersection, expected_intersection)