Source code for bmtk.tests.builder.test_node_pool

import pytest

from bmtk.builder import NetworkBuilder


[docs] def test_single_node(): net = NetworkBuilder('NET1') net.add_nodes(prop1='prop1', prop2='prop2', param1=['param1']) nodes = list(net.nodes()) assert(len(nodes) == 1) assert(nodes[0]['param1'] == 'param1') assert(nodes[0]['prop1'] == 'prop1') assert(nodes[0]['prop2'] == 'prop2')
[docs] def test_node_set(): net = NetworkBuilder('NET1') net.add_nodes(N=100, prop1='prop1', param1=range(100)) node_pool = net.nodes() assert(node_pool.filter_str == '*') nodes = list(node_pool) assert(len(nodes) == 100) assert(nodes[0]['prop1'] == 'prop1') assert(nodes[0]['param1'] == 0) assert(nodes[99]['prop1'] == 'prop1') assert(nodes[99]['param1'] == 99) assert(nodes[0]['node_type_id'] == nodes[99]['node_type_id']) assert(nodes[0]['node_id'] != nodes[99]['node_id'])
[docs] def test_node_sets(): net = NetworkBuilder('NET1') net.add_nodes(N=100, prop_n='prop1', pool1='p1', sp='sp', param1=range(100)) net.add_nodes(N=100, prop_n='prop2', pool2='p2', sp='sp', param1=range(100)) net.add_nodes(N=100, prop_n='prop3', pool3='p3', sp='sp', param1=range(100)) node_pool_1 = net.nodes(prop_n='prop1') assert(len(node_pool_1) == 100) assert(node_pool_1.filter_str == "prop_n=='prop1'") for n in node_pool_1: assert('pool1' in n and n['prop_n'] == 'prop1') node_pool_2 = net.nodes(sp='sp') assert(node_pool_2.filter_str == "sp=='sp'") assert(len(node_pool_2) == 300) for n in node_pool_2: assert(n['sp'] == 'sp') node_pool_3 = net.nodes(param1=10) assert(len(node_pool_3) == 3) assert(node_pool_3.filter_str == "param1=='10'") nodes = list(node_pool_3) assert(nodes[0]['node_id'] == 10) assert(nodes[1]['node_id'] == 110) assert(nodes[2]['node_id'] == 210) assert(nodes[0]['node_type_id'] != nodes[1]['node_type_id'] != nodes[2]['node_type_id'])
if __name__ == '__main__': test_multi_search()