Ejemplo n.º 1
0
 def testRemoveDups(self):
     testList = List.LinkedList()
     for v in range(10):
         testList.append(v)
     # should not remove anything
     removed = removeDuplicates(testList)
     for i, e in enumerate(removed):
         self.assertEqual(i, e)
     # 10 elements
     self.assertEqual([i for i, e in enumerate(removed)],
                      [i for i in range(10)])
     # add same elements again
     for v in range(10):
         testList.append(v)
     removed2 = removeDuplicates(testList)
     self.assertEqual([v for v in removed], [v for v in removed2])
     # create another list
     testList2 = List.LinkedList()
     for i in range(10):
         testList2.append(0)
     removed = removeDuplicates(testList2)
     # should only contain one element of 0
     self.assertEqual(removed.get(0).value, 0)
     self.assertRaises(IndexError, removed.get, 1)
     # empty case
     for val in removeDuplicates(List.LinkedList()):
         self.fail("Cannot enter here")
Ejemplo n.º 2
0
def removeDuplicates(input_list):
    newList = List.LinkedList()
    val_set = set()
    for val in input_list:
        if val not in val_set:
            val_set.add(val)
            newList.append(val)
    return newList
Ejemplo n.º 3
0
    def testInPlace(self):
        # empty case
        empty = List.LinkedList()
        removeDupsInPlace(empty)
        for val in empty:
            self.fail("Cannot enter here")

        testList = List.LinkedList()
        for v in range(10):
            testList.append(v)
        # should not remove anything
        removeDupsInPlace(testList)
        for i, e in enumerate(testList):
            self.assertEqual(i, e)
        # 10 elements
        self.assertEqual([i for i, e in enumerate(testList)],
                         [i for i in range(10)])
        # add same elements again
        for v in range(10):
            testList.append(v)
        removeDupsInPlace(testList)
        self.assertEqual([i for i, e in enumerate(testList)],
                         [i for i in range(10)])

        # create another list
        testList2 = List.LinkedList()
        for i in range(10):
            testList2.append(0)
        removeDupsInPlace(testList2)
        # should only contain one element of 0
        self.assertEqual(testList2.get(0).value, 0)
        self.assertRaises(IndexError, testList2.get, 1)

        # create another list
        testList2 = List.LinkedList()
        for i in range(10):
            testList2.append(i)
            testList2.append(i)
        removeDupsInPlace(testList2)
        self.assertEqual([i for i, e in enumerate(testList)],
                         [i for i in range(10)])
Ejemplo n.º 4
0
 def setUp(self):
     self.list = List.LinkedList()