def test_extract_nodes(self): """Test for extracting nodes.""" expected_nodes = [ (5, QgsPoint(110.23989972376222113, -7.43262727664988976), QgsPoint(110.25117617289369321, -7.77253167189859795)), (4, QgsPoint(110.24634340898020923, -7.77092075059410181), QgsPoint(110.47509423421867325, -7.97067499235163623)), (3, QgsPoint(110.47670515552316317, -7.96745314974264396), QgsPoint(110.52181095204906569, -8.14626541454172681)), (2, QgsPoint(110.46865054900068515, -7.96745314974264396), QgsPoint(110.69579045293465924, -7.75964430146262796)), (0, QgsPoint(110.73123072163357961, -7.47773307317578428), QgsPoint(110.69417953163015511, -7.75803338015813182)), (1, QgsPoint(110.69256861032566519, -7.75964430146262796), QgsPoint(110.97286891730800562, -7.7483678523311541)), ] layer = self.sungai_layer nodes = extract_nodes(layer=layer) for node in expected_nodes: assert node in nodes, 'Node %s not found,' % str(node) assert len(nodes) == len(expected_nodes), ( 'Number of nodes should be %d' % len(expected_nodes))
def test_create_nodes_layer(self): """Test for creating nodes layer.""" layer = self.sungai_layer nodes = extract_nodes(layer=layer) point_layer = create_nodes_layer(nodes=nodes, name='Node layer') message = 'Layer names should be Node layer' self.assertEqual(point_layer.name(), 'Node layer', message) self.assertTrue(point_layer.isValid(), 'Layer is not valid.') message = 'Feature count is not equal to 12' self.assertEqual(point_layer.featureCount(), 12, message) assert point_layer.geometryType() == QGis.Point, ( 'Geometry type should be %s' % QGis.Point) expected_nodes = [ [0, 0, 'upstream'], [1, 0, 'downstream'], [2, 1, 'upstream'], [3, 1, 'downstream'], [4, 2, 'upstream'], [5, 2, 'downstream'], [6, 3, 'upstream'], [7, 3, 'downstream'], [8, 4, 'upstream'], [9, 4, 'downstream'], [10, 5, 'upstream'], [11, 5, 'downstream'] ] real_nodes = point_layer.getFeatures() for node in real_nodes: node_attributes = node.attributes() message = 'Node %s should not be found.' % node_attributes self.assertIn(node_attributes, expected_nodes, message)
def test_extract_nodes_dgn(self): """Test for extracting nodes using dgn dataset.""" layer = self.dgn_layer nodes = extract_nodes(layer=layer) self.assertEqual(len(nodes), 4115)