def test_subnet_mplex_to_mlayer(self):
        mplex = net.MultiplexNetwork([('categorical', 1.0)],
                                     fullyInterconnected=False)

        mplex[0, 1, 0] = 1
        mplex[0, 2, 1] = 1

        mlayer = transforms.subnet(mplex, [0, 1, 2], [0, 1],
                                   newNet=net.MultilayerNetwork(
                                       aspects=1, fullyInterconnected=False))

        self.assertEqual(
            set(mlayer.edges),
            set([(0, 0, 0, 1, 1.0), (0, 1, 0, 0, 1), (0, 2, 1, 1, 1)]))
        self.assertTrue(isinstance(mlayer, net.MultilayerNetwork))

        self.assertRaises(
            TypeError, lambda: transforms.subnet(mlayer, [0, 1, 2], [0, 1],
                                                 newNet=net.MultiplexNetwork([(
                                                     'categorical', 1.0)])))

        mplex = net.MultiplexNetwork([('categorical', 1.0)],
                                     fullyInterconnected=True)

        mplex[0, 1, 0] = 1
        mplex[0, 2, 1] = 1

        mlayer = transforms.subnet(mplex, [0, 1, 2], [0, 1],
                                   newNet=net.MultilayerNetwork(aspects=1))

        self.assertEqual(
            set(mlayer.edges),
            set([(0, 0, 0, 1, 1.0), (0, 1, 0, 0, 1), (0, 2, 1, 1, 1),
                 (1, 1, 0, 1, 1.0), (2, 2, 0, 1, 1.0)]))
        self.assertTrue(isinstance(mlayer, net.MultilayerNetwork))
Example #2
0
 def test_multiplex_density_degs_mnet(self):
     n=net.MultiplexNetwork(couplings='none',directed=False)        
     self.test_multiplex_density_degs(n)
     n=net.MultiplexNetwork(couplings='categorical',directed=False)        
     self.test_multiplex_density_degs(n)
     n=net.MultiplexNetwork(couplings='none',directed=False,fullyInterconnected=False)        
     self.test_multiplex_density_degs(n)
Example #3
0
    def test_pickle(self):
        import pickle
        n=net.MultilayerNetwork(aspects=1)
        n[1,2,3,4]=1
        self.assertEqual(pickle.loads(pickle.dumps(n)),n)
        n=net.MultilayerNetwork(aspects=1,directed=True)
        n[1,2,3,4]=1
        self.assertEqual(pickle.loads(pickle.dumps(n)),n)

        n=net.MultiplexNetwork(couplings=[('categorical',1)])
        n[1,2,3,3]=1
        self.assertEqual(pickle.loads(pickle.dumps(n)),n)
        n=net.MultiplexNetwork(couplings=[('categorical',1)],directed=True)
        n[1,2,3,3]=1
        self.assertEqual(pickle.loads(pickle.dumps(n)),n)
Example #4
0
 def test_mplex_networkx_layouts(self):
     from pymnet import nx
     g=nx.karate_club_graph()
     mplex=net.MultiplexNetwork()
     mplex.add_layer("karate-1")
     mplex.add_layer("karate-2")
     mplex.A['karate-1']=g
     mplex.A['karate-2']=g
     fig=visuals.draw(mplex,layout="spring")
     fig.savefig(os.path.join(self.figdirpath,"mplex_networkx_spring.png"))
Example #5
0
    def test_unweighted_mplex_simple(self):
        n = net.MultiplexNetwork([('categorical', 1.0)])

        n[1, 2, 1] = 1
        n[1, 3, 1] = 1
        n[2, 3, 1] = 1

        n[1, 2, 2] = 1
        n[1, 3, 2] = 1
        n[1, 4, 2] = 1
        n[3, 4, 2] = 1

        n[1, 2, 3] = 1
        n[1, 3, 3] = 1
        n[1, 4, 3] = 1
        n[2, 4, 3] = 1

        an = net.MultilayerNetwork(aspects=0)
        an[1, 2] = 3
        an[1, 3] = 3
        an[1, 4] = 2
        an[2, 3] = 1
        an[3, 4] = 1
        an[2, 4] = 1

        for i in range(4):
            self.assertEqual(cc.cc_barrett(n, i, an),
                             cc.cc_barrett_explicit(n, i))

        self.assertEqual(cc.lcc_brodka(n, 1, anet=None, threshold=1), 2. / 3.)
        self.assertEqual(cc.lcc_brodka(n, 2, anet=None, threshold=1), 4. / 3.)
        self.assertEqual(cc.lcc_brodka(n, 3, anet=None, threshold=1), 4. / 3.)
        self.assertEqual(cc.lcc_brodka(n, 4, anet=None, threshold=1), 14. / 9.)
        self.assertEqual(cc.lcc_brodka(n, 1, anet=an, threshold=1), 2. / 3.)
        self.assertEqual(cc.lcc_brodka(n, 2, anet=an, threshold=1), 4. / 3.)
        self.assertEqual(cc.lcc_brodka(n, 3, anet=an, threshold=1), 4. / 3.)
        self.assertEqual(cc.lcc_brodka(n, 4, anet=an, threshold=1), 14. / 9.)

        self.assertEqual(cc.lcc_brodka(n, 1, anet=None, threshold=2), 2. / 3.)
        self.assertEqual(cc.lcc_brodka(n, 2, anet=None, threshold=2), 0.)
        self.assertEqual(cc.lcc_brodka(n, 3, anet=None, threshold=2), 0.)
        self.assertEqual(cc.lcc_brodka(n, 4, anet=None, threshold=2), 0.)
        self.assertEqual(cc.lcc_brodka(n, 1, anet=an, threshold=2), 2. / 3.)
        self.assertEqual(cc.lcc_brodka(n, 2, anet=an, threshold=2), 0.)
        self.assertEqual(cc.lcc_brodka(n, 3, anet=an, threshold=2), 0.)
        self.assertEqual(cc.lcc_brodka(n, 4, anet=an, threshold=2), 0.)

        self.assertEqual(cc.lcc_brodka(n, 1, anet=None, threshold=3), 1. / 3.)
        self.assertEqual(cc.lcc_brodka(n, 2, anet=None, threshold=3), 0.)
        self.assertEqual(cc.lcc_brodka(n, 3, anet=None, threshold=3), 0.)
        self.assertEqual(cc.lcc_brodka(n, 4, anet=None, threshold=3), 0.)
        self.assertEqual(cc.lcc_brodka(n, 1, anet=an, threshold=3), 1. / 3.)
        self.assertEqual(cc.lcc_brodka(n, 2, anet=an, threshold=3), 0.)
        self.assertEqual(cc.lcc_brodka(n, 3, anet=an, threshold=3), 0.)
        self.assertEqual(cc.lcc_brodka(n, 4, anet=an, threshold=3), 0.)
Example #6
0
        def clique_net(nodes, levels):
            n = net.MultiplexNetwork([('categorical', 1.0)], directed=False)
            for level in range(levels):
                for i, j in itertools.combinations(range(nodes), 2):
                    n[i, j, level] = 1

            an = net.MultilayerNetwork(aspects=0, directed=False)
            for i, j in itertools.combinations(range(nodes), 2):
                an[i, j] = levels

            return n, an
    def test_aggregate_1dim_mlayer_nonglobal_nodes(self):
        def test_net(n):
            n[1, 2, 'a'] = 1
            n.add_layer('b')
            n.add_node(3, layer=('a'))
            n.add_node(4, layer=('c'))
            an = transforms.aggregate(n, 1)
            self.assertEqual(set(an), set([1, 2, 3, 4]))
            self.assertEqual(an[1, 2], 1)
            self.assertEqual(an.aspects, 0)

        mln = net.MultilayerNetwork(aspects=1, fullyInterconnected=False)
        test_net(mln)
        mpn = net.MultiplexNetwork([('categorical', 1.0)],
                                   fullyInterconnected=False)
        test_net(mpn)
    def test_aggregate_2dim_mplex(self):
        n = net.MultiplexNetwork([('categorical', 1.0), ('categorical', 1.0)])
        n[1, 2, 'a', 'x'] = 3
        n[2, 3, 'a', 'x'] = 1
        n[1, 2, 'b', 'x'] = 1
        n[1, 3, 'b', 'x'] = 1
        n[1, 2, 'c', 'x'] = 1
        n[1, 3, 'c', 'x'] = 1
        n[2, 3, 'c', 'x'] = 1

        n[1, 2, 'b', 'y'] = 1
        n[2, 3, 'b', 'y'] = 1
        n[1, 2, 'c', 'y'] = 1
        n[1, 3, 'c', 'y'] = 1
        n[1, 2, 'a', 'y'] = 1
        n[1, 3, 'a', 'y'] = 1
        n[2, 3, 'a', 'y'] = 1

        an1 = transforms.aggregate(n, 1)
        self.assertEqual(an1[1, 2, 'x'], 5)
        self.assertEqual(an1[1, 3, 'x'], 2)
        self.assertEqual(an1[2, 3, 'x'], 2)
        self.assertEqual(an1[1, 2, 'y'], 3)
        self.assertEqual(an1[1, 3, 'y'], 2)
        self.assertEqual(an1[2, 3, 'y'], 2)

        an2 = transforms.aggregate(n, 2)
        self.assertEqual(an2[1, 2, 'a'], 4)
        self.assertEqual(an2[1, 3, 'a'], 1)
        self.assertEqual(an2[2, 3, 'a'], 2)
        self.assertEqual(an2[1, 2, 'b'], 2)
        self.assertEqual(an2[1, 3, 'b'], 1)
        self.assertEqual(an2[2, 3, 'b'], 1)
        self.assertEqual(an2[1, 2, 'c'], 2)
        self.assertEqual(an2[1, 3, 'c'], 2)
        self.assertEqual(an2[2, 3, 'c'], 1)

        an3 = transforms.aggregate(n, (1, 2))
        self.assertEqual(an3[1, 2], 8)
        self.assertEqual(an3[1, 3], 4)
        self.assertEqual(an3[2, 3], 4)
        self.assertEqual(an3, transforms.aggregate(an1, 1))
        self.assertEqual(an3, transforms.aggregate(an2, 1))
    def test_aggregate_2dim_mlayer_nonglobal_nodes(self):
        def test_net(n):
            n[1, 2, 'a', 'x'] = 3
            n.add_layer('b', 1)
            n.add_layer('y', 2)
            n.add_node(3, layer=('a', 'x'))
            n.add_node(4, layer=('c', 'z'))
            an1 = transforms.aggregate(n, 1)
            self.assertEqual(set(an1), set([1, 2, 3, 4]))
            self.assertEqual(set(an1.iter_node_layers()),
                             set([(1, 'x'), (2, 'x'), (3, 'x'), (4, 'z')]))
            an2 = transforms.aggregate(n, 2)
            self.assertEqual(set(an2), set([1, 2, 3, 4]))
            self.assertEqual(set(an2.iter_node_layers()),
                             set([(1, 'a'), (2, 'a'), (3, 'a'), (4, 'c')]))

        mln = net.MultilayerNetwork(aspects=2, fullyInterconnected=False)
        test_net(mln)
        mpn = net.MultiplexNetwork([('categorical', 1.0),
                                    ('categorical', 1.0)],
                                   fullyInterconnected=False)
        test_net(mpn)
Example #10
0
    def test_multilayer_degs_mplexnet(self):
        n=net.MultiplexNetwork(couplings="none",fullyInterconnected=True)
        self.create_chain_mplex(n)
        self.assertEqual(diagnostics.degs(n,degstype="nodes"),{(1,1):1,(2,1):2,(3,1):2,(4,1):1,(1,3):1,(2,3):2,(3,3):2,(4,3):1,(1,2):0,(2,2):0,(3,2):0,(4,2):0})

        n=net.MultiplexNetwork(couplings="none",fullyInterconnected=False)
        self.create_chain_mplex(n)
        self.assertEqual(diagnostics.degs(n,degstype="nodes"),{(1,1):1,(2,1):2,(3,1):2,(4,1):1,(1,3):1,(2,3):2,(3,3):2,(4,3):1})

        n=net.MultiplexNetwork(couplings="categorical",fullyInterconnected=True)
        self.create_chain_mplex(n)
        self.assertEqual(diagnostics.degs(n,degstype="nodes"),{(1,1):3,(2,1):4,(3,1):4,(4,1):3,(1,3):3,(2,3):4,(3,3):4,(4,3):3,(1,2):2,(2,2):2,(3,2):2,(4,2):2})

        n=net.MultiplexNetwork(couplings="categorical",fullyInterconnected=False)
        self.create_chain_mplex(n)
        self.assertEqual(diagnostics.degs(n,degstype="nodes"),{(1,1):2,(2,1):3,(3,1):3,(4,1):2,(1,3):2,(2,3):3,(3,3):3,(4,3):2})

        n=net.MultiplexNetwork(couplings="ordinal",fullyInterconnected=True)
        self.create_chain_mplex(n)
        self.assertEqual(diagnostics.degs(n,degstype="nodes"),{(1,1):2,(2,1):3,(3,1):3,(4,1):2,(1,3):2,(2,3):3,(3,3):3,(4,3):2,(1,2):2,(2,2):2,(3,2):2,(4,2):2})

        n=net.MultiplexNetwork(couplings="ordinal",fullyInterconnected=False)
        self.create_chain_mplex(n)
        self.assertEqual(diagnostics.degs(n,degstype="nodes"),{(1,1):1,(2,1):2,(3,1):2,(4,1):1,(1,3):1,(2,3):2,(3,3):2,(4,3):1})
Example #11
0
    def setUp(self):
        #create directory for figs if it doesn't exist
        self.figdirpath=os.path.join(os.path.dirname(os.path.realpath(__file__)),self.figdirname)
        if not os.path.exists(self.figdirpath):
            os.mkdir(self.figdirpath)

        n=net.MultiplexNetwork([('categorical',1.0)])

        n[1,2,1]=1
        n[1,3,1]=1
        n[2,3,1]=1

        n[1,2,2]=1
        n[1,3,2]=1
        n[1,4,2]=1
        n[3,4,2]=1

        n[1,2,3]=1
        n[1,3,3]=1
        n[1,4,3]=1
        n[2,4,3]=1

        self.mplex_simple=n

        n=net.MultiplexNetwork([('categorical',1.0)],fullyInterconnected=False)

        n[1,2,1]=1
        n[1,3,1]=1
        n[2,3,1]=1

        n[1,2,2]=1
        n[1,3,2]=1
        n[1,4,2]=1
        n[3,4,2]=1

        n[1,2,3]=1
        n[1,3,3]=1
        n[1,4,3]=1
        n[2,4,3]=1

        self.mplex_nonaligned_simple=n

        #The 2-aspect example network for the review article
        n=net.MultilayerNetwork(aspects=2,fullyInterconnected=False)
        n[1,2,'A','A','X','X']=1
        n[2,3,'A','A','Y','Y']=1
        n[1,3,'B','B','X','X']=1
        n[1,4,'B','B','X','X']=1
        n[3,4,'B','B','X','X']=1
        n[1,1,'A','B','X','X']=1
        n[1,4,'A','B','X','X']=1
        n[1,1,'B','B','X','Y']=1
        n[3,3,'A','A','X','Y']=1
        n[3,4,'A','B','X','Y']=1
        self.mlayer_example_2d=n

        n=net.MultilayerNetwork(aspects=1,fullyInterconnected=False)
        n[1,2,'A','A']=1
        n[2,3,'A','A']=1
        n[1,3,'B','B']=1
        n[1,4,'B','B']=1
        n[3,4,'B','B']=1
        n[1,1,'A','B']=1
        n[1,4,'A','B']=1
        n[3,4,'A','B']=1
        self.mlayer_example_1d=n

        #Non-aligned network for testing multilayer coordinates
        n=net.MultilayerNetwork(aspects=1,fullyInterconnected=False)
        n.add_node(0,'a')
        n.add_node(1,'b')
        n.add_node(2,'b')
        n.add_node(3,'b')
        n.add_node(4,'b')
        n.add_node(5,'b')
        n[1,2,'b','b']=1
        n[2,3,'b','b']=1
        n[3,4,'b','b']=1
        n[4,1,'b','b']=1

        n[0,5,'a','b']=1
        n[1,5,'b','b']=1
        n[2,5,'b','b']=1
        n[3,5,'b','b']=1
        n[4,5,'b','b']=1
        self.mlayer_nonaligned_aligntest=n

        #Second non-aligned network for testing multilayer coordinates
        n=net.MultilayerNetwork(aspects=1,fullyInterconnected=False)
        n.add_node(0,'a')
        n.add_node(1,'b')
        n.add_node(2,'b')
        n.add_node(3,'b')
        n.add_node(4,'b')

        n[1,2,'b','b']=1
        n[2,3,'b','b']=1
        n[3,4,'b','b']=1
        n[4,1,'b','b']=1

        n[0,0,'a','b']=1
        n[1,0,'b','b']=1
        n[2,0,'b','b']=1
        n[3,0,'b','b']=1
        n[4,0,'b','b']=1
        self.mlayer_nonaligned_aligntest2=n


        n=net.MultilayerNetwork(aspects=0,fullyInterconnected=True)
        n[1,2]=1
        n[2,3]=1
        n[1,3]=1
        n[1,4]=2
        n[3,4]=2
        self.mlayer_example_monoplex=n
    def setUp(self):
        n = net.MultiplexNetwork([('categorical', 1.0)])

        n[1, 2, 1] = 1
        n[1, 3, 1] = 1
        n[2, 3, 1] = 1

        n[1, 2, 2] = 1
        n[1, 3, 2] = 1
        n[1, 4, 2] = 1
        n[3, 4, 2] = 1

        n[1, 2, 3] = 1
        n[1, 3, 3] = 1
        n[1, 4, 3] = 1
        n[2, 4, 3] = 1

        self.mplex_simple = n

        n = net.MultiplexNetwork([('categorical', 1.0)],
                                 fullyInterconnected=False)

        n[1, 2, 1] = 1
        n[1, 3, 1] = 1
        n[2, 3, 1] = 1

        n[1, 2, 2] = 1
        n[1, 3, 2] = 1
        n[1, 4, 2] = 1
        n[3, 4, 2] = 1

        n[1, 2, 3] = 1
        n[1, 3, 3] = 1
        n[1, 4, 3] = 1
        n[2, 4, 3] = 1

        self.mplex_nonaligned_simple = n

        #The 2-aspect example network for the review article
        n = net.MultilayerNetwork(aspects=2, fullyInterconnected=False)
        n[1, 2, 'A', 'A', 'X', 'X'] = 1
        n[2, 3, 'A', 'A', 'Y', 'Y'] = 1
        n[1, 3, 'B', 'B', 'X', 'X'] = 1
        n[1, 4, 'B', 'B', 'X', 'X'] = 1
        n[3, 4, 'B', 'B', 'X', 'X'] = 1
        n[1, 1, 'A', 'B', 'X', 'X'] = 1
        n[1, 4, 'A', 'B', 'X', 'X'] = 1
        n[1, 1, 'B', 'B', 'X', 'Y'] = 1
        n[3, 3, 'A', 'A', 'X', 'Y'] = 1
        n[3, 4, 'A', 'B', 'X', 'Y'] = 1
        self.mlayer_example_2d = n

        n = net.MultilayerNetwork(aspects=1, fullyInterconnected=False)
        n[1, 2, 'A', 'A'] = 1
        n[2, 3, 'A', 'A'] = 1
        n[1, 3, 'B', 'B'] = 1
        n[1, 4, 'B', 'B'] = 1
        n[3, 4, 'B', 'B'] = 1
        n[1, 1, 'A', 'B'] = 1
        n[1, 4, 'A', 'B'] = 1
        n[3, 4, 'A', 'B'] = 1
        self.mlayer_example_1d = n

        n = net.MultilayerNetwork(aspects=0, fullyInterconnected=True)
        n[1, 2] = 1
        n[2, 3] = 1
        n[1, 3] = 1
        n[1, 4] = 2
        n[3, 4] = 2
        self.mlayer_example_monoplex = n
    def test_normalize_mplex_simple(self):
        n = net.MultiplexNetwork([('categorical', 1.0)])

        n[0, 1, 0] = 1
        n[0, 2, 0] = 1
        n[1, 2, 0] = 1

        n[0, 1, 1] = 1
        n[0, 2, 1] = 1
        n[0, 3, 1] = 1
        n[2, 3, 1] = 1

        n[0, 1, 2] = 1
        n[0, 2, 2] = 1
        n[0, 3, 2] = 1
        n[1, 3, 2] = 1

        nmap = {1: 0, 2: 1, 3: 2, 4: 3}
        lmap = {1: 0, 2: 1, 3: 2}
        self.assertEqual(transforms.normalize(self.mplex_simple), n)
        self.assertEqual(
            transforms.normalize(self.mplex_simple, nodesToIndices=True),
            (n, nmap))
        self.assertEqual(
            transforms.normalize(self.mplex_simple, layersToIndices=True),
            (n, lmap))
        self.assertEqual(
            transforms.normalize(self.mplex_simple,
                                 nodesToIndices=True,
                                 layersToIndices=True), (n, nmap, lmap))

        nmapr = {0: 1, 1: 2, 2: 3, 3: 4}
        lmapr = {0: 1, 1: 2, 2: 3}
        self.assertEqual(
            transforms.normalize(self.mplex_simple, nodesToIndices=False),
            (n, nmapr))
        self.assertEqual(
            transforms.normalize(self.mplex_simple, layersToIndices=False),
            (n, lmapr))
        self.assertEqual(
            transforms.normalize(self.mplex_simple,
                                 nodesToIndices=False,
                                 layersToIndices=False), (n, nmapr, lmapr))

        n = net.MultiplexNetwork([('categorical', 1.0)],
                                 fullyInterconnected=False)

        n[0, 1, 0] = 1
        n[0, 2, 0] = 1
        n[1, 2, 0] = 1

        n[0, 1, 1] = 1
        n[0, 2, 1] = 1
        n[0, 3, 1] = 1
        n[2, 3, 1] = 1

        n[0, 1, 2] = 1
        n[0, 2, 2] = 1
        n[0, 3, 2] = 1
        n[1, 3, 2] = 1

        self.assertEqual(transforms.normalize(self.mplex_nonaligned_simple), n)
Example #14
0
    def test_directed_unweighted(self):
        """The 3-layer multiplex networks example from Brodka et al. 'Analysis of Neighborhoods of in Multi-layered
        Dynamic Social Networks', 2012"""
        n = net.MultiplexNetwork(['categorical'], directed=True)

        n['x', 'z', 1] = 1
        n['x', 'y', 1] = 1
        n['y', 'x', 1] = 1
        n['y', 'z', 1] = 1
        n['z', 'x', 1] = 1
        n['z', 't', 1] = 1
        n['u', 'x', 1] = 1
        n['u', 'z', 1] = 1
        n['u', 'v', 1] = 1
        n['v', 'u', 1] = 1
        n['v', 't', 1] = 1
        n['t', 'z', 1] = 1
        n['t', 'v', 1] = 1

        n['x', 'u', 2] = 1
        n['x', 'z', 2] = 1
        n['x', 'v', 2] = 1
        n['x', 'y', 2] = 1
        n['z', 'x', 2] = 1
        n['u', 'v', 2] = 1
        n['v', 'u', 2] = 1
        n['v', 'x', 2] = 1
        n['v', 'y', 2] = 1

        n['x', 'u', 3] = 1
        n['x', 'z', 3] = 1
        n['x', 'v', 3] = 1
        n['x', 'y', 3] = 1
        n['y', 'z', 3] = 1
        n['y', 'v', 3] = 1
        n['z', 'x', 3] = 1
        n['z', 'y', 3] = 1
        n['z', 't', 3] = 1
        n['u', 'x', 3] = 1
        n['v', 'x', 3] = 1
        n['v', 't', 3] = 1
        n['t', 'z', 3] = 1
        n['t', 'v', 3] = 1

        an = net.MultilayerNetwork(aspects=0, directed=True)

        an['x', 'z'] = 3
        an['x', 'u'] = 2
        an['x', 'v'] = 2
        an['x', 'y'] = 3
        an['y', 'x'] = 1
        an['y', 'z'] = 2
        an['y', 'v'] = 1
        an['z', 'x'] = 3
        an['z', 'y'] = 1
        an['z', 't'] = 2
        an['u', 'x'] = 2
        an['u', 'z'] = 1
        an['u', 'v'] = 2
        an['v', 'x'] = 2
        an['v', 'y'] = 1
        an['v', 'u'] = 2
        an['v', 't'] = 2
        an['t', 'z'] = 2
        an['t', 'v'] = 2

        self.assertEqual(cc.lcc_brodka(n, 't', threshold=1), 0.0)
        self.assertEqual(cc.lcc_brodka(n, 't', threshold=2), 0.0)
        self.assertEqual(cc.lcc_brodka(n, 't', threshold=3), 0.0)
        self.assertEqual(cc.lcc_brodka(n, 'z', threshold=1), 2. / 3.)
        self.assertEqual(cc.lcc_brodka(n, 'z', threshold=2), 4. / 9.)
        self.assertEqual(cc.lcc_brodka(n, 'z', threshold=3), 0.0)

        self.assertEqual(cc.lcc_brodka(n, 't', anet=an, threshold=1), 0.0)
        self.assertEqual(cc.lcc_brodka(n, 't', anet=an, threshold=2), 0.0)
        self.assertEqual(cc.lcc_brodka(n, 't', anet=an, threshold=3), 0.0)
        self.assertEqual(cc.lcc_brodka(n, 'z', anet=an, threshold=1), 2. / 3.)
        self.assertEqual(cc.lcc_brodka(n, 'z', anet=an, threshold=2), 4. / 9.)
        self.assertEqual(cc.lcc_brodka(n, 'z', anet=an, threshold=3), 0.0)