def square():
    net = Network()
    net.add_node(pos=(111, 111), commRange=151)
    net.add_node(pos=(111, 251), commRange=151)
    net.add_node(pos=(251, 111), commRange=151)
    net.add_node(pos=(251, 251), commRange=151)
    return net
Esempio n. 2
0
class TestNetworkCreation(unittest.TestCase):

    def setUp(self):
        self.net = Network()
        self.net.environment.im[22, 22] = 0
        self.node1 = self.net.add_node(pos=[22.8, 21.8])
        self.node2 = self.net.add_node(pos=[21.9, 22.9])
        self.node3 = self.net.add_node(pos=[21.7, 21.7])

    def test_nodes(self):
        """Make sure the nodes are added."""
        self.assertTrue(isinstance(self.node1, Node))
        self.assertEqual(len(self.net.node), 3)
        if (isinstance(self.net.environment, Environment2D)):
            self.assertEqual(self.net.environment.im.shape,
                             settings.ENVIRONMENT2D_SHAPE,
                             'incorrect default size')
        self.assertTrue(isinstance(self.net.channelType, ChannelType))

    def test_visibility(self):
        """
        Pixel 22,22 is not space so node1 and node2 should not be visible
        but node3 is visible.
        """
        self.assertFalse(self.net.environment\
                             .are_visible(self.net.pos[self.node1],
                                          self.net.pos[self.node2]))
        self.assertTrue(self.net.environment\
                            .are_visible(self.net.pos[self.node2],
                                         self.net.pos[self.node3]))
Esempio n. 3
0
class TestNetworkCreation(unittest.TestCase):
    def setUp(self):
        self.net = Network()
        self.net.environment.im[22, 22] = 0
        self.node1 = self.net.add_node(pos=[22.8, 21.8])
        self.node2 = self.net.add_node(pos=[21.9, 22.9])
        self.node3 = self.net.add_node(pos=[21.7, 21.7])

    def test_nodes(self):
        """Make sure the nodes are added."""
        self.assertTrue(isinstance(self.node1, Node))
        self.assertEqual(len(self.net.node), 3)
        if (isinstance(self.net.environment, Environment2D)):
            self.assertEqual(self.net.environment.im.shape,
                             settings.ENVIRONMENT2D_SHAPE,
                             'incorrect default size')
        self.assertTrue(isinstance(self.net.channelType, ChannelType))

    def test_visibility(self):
        """
        Pixel 22,22 is not space so node1 and node2 should not be visible
        but node3 is visible.
        """
        self.assertFalse(self.net.environment\
                             .are_visible(self.net.pos[self.node1],
                                          self.net.pos[self.node2]))
        self.assertTrue(self.net.environment\
                            .are_visible(self.net.pos[self.node2],
                                         self.net.pos[self.node3]))
Esempio n. 4
0
 def test_set_compositeSensor(self):
     """Test setting compositeSensors on a node"""
     net = Network()
     node = net.add_node()
     dist_sensor = DistSensor({'pf': scipy.stats.norm, 'scale': 10})
     node.compositeSensor = (NeighborsSensor, 'AoASensor', dist_sensor)
     self.assertTrue(len(node.compositeSensor.sensors) == 3)
     readings = node.compositeSensor.read()
     self.assertTrue('Neighbors' in readings.keys() and
                     'AoA' in readings.keys() and
                     'Dist' in readings.keys())
 def get_line():
     net1 = Network()
     net1.add_node(pos=(50, 100), commRange=101)
     net1.add_node(pos=(150, 100), commRange=101)
     net1.add_node(pos=(250, 100), commRange=101)
     net1.add_node(pos=(350, 100), commRange=101)
     net1.add_node(pos=(450, 100), commRange=101)
     net1.add_node(pos=(550, 100), commRange=101)
     return net1
def network5():
    net = Network()
    net.add_node(pos=(100,100), commRange=401)
    net.add_node(pos=(100, 500), commRange=501)
    net.add_node(pos=(400, 200), commRange=501)
    net.add_node(pos=(599, 200), commRange=401)
    net.add_node(pos=(500, 50), commRange=401)
    net.add_node(pos=(500,400), commRange=401)
    return net
def line_network():
	net = Network()
	net.add_node(pos=(100, 100), commRange=150)
	net.add_node(pos=(200, 200), commRange=150)	
	net.add_node(pos=(300, 300), commRange=150)	
	net.add_node(pos=(400, 400), commRange=150)	
	net.add_node(pos=(500, 500), commRange=150)
	return net
Esempio n. 8
0
    def _create_modify_network(self, net=None, step=1):
        """Helper method for creating new or modifying given network.

        Arguments:
            net (int):
                network to modify, if None create from scratch
            step:
                if >0 new network should be more dense for <0 less dense

        """
        if net is None:
            net = Network(**self.kwargs)
            for _n in range(self.n_count):
                node = Node(commRange=self.comm_range, **self.kwargs)
                net.add_node(node)
        else:
            if step>0:
                if len(net)<self.n_max:
                    node = Node(**self.kwargs)
                    net.add_node(node)
                    logger.debug("Added node, number of nodes: %d"
                                 % len(net))
                elif not self.comm_range:
                    for node in net.nodes():
                        node.commRange += step
                    logger.debug("Increased commRange to %d"
                                 % node.commRange)
                else:
                    return None
            else:
                if len(net)>self.n_min and len(net)>1:
                    net.remove_node(net.nodes()[0])
                    logger.debug("Removed node, nodes left: %d"
                                 % len(net))
                elif not self.comm_range:
                    for node in net:
                        node.commRange += step
                    logger.debug("Decreased commRange to %d"
                                 % net.nodes()[0].commRange)
                else:
                    return None
        return net
Esempio n. 9
0
 def test_read(self):
     """Test read compositeSensor"""
     net = Network()
     node = net.add_node()
     node.compositeSensor.read()
def network1():
    net = Network()
    net.add_node(pos=(100, 100), commRange=51)
    net.add_node(pos=(100, 150), commRange=51)
    net.add_node(pos=(100, 200), commRange=51)
    net.add_node(pos=(100, 250), commRange=51)
    net.add_node(pos=(100, 300), commRange=51)
    net.add_node(pos=(100, 350), commRange=51)
    net.add_node(pos=(100, 400), commRange=51)
    net.add_node(pos=(100, 450), commRange=51)
    net.add_node(pos=(100, 500), commRange=51)
    net.add_node(pos=(100, 550), commRange=51)
    return net
#show()

net.adj = g.adj
net.show()

#Uses Kruskal’s algorithm.
#If the graph edges do not have a weight attribute
#a default weight of 1 will be used.

mst = minimum_spanning_tree(net)

net.adj = mst.adj
net.show()

from pymote.network import Network
net = Network()

node = net.add_node(pos=[200, 300])
node = net.add_node(pos=[300, 300])
node = net.add_node(pos=[100, 200])
node = net.add_node(pos=[400, 200])
node = net.add_node(pos=[200, 100])
node = net.add_node(pos=[300, 100])

a = Graph()
a.add_edge(net.nodes()[0], net.nodes()[1], weight=1.1)
a.add_edge(net.nodes()[0], net.nodes()[2], weight=1.7)
a.add_edge(net.nodes()[0], net.nodes()[4], weight=2.6)
a.add_edge(net.nodes()[1], net.nodes()[3], weight=3.1)
a.add_edge(net.nodes()[2], net.nodes()[4], weight=3.8)
a.add_edge(net.nodes()[3], net.nodes()[5], weight=3.7)
def network3():
    net = Network()
    net.add_node(pos=(0,0), commRange=201)
    net.add_node(pos=(200, 0), commRange=201)
    net.add_node(pos=(0, 200), commRange=201)
    net.add_node(pos=(200, 100), commRange=201)
    net.add_node(pos=(400, 100), commRange=201)
    net.add_node(pos=(400, 200), commRange=201)
    net.add_node(pos=(500, 300), commRange=201)
    net.add_node(pos=(200, 300), commRange=201)
    return net
def network2():
    net = Network()
    net.add_node(pos=(100, 100), commRange=51)
    net.add_node(pos=(100, 150), commRange=51)
    net.add_node(pos=(100, 200), commRange=51)
    net.add_node(pos=(100, 250), commRange=51)
    net.add_node(pos=(150, 100), commRange=51)
    net.add_node(pos=(200, 100), commRange=51)
    net.add_node(pos=(250, 100), commRange=51)
    net.add_node(pos=(150, 250), commRange=51)
    net.add_node(pos=(200, 250), commRange=51)
    net.add_node(pos=(250, 250), commRange=51)
    net.add_node(pos=(250, 200), commRange=51)
    net.add_node(pos=(250, 150), commRange=51)
    return net
def tree():
    net = Network()
    net.add_node(pos=(300, 559), commRange=370)
    net.add_node(pos=(410, 520), commRange=370)
    net.add_node(pos=(150, 500), commRange=200)
    net.add_node(pos=(490, 480), commRange=100)
    net.add_node(pos=(50, 400), commRange=170)
    net.add_node(pos=(200, 430), commRange=130)
    net.add_node(pos=(400, 400), commRange=150)
    net.add_node(pos=(480, 380), commRange=130)
    net.add_node(pos=(320, 300), commRange=140)
    net.add_node(pos=(15, 330), commRange=100)
    net.add_node(pos=(140, 350), commRange=150)
    net.add_node(pos=(370, 215), commRange=140)
    net.add_node(pos=(511, 405), commRange=50)
    net.add_node(pos=(490, 354), commRange=50)
    net.add_node(pos=(200, 300), commRange=105)
    net.add_node(pos=(490, 314), commRange=66)
    net.add_node(pos=(530, 274), commRange=66)
    net.add_node(pos=(450, 274), commRange=66)
    return net
 def get_arch_unique3():
     net4 = Network()
     net4.add_node(pos=(300, 0), commRange=599)
     net4.add_node(pos=(400, 100), commRange=599)
     net4.add_node(pos=(500, 200), commRange=599)
     net4.add_node(pos=(599, 300), commRange=599)
     net4.add_node(pos=(500, 400), commRange=599)
     net4.add_node(pos=(400, 500), commRange=599)
     net4.add_node(pos=(300, 599), commRange=599)
     net4.add_node(pos=(200, 500), commRange=599)
     net4.add_node(pos=(100, 400), commRange=599)
     net4.add_node(pos=(0, 300), commRange=599)
     net4.add_node(pos=(100, 200), commRange=599)
     net4.add_node(pos=(200, 100), commRange=599)
     return net4
def triangle_network():
	net = Network()
	net.add_node(pos=(200, 200), commRange=120)
	net.add_node(pos=(200, 300), commRange=120)
	net.add_node(pos=(250, 250), commRange=120)
	return net
Esempio n. 17
0
 def setUp(self):
     self.net = Network()
     self.net.environment.im[22, 22] = 0
     self.node1 = self.net.add_node(pos=[22.8, 21.8])
     self.node2 = self.net.add_node(pos=[21.9, 22.9])
     self.node3 = self.net.add_node(pos=[21.7, 21.7])
 def get_arch_unique2():
     net3 = Network()
     net3.add_node(pos=(300, 0), commRange=101)
     net3.add_node(pos=(300, 100), commRange=101)
     net3.add_node(pos=(300, 200), commRange=150)
     net3.add_node(pos=(200, 300), commRange=150)
     net3.add_node(pos=(400, 300), commRange=150)
     net3.add_node(pos=(300, 300), commRange=101)
     net3.add_node(pos=(300, 0), commRange=101)
     net3.add_node(pos=(300, 400), commRange=150)
     net3.add_node(pos=(300, 500), commRange=101)
     net3.add_node(pos=(300, 599), commRange=101)
     net3.add_node(pos=(100, 300), commRange=101)
     net3.add_node(pos=(0, 300), commRange=101)
     net3.add_node(pos=(500, 300), commRange=101)
     net3.add_node(pos=(599, 300), commRange=101)
     return net3
def triangle():
    net = Network()
    net.add_node(pos=(111, 111), commRange=200)
    net.add_node(pos=(111, 251), commRange=200)
    net.add_node(pos=(251, 111), commRange=200)
    return net
def line():
    net = Network()
    net.add_node(pos=(111, 111), commRange=80)
    net.add_node(pos=(151, 151), commRange=80)
    net.add_node(pos=(201, 201), commRange=80)
    net.add_node(pos=(251, 251), commRange=80)
    net.add_node(pos=(301, 301), commRange=80)
    net.add_node(pos=(351, 351), commRange=80)
    net.add_node(pos=(401, 401), commRange=80)
    net.add_node(pos=(451, 451), commRange=80)
    net.add_node(pos=(501, 501), commRange=80)
    net.add_node(pos=(551, 551), commRange=80)
    return net
g.add_edge(net.nodes()[0],net.nodes()[1],weight=1.1)
g.add_edge(net.nodes()[0],net.nodes()[2],weight=1.7)
g.add_edge(net.nodes()[0],net.nodes()[4],weight=2.6)
g.add_edge(net.nodes()[1],net.nodes()[3],weight=3.1)
g.add_edge(net.nodes()[2],net.nodes()[4],weight=3.8)
g.add_edge(net.nodes()[3],net.nodes()[5],weight=3.7)
g.add_edge(net.nodes()[4],net.nodes()[5],weight=2.1)
net.adj=g.adj
net.show()

write_pickle(net, 'allCasesBezAlg.tar.gz')
"""

### Primjer mreze sa worst-case slučajem

net = Network()
node = net.add_node(pos=[100, 50])
node = net.add_node(pos=[150, 50])
node = net.add_node(pos=[100, 200])
node = net.add_node(pos=[400, 200])
node = net.add_node(pos=[250, 300])
node = net.add_node(pos=[350, 50])

g = Graph()
g.add_edge(net.nodes()[0], net.nodes()[1], weight=0.5)

g.add_edge(net.nodes()[1], net.nodes()[2], weight=1.414)
g.add_edge(net.nodes()[1], net.nodes()[3], weight=2.414)
g.add_edge(net.nodes()[1], net.nodes()[4], weight=3.414)
g.add_edge(net.nodes()[1], net.nodes()[5], weight=4.414)
Esempio n. 22
0
    def _create_modify_network(self, net=None, step=1):
        """Helper method for creating new or modifying given network.

        Arguments:
            net (int):
                network to modify, if None create from scratch
            step:
                if >0 new network should be more dense for <0 less dense

        """
        if net is None:
            net = Network(**self.kwargs)
            for _n in range(self.n_count):
                node = Node(commRange=self.comm_range, **self.kwargs)
                net.add_node(node)
        else:
            if step>0:
                if len(net)<self.n_max:
                    node = Node(**self.kwargs)
                    net.add_node(node)
                    logger.debug("Added node, number of nodes: %d (%d)"
                                 % (len(net), int(self.n_max)))
                elif not self.comm_range:
                    for node in net.nodes():
                        node.commRange += step
                    logger.debug("Increased commRange to %d"
                                 % node.commRange)
                else:
                    return None
            else:
                if len(net) > self.n_min and len(net) > 1:
                    net.remove_node(net.nodes()[0])
                    logger.debug("Removed node, nodes left: %d"
                                 % len(net))
                elif not self.comm_range:
                    if abs(step) >= net.nodes()[0].commRange:
                        step /= 4
                    for node in net:
                        node.commRange += step
                    logger.debug("Decreased commRange to %d"
                                 % net.nodes()[0].commRange)
                else:
                    return None
        return net
def one_node():
    net = Network()
    net.add_node(pos=(351, 351), commRange=80)
    return net
Esempio n. 24
0
 def setUp(self):
     self.net = Network()
     self.net.environment.im[22, 22] = 0
     self.node1 = self.net.add_node(pos=[22.8, 21.8])
     self.node2 = self.net.add_node(pos=[21.9, 22.9])
     self.node3 = self.net.add_node(pos=[21.7, 21.7])
def node_network():
	net = Network()
	net.add_node(pos=(300, 300), commRange=80)
	return net
def my_random():
    net = Network()
    net.add_node(pos=(100, 100), commRange=300)
    net.add_node(pos=(123, 302), commRange=300)
    net.add_node(pos=(204, 250), commRange=250)
    net.add_node(pos=(100, 574), commRange=300)
    net.add_node(pos=(395, 350), commRange=300)
    net.add_node(pos=(250, 500), commRange=300)
    net.add_node(pos=(404, 145), commRange=450)
    net.add_node(pos=(374, 195), commRange=300)
    net.add_node(pos=(147, 220), commRange=250)
    net.add_node(pos=(298, 402), commRange=300)
    return net