def test_csv_serde(): """ Tests CSV serde. :return: None. """ try: lhs = BbnUtil.get_huang_graph() Bbn.to_csv(lhs, 'huang.csv') rhs = Bbn.from_csv('huang.csv') assert len(lhs.get_nodes()) == len(rhs.get_nodes()) assert len(lhs.get_edges()) == len(rhs.get_edges()) lhs_nodes = set([str(node) for node in lhs.get_nodes()]) rhs_nodes = set([str(node) for node in rhs.get_nodes()]) for n in lhs_nodes: assert n in rhs_nodes lhs_edges = set([str(edge) for edge in lhs.get_edges()]) rhs_edges = set([str(edge) for edge in rhs.get_edges()]) for e in lhs_edges: assert e in rhs_edges except: assert False finally: import os try: os.remove('huang.csv') except: pass
from pybbn.graph.dag import Bbn from pybbn.graph.edge import Edge, EdgeType from pybbn.graph.node import BbnNode from pybbn.graph.variable import Variable # create graph a = BbnNode(Variable(0, 'a', ['t', 'f']), [0.2, 0.8]) b = BbnNode(Variable(1, 'b', ['t', 'f']), [0.1, 0.9, 0.9, 0.1]) bbn = Bbn().add_node(a).add_node(b) \ .add_edge(Edge(a, b, EdgeType.DIRECTED)) # serialize Bbn.to_csv(bbn, 'simple-bbn.csv')
import numpy as np from pybbn.generator.bbngenerator import generate_bbn_to_file from pybbn.graph.dag import BbnUtil, Bbn np.random.seed(37) generate_bbn_to_file(900, 'singly-bbn.csv', 'singly', 10) generate_bbn_to_file(900, 'multi-bbn.csv', 'multi', 10) bbn = BbnUtil.get_huang_graph() Bbn.to_csv(bbn, 'huang.csv')