def test_remove_self_loops(self):
    network = clique(5)

    network[5].append(5)
    network.remove_self_loops()

    self.assertEqual(network[5], [1, 2, 3, 4])
  def test_make_undirected(self):
    network = clique(5)

    network[4] = []
    network.make_undirected()

    self.assertTrue(network == {1: [2, 3, 4, 5], 2: [1, 3, 4, 5], 3: [1, 2, 4, 5], 4: [1, 2, 3, 5], 5: [1, 2, 3, 4]})
  def test_make_consistent(self):
    network = clique(5)

    network[5].extend([1, 2, 3, 4])
    self.assertNotEqual(network[5], [1, 2, 3, 4])

    network.make_consistent()
    self.assertEqual(network[5], [1, 2, 3, 4])
  def test_nodes(self):

    network = clique(5)
    self.assertEqual(set(range(1, 6)).difference(network.nodes()), set())
 def test_number_of_nodes(self):
   network = clique(5)
   self.assertEqual(network.number_of_nodes(), 5)
  def test_number_of_edges(self):
    network = clique(5)
    self.assertEqual(network.number_of_edges(), 4 + 3 + 2 + 1)

    network = clique(4)
    self.assertEqual(network.number_of_edges(), 3 + 2 + 1)
 def test_order(self):
   network = clique(5)
   self.assertEqual(network.order(), 5)
  def test_degree(self):
    network = clique(5)

    self.assertEqual(network.degree(1), 4)
    self.assertEqual(network.degree([1, 2, 3]), {1: 4, 2: 4, 3: 4})
  def test_has_edge(self):
    network = clique(5)

    self.assertTrue(network.has_edge(1, 5))
    self.assertFalse(network.has_edge(1, 6))
    self.assertFalse(network.has_edge(6, 1))
  def test_check_self_loops(self):
    network = clique(5)
    self.assertFalse(network.check_self_loops())

    network[5].append(5)
    self.assertTrue(network.check_self_loops())
  def test_subgraph(self):
    network = clique(5)

    self.assertEqual(network.subgraph({1, 2}), {1: [2], 2: [1]})
  def test_adjacency_iter(self):
    network = clique(3)

    self.assertEqual([x for x in network.adjacency_iter()], [(1, [2, 3]), (2, [1, 3]), (3,[1, 2])])