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))
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))
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)
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)
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)
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)