Example #1
0
class CacheValuesTest(unittest.TestCase):

    def setUp(self):
        print('In setUp()')
        self.fixture = LRUCache()

    def tearDown(self):
        print('In tearDown()')
        del self.fixture

    def test_empty_cache(self):
        print('Test : Empty Cache')
        self.assertDictEqual(self.fixture.getStore(),{},"Cache is empty")

    def test_cache_oneEntry(self):
        print('Test : Cache with single value')
        self.fixture.find(1)
        print self.fixture.getStore()
        self.assertDictEqual(self.fixture.getStore(),{1:1},"Cache has a single entry")

    def test_cache_repeatedOneEntry(self):
        print('Test : Cache with single value repeatedly')
        self.fixture.find(1)
        self.fixture.find(1)
        self.fixture.find(1)
        self.fixture.find(1)
        self.fixture.find(1)
        self.fixture.find(1)
        self.fixture.find(1)
        self.fixture.find(1)
        self.fixture.find(1)
        self.fixture.find(1)
        self.fixture.find(1)
        self.fixture.find(1)
        self.fixture.find(1)
        self.fixture.find(1)
        self.fixture.find(1)
        self.fixture.find(1)

        print self.fixture.getStore()
        self.assertDictEqual(self.fixture.getStore(),{1:1},"Cache has a single entry")

    def test_cache_fullSize(self):
        print('Test : Cache full size')
        self.fixture.find(1)
        self.fixture.find(2)
        self.fixture.find(3)
        self.fixture.find(4)
        self.fixture.find(5)
        self.fixture.find(6)
        self.fixture.find(7)
        self.fixture.find(8)
        self.fixture.find(9)
        self.fixture.find(0)

        print self.fixture.getStore()
        self.assertDictEqual(self.fixture.getStore(),{0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9},"Cache has all entries")

    def test_cache_overflow(self):
        print('Test : Cache overflow')
        self.fixture.find(1)
        self.fixture.find(2)
        self.fixture.find(3)
        self.fixture.find(4)
        self.fixture.find(5)
        self.fixture.find(6)
        self.fixture.find(7)
        self.fixture.find(8)
        self.fixture.find(9)
        self.fixture.find(0)
        self.fixture.find(16)
        self.fixture.find(27)
        self.fixture.find(38)
        self.fixture.find(49)
        self.fixture.find(50)

        print self.fixture.getStore()
        self.assertDictEqual(self.fixture.getStore(),{0: 0, 6: 6, 7: 7, 8: 8, 9: 9, 38: 38, 16: 16, 49: 49, 50: 50, 27: 27},"Cache has all entries")

    def test_cache_random(self):
        print('Test : Cache random')
        self.fixture.find(1)
        self.fixture.find(22342)
        self.fixture.find("harry")
        self.fixture.find(-4689)
        self.fixture.find("&&&&")
        self.fixture.find(690040809480)
        self.fixture.find("0090")
        self.fixture.find(8)
        self.fixture.find(0)
        self.fixture.find(0)
        self.fixture.find("16")
        self.fixture.find(27568)
        self.fixture.find(38)
        self.fixture.find(49)
        self.fixture.find(50)

        print self.fixture.getStore()
        self.assertDictEqual(self.fixture.getStore(),{0: 0, 49: 49, 38: 38, 6272037681056615: '16', 690040809480: 690040809480, -8147289704323569492: '&&&&', 27568: 27568, 8: 8, 50: 50, -3495090546366936577: '0090'},"Cache has all entries")

    def test_cache_alternateValues(self):
        print('Test : Cache alternating Values')
        self.fixture.find(1)
        self.fixture.find(2)
        self.fixture.find(3)
        self.fixture.find(2)
        self.fixture.find(1)
        self.fixture.find(3)
        self.fixture.find(1)
        self.fixture.find(3)
        self.fixture.find(2)
        self.fixture.find(3)
        self.fixture.find(1)
        self.fixture.find(2)
        self.fixture.find(3)
        self.fixture.find(2)
        self.fixture.find(1)

        print self.fixture.getStore()
        self.assertDictEqual(self.fixture.getStore(),{1: 1, 2: 2, 3: 3},"Cache has all entries")

    def test_cache_alternateHitsandMisses(self):
        print('Test : Cache hits  and misses for repeating values')
        self.fixture.find(1)
        self.fixture.find(2)
        self.fixture.find(3)
        self.fixture.find(4)
        self.fixture.find(5)
        self.fixture.find(1)
        self.fixture.find(2)
        self.fixture.find(3)
        self.fixture.find(4)
        self.fixture.find(5)
        self.fixture.find(6)
        self.fixture.find(7)
        self.fixture.find(8)
        self.fixture.find(9)
        self.fixture.find(10)
        self.fixture.find(11)
        self.fixture.find(1)
        self.fixture.find(2)
        self.fixture.find(3)
        self.fixture.find(4)
        self.fixture.find(5)

        print self.fixture.getStore()
        self.assertDictEqual(self.fixture.getStore(),{1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 7: 7, 8: 8, 9: 9, 10: 10, 11: 11},"Cache has all entries")

    def test_cache_String(self):
        print('Test : Cache with String values')
        self.fixture.find("Harry")
        self.fixture.find("Archer")
        self.fixture.find("Dexter")
        self.fixture.find("Seinfield")
        self.fixture.find("Friends")
        self.fixture.find("Shield")
        self.fixture.find("Vikings")
        self.fixture.find("Grimm")
        self.fixture.find("Google")
        self.fixture.find("Yahoo")
        self.fixture.find("Saleforce")
        self.fixture.find("twitter")
        self.fixture.find("facebook")
        self.fixture.find("capio")
        self.fixture.find("Python")
        self.fixture.find("java")
        self.fixture.find("xml")
        self.fixture.find("html")
        self.fixture.find("random strings to test String Caching")


        print self.fixture.getStore()
        self.assertDictEqual(self.fixture.getStore(),{-5999452984715080672: 'xml', -2338026935110240988: 'java', -1782981222247821945: 'random strings to test String Caching', -2359742753373747800: 'Python', -6598467229008937334: 'twitter', 3021726190866786059: 'Saleforce', -8781860034246656723: 'Yahoo', 7799575877465763251: 'html', 3162525260849330260: 'facebook', -8502831814997350055: 'capio'},"Cache has all entries")

    def test_cache_exception(self):
        print('Test : Cache with single value')
        try:
        	self.fixture.find(x)
        except:
        	pass
        else:
            self.fail('Did not NameError')
Example #2
0
class CacheValuesTest(unittest.TestCase):
    def setUp(self):
        print('In setUp()')
        self.fixture = LRUCache()

    def tearDown(self):
        print('In tearDown()')
        del self.fixture

    def test_empty_cache(self):
        print('Test : Empty Cache')
        self.assertDictEqual(self.fixture.getStore(), {}, "Cache is empty")

    def test_cache_oneEntry(self):
        print('Test : Cache with single value')
        self.fixture.find(1)
        print self.fixture.getStore()
        self.assertDictEqual(self.fixture.getStore(), {1: 1},
                             "Cache has a single entry")

    def test_cache_repeatedOneEntry(self):
        print('Test : Cache with single value repeatedly')
        self.fixture.find(1)
        self.fixture.find(1)
        self.fixture.find(1)
        self.fixture.find(1)
        self.fixture.find(1)
        self.fixture.find(1)
        self.fixture.find(1)
        self.fixture.find(1)
        self.fixture.find(1)
        self.fixture.find(1)
        self.fixture.find(1)
        self.fixture.find(1)
        self.fixture.find(1)
        self.fixture.find(1)
        self.fixture.find(1)
        self.fixture.find(1)

        print self.fixture.getStore()
        self.assertDictEqual(self.fixture.getStore(), {1: 1},
                             "Cache has a single entry")

    def test_cache_fullSize(self):
        print('Test : Cache full size')
        self.fixture.find(1)
        self.fixture.find(2)
        self.fixture.find(3)
        self.fixture.find(4)
        self.fixture.find(5)
        self.fixture.find(6)
        self.fixture.find(7)
        self.fixture.find(8)
        self.fixture.find(9)
        self.fixture.find(0)

        print self.fixture.getStore()
        self.assertDictEqual(self.fixture.getStore(), {
            0: 0,
            1: 1,
            2: 2,
            3: 3,
            4: 4,
            5: 5,
            6: 6,
            7: 7,
            8: 8,
            9: 9
        }, "Cache has all entries")

    def test_cache_overflow(self):
        print('Test : Cache overflow')
        self.fixture.find(1)
        self.fixture.find(2)
        self.fixture.find(3)
        self.fixture.find(4)
        self.fixture.find(5)
        self.fixture.find(6)
        self.fixture.find(7)
        self.fixture.find(8)
        self.fixture.find(9)
        self.fixture.find(0)
        self.fixture.find(16)
        self.fixture.find(27)
        self.fixture.find(38)
        self.fixture.find(49)
        self.fixture.find(50)

        print self.fixture.getStore()
        self.assertDictEqual(self.fixture.getStore(), {
            0: 0,
            6: 6,
            7: 7,
            8: 8,
            9: 9,
            38: 38,
            16: 16,
            49: 49,
            50: 50,
            27: 27
        }, "Cache has all entries")

    def test_cache_random(self):
        print('Test : Cache random')
        self.fixture.find(1)
        self.fixture.find(22342)
        self.fixture.find("harry")
        self.fixture.find(-4689)
        self.fixture.find("&&&&")
        self.fixture.find(690040809480)
        self.fixture.find("0090")
        self.fixture.find(8)
        self.fixture.find(0)
        self.fixture.find(0)
        self.fixture.find("16")
        self.fixture.find(27568)
        self.fixture.find(38)
        self.fixture.find(49)
        self.fixture.find(50)

        print self.fixture.getStore()
        self.assertDictEqual(
            self.fixture.getStore(), {
                0: 0,
                49: 49,
                38: 38,
                6272037681056615: '16',
                690040809480: 690040809480,
                -8147289704323569492: '&&&&',
                27568: 27568,
                8: 8,
                50: 50,
                -3495090546366936577: '0090'
            }, "Cache has all entries")

    def test_cache_alternateValues(self):
        print('Test : Cache alternating Values')
        self.fixture.find(1)
        self.fixture.find(2)
        self.fixture.find(3)
        self.fixture.find(2)
        self.fixture.find(1)
        self.fixture.find(3)
        self.fixture.find(1)
        self.fixture.find(3)
        self.fixture.find(2)
        self.fixture.find(3)
        self.fixture.find(1)
        self.fixture.find(2)
        self.fixture.find(3)
        self.fixture.find(2)
        self.fixture.find(1)

        print self.fixture.getStore()
        self.assertDictEqual(self.fixture.getStore(), {
            1: 1,
            2: 2,
            3: 3
        }, "Cache has all entries")

    def test_cache_alternateHitsandMisses(self):
        print('Test : Cache hits  and misses for repeating values')
        self.fixture.find(1)
        self.fixture.find(2)
        self.fixture.find(3)
        self.fixture.find(4)
        self.fixture.find(5)
        self.fixture.find(1)
        self.fixture.find(2)
        self.fixture.find(3)
        self.fixture.find(4)
        self.fixture.find(5)
        self.fixture.find(6)
        self.fixture.find(7)
        self.fixture.find(8)
        self.fixture.find(9)
        self.fixture.find(10)
        self.fixture.find(11)
        self.fixture.find(1)
        self.fixture.find(2)
        self.fixture.find(3)
        self.fixture.find(4)
        self.fixture.find(5)

        print self.fixture.getStore()
        self.assertDictEqual(self.fixture.getStore(), {
            1: 1,
            2: 2,
            3: 3,
            4: 4,
            5: 5,
            7: 7,
            8: 8,
            9: 9,
            10: 10,
            11: 11
        }, "Cache has all entries")

    def test_cache_String(self):
        print('Test : Cache with String values')
        self.fixture.find("Harry")
        self.fixture.find("Archer")
        self.fixture.find("Dexter")
        self.fixture.find("Seinfield")
        self.fixture.find("Friends")
        self.fixture.find("Shield")
        self.fixture.find("Vikings")
        self.fixture.find("Grimm")
        self.fixture.find("Google")
        self.fixture.find("Yahoo")
        self.fixture.find("Saleforce")
        self.fixture.find("twitter")
        self.fixture.find("facebook")
        self.fixture.find("capio")
        self.fixture.find("Python")
        self.fixture.find("java")
        self.fixture.find("xml")
        self.fixture.find("html")
        self.fixture.find("random strings to test String Caching")

        print self.fixture.getStore()
        self.assertDictEqual(
            self.fixture.getStore(), {
                -5999452984715080672: 'xml',
                -2338026935110240988: 'java',
                -1782981222247821945: 'random strings to test String Caching',
                -2359742753373747800: 'Python',
                -6598467229008937334: 'twitter',
                3021726190866786059: 'Saleforce',
                -8781860034246656723: 'Yahoo',
                7799575877465763251: 'html',
                3162525260849330260: 'facebook',
                -8502831814997350055: 'capio'
            }, "Cache has all entries")

    def test_cache_exception(self):
        print('Test : Cache with single value')
        try:
            self.fixture.find(x)
        except:
            pass
        else:
            self.fail('Did not NameError')