def test_given_incorrect_color_entry_returns_none(self): self.assertEqual(None, LGLReader.get_edge_color_entry("")) self.assertEqual(None, LGLReader.get_edge_color_entry(" ")) self.assertEqual(None, LGLReader.get_edge_color_entry("# sdf")) self.assertEqual(None, LGLReader.get_edge_color_entry("v1 v2")) self.assertEqual(None, LGLReader.get_edge_color_entry("v1 v2 d")) self.assertEqual(None, LGLReader.get_edge_color_entry("v1 v2 1.0")) self.assertEqual(None, LGLReader.get_edge_color_entry("v1 v2 1.0 d")) self.assertEqual(None, LGLReader.get_edge_color_entry("v1 v2 1.0 0.4")) self.assertEqual(None, LGLReader.get_edge_color_entry("v1 v2 1.0 0.4 d"))
def read_edge_colors(self): with open(self.edge_color_filename, 'rb') as edge_colors: color_entries = edge_colors.read() for i, entry in enumerate(color_entries.split(os.linesep)): if not entry: continue t = LGLReader.get_edge_color_entry(entry) if not t: print('Bad color entry at' + str(i) + ': ' + str(t)) else: self.edge_color_tuples[t[0]] = t[1]
def get_secondary_vertex_label(self, entry): label_weight = LGLReader.get_vertex_label_and_weight(entry) if not label_weight: raise ValueError if isinstance(label_weight, list): secondary_label = label_weight[0] self.edge_weights.InsertNextValue(label_weight[1]) else: secondary_label = label_weight self.edge_weights.InsertNextValue(0.5) return secondary_label
def insert_graph(self): with open(self.filename, 'rb') as lgl_file: lgl = lgl_file.read() for i, entry in enumerate(lgl.split(os.linesep)): if not entry: continue if self.max_num_of_vertices != -1 and i > self.max_num_of_vertices: break if LGLReader.is_starting_vertex(entry): self._process_primary_vertex(entry, i) else: self._process_secondary_vertex(entry, i)
def test_given_starting_vertex_wit_hash_and_long_label_returns_label(self): p_v = LGLReader.get_primary_vertex("# the vertex") self.assertEqual("the", p_v)
def test_given_starting_vertex_wit_hash_without_label_returns_none(self): p_v = LGLReader.get_primary_vertex("#") self.assertEqual(None, p_v)
def test_given_incorrect_starting_vertex_returns_none(self): p_v = LGLReader.get_primary_vertex("") self.assertEqual(None, p_v)
def test_given_start_vertex_returns_true(self): self.assertTrue(LGLReader.is_starting_vertex('# the_vertex'))
def test_given_non_start_vertex_returns_false(self): self.assertFalse(LGLReader.is_starting_vertex('')) self.assertFalse(LGLReader.is_starting_vertex(' ')) self.assertFalse(LGLReader.is_starting_vertex('one one'))
def test_given_entry_with_weigth_returns_label_weight_list(self): self.assertEqual(['vertex', 42.1], LGLReader.get_vertex_label_and_weight('vertex 42.1'))
def test_given_entry_with_incorrect_etry_exception_raises(self): try: LGLReader.get_vertex_label_and_weight('vertex d') self.assertTrue(False) except ValueError: self.assertTrue(True)
def test_given_entry_returns_label(self): self.assertEqual('vertex', LGLReader.get_vertex_label_and_weight('vertex'))
def test_given_incorrect_entry_returns_none(self): self.assertEqual(None, LGLReader.get_vertex_label_and_weight('')) self.assertEqual(None, LGLReader.get_vertex_label_and_weight(' '))
def test_given_correct_color_returns_v1_v2_r_g_b_tuple(self): self.assertEqual((('v1', 'v2'), (1.0, 0.4, 0.3)), LGLReader.get_edge_color_entry("v1 v2 1.0 0.4 0.3"))
def _get_primary_label(entry): primary_label = LGLReader.get_primary_vertex(entry) if not primary_label: raise ValueError return primary_label