def run_bfs(property_graph: PropertyGraph, input_args, source_node_file): property_name = "NewProp" start_node = input_args["source_node"] if not source_node_file == "": if not os.path.exists(source_node_file): print(f"Source node file doesn't exist: {source_node_file}") with open(source_node_file, "r") as fi: sources = [int(l) for l in fi.readlines()] for source in sources: with time_block(f"bfs on {source}"): analytics.bfs(property_graph, int(source), property_name) check_schema(property_graph, property_name) analytics.bfs_assert_valid(property_graph, property_name) stats = analytics.BfsStatistics(property_graph, property_name) print(f"STATS:\n{stats}") property_graph.remove_node_property(property_name) else: with time_block("bfs"): analytics.bfs(property_graph, start_node, property_name) check_schema(property_graph, property_name) analytics.bfs_assert_valid(property_graph, property_name) stats = analytics.BfsStatistics(property_graph, property_name) print(f"STATS:\n{stats}") property_graph.remove_node_property(property_name)
def test_assert_valid(property_graph: PropertyGraph): with raises(AssertionError): bfs_assert_valid(property_graph, "workFrom") property_name = "NewProp" start_node = 0 bfs(property_graph, start_node, property_name) v = property_graph.get_node_property(property_name).to_numpy().copy() v[0] = 100 property_graph.add_node_property(table({"Prop2": v})) with raises(AssertionError): bfs_assert_valid(property_graph, "Prop2")
def test_bfs(property_graph: PropertyGraph): start_node = 0 property_name = "NewProp" bfs_sync_pg(property_graph, start_node, property_name) num_node_properties = len(property_graph.node_schema()) new_property_id = num_node_properties - 1 verify_bfs(property_graph, start_node, new_property_id) stats = BfsStatistics(property_graph, property_name) assert stats.max_distance == 7 bfs_assert_valid(property_graph, property_name)
def test_bfs(property_graph: PropertyGraph): property_name = "NewProp" start_node = 0 bfs(property_graph, start_node, property_name) node_schema: Schema = property_graph.node_schema() num_node_properties = len(node_schema) new_property_id = num_node_properties - 1 assert node_schema.names[new_property_id] == property_name assert property_graph.get_node_property( property_name)[start_node].as_py() == 0 bfs_assert_valid(property_graph, property_name) stats = BfsStatistics(property_graph, property_name) assert stats.max_distance == 7 # Verify with numba implementation of verifier as well verify_bfs(property_graph, start_node, new_property_id)