Skip to content

Commit caba29d

Browse files
authored
test: Add dataframe-from-existing test (#61)
1 parent 213daa9 commit caba29d

File tree

2 files changed

+39
-3
lines changed

2 files changed

+39
-3
lines changed

grand/backends/_dataframe.py

+5-3
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,12 @@ def __init__(
3333
use as the node ID
3434
"""
3535
self._directed = directed
36-
self._edge_df = edge_df or pd.DataFrame(
37-
columns=[edge_df_source_column, edge_df_target_column]
36+
self._edge_df = (
37+
edge_df
38+
if edge_df is not None
39+
else pd.DataFrame(columns=[edge_df_source_column, edge_df_target_column])
3840
)
39-
self._node_df = node_df or None
41+
self._node_df = node_df if node_df is not None else None
4042
self._edge_df_source_column = edge_df_source_column
4143
self._edge_df_target_column = edge_df_target_column
4244
self._node_df_id_column = node_df_id_column

grand/backends/test_backends.py

+34
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import pytest
22
import os
3+
import pandas as pd
34

45
import networkx as nx
56

@@ -448,3 +449,36 @@ def test_get_density_performance(backend):
448449
for i in range(1000 - 1):
449450
G.nx.add_edge(i, i + 1)
450451
assert nx.density(G.nx) <= 0.005
452+
453+
454+
class TestDataFrameBackend:
455+
456+
def test_can_create_empty(self):
457+
b = DataFrameBackend()
458+
assert b.get_edge_count() == 0
459+
assert b.get_node_count() == 0
460+
461+
b.add_edge("A", "B", {})
462+
assert b.get_edge_count() == 1
463+
assert b.get_node_count() == 2
464+
465+
def test_can_create_from_int_dataframes(self):
466+
# Create an edges DataFrame
467+
edges = pd.DataFrame(
468+
{
469+
"source": [0, 1, 2, 3, 4],
470+
"target": [1, 2, 3, 4, 0],
471+
"weight": [1, 2, 3, 4, 5],
472+
}
473+
)
474+
475+
nodes = pd.DataFrame(
476+
{
477+
"name": [0, 1, 2, 3, 4],
478+
"value": [1, 2, 3, 4, 5],
479+
}
480+
)
481+
482+
b = DataFrameBackend(edge_df=edges, node_df=nodes)
483+
assert b.get_edge_count() == 5
484+
assert b.get_node_count() == 5

0 commit comments

Comments
 (0)