def testPut(self): Table = ht.HashTable(5) Table.put(testSong08.Artist, testSong08) Table.put(testSong09.Artist, testSong09) self.assertEqual(2, Table.size) self.assertEqual([testSong08.Artist], Table.keys) self.assertEqual([testSong08, testSong09], Table.values)
def testSearch(self): Table = ht.HashTable(100) Table.put(testSong10.Artist, testSong10) Table.put(testSong09.Artist, testSong09) Table.put(testSong03.Artist, testSong03) Table.put(testSong05.Artist, testSong05) self.assertEqual(Table.h1(testSong10.Artist), Table.search(testSong10.Artist)) self.assertEqual(Table.h1(testSong09.Artist), Table.search(testSong09.Artist)) self.assertEqual(Table.h1(testSong03.Artist), Table.search(testSong03.Artist)) self.assertEqual(29, Table.search(testSong05.Artist))
def testGet(self): Table = ht.HashTable(100) Table.put(testSong00.Artist, testSong00) Table.put(testSong02.Artist, testSong02) Table.put(testSong03.Artist, testSong03) Table.put(testSong04.Artist, testSong04) Table.put(testSong05.Artist, testSong05) self.assertEqual([testSong00, testSong05], Table.get(testSong00.Artist)) self.assertEqual([testSong00, testSong05], Table.get(testSong05.Artist)) self.assertEqual([testSong02], Table.get(testSong02.Artist)) self.assertEqual([testSong03], Table.get(testSong03.Artist)) self.assertEqual([testSong04], Table.get(testSong04.Artist))
def testRemove(self): Table = ht.HashTable(10) Table.put(testSong10.Artist, testSong10) desiredResult1 = 1 desiredResult2 = 0 desiredResult3 = [] desiredResult4 = [testSong10] desiredResult5 = [[], [], [], [], [], [], [], [], [], []] desiredResult6 = [testSong10.Artist] self.assertEqual(desiredResult1, Table.size) self.assertEqual(desiredResult4, Table.values) self.assertEqual(desiredResult6, Table.keys) Table.remove('One Direction') self.assertEqual(desiredResult2, Table.size) self.assertEqual(desiredResult3, Table.keys) self.assertEqual(desiredResult3, Table.values) self.assertEqual(desiredResult5, Table.table)
def testSaveData(self): try: desiredResult = "[['Flight of the Conchords,Robots,BNC61-OOPdA,4100,59,559964,False,0,0,0'], " \ "['Crush,Tessa Violet,SiAuAJBZuGs,111000,4300,1969889,False,0,0,0'], " \ "['gnash,home,6cwBLBCehGg,0,0,0,False,0,0,0'], " \ "['alt-j,in cold blood,rP0uuI80wuY,74000,2000,9059467,False,0,0,0']]" mht.clear() dataList = ht.HashTable() dataList.put(testSong12.Artist, testSong12) dataList.put(testSong11.Artist, testSong11) dataList.put(testSong00.Artist, testSong00) dataList.put(testSong13.Artist, testSong13) mht.saveData(dataList) results = str(mht.readData()) # gather results self.assertEqual(desiredResult, results) except ValueError and AttributeError as e: error(str(e)) pass
def testRehash(self): desiredResult1 = 10 desiredResult3 = [ testSong01.Artist, testSong06.Artist, testSong05.Artist ] desiredResult4 = [testSong01, testSong06, testSong05, testSong07] desiredResult5 = 4 desiredResult6 = 1 Table = ht.HashTable(5) Table.put(testSong01.Artist, testSong01) Table.put(testSong06.Artist, testSong06) Table.put(testSong05.Artist, testSong05) Table.put(testSong07.Artist, testSong07) Table.rehash() self.assertEqual(desiredResult6, Table.rehashed) self.assertEqual(desiredResult1, Table.capacity) Table.keys.sort() self.assertEqual(desiredResult3, Table.keys) self.assertEqual(desiredResult4, Table.values) self.assertEqual(desiredResult5, Table.size)
def testHas(self): Table = ht.HashTable(5) Table.put(testSong00.Artist, testSong00) self.assertTrue(Table.has(testSong00.Artist)) self.assertFalse(Table.has(testSong01.Artist))
def testDoubleHashing(self): Table = ht.HashTable(10) Table.put(testSong00.Artist, testSong00) Table.put(testSong01.Artist, testSong01) self.assertNotEqual(Table.h1(testSong01.Artist), Table.doubleHashing(testSong01.Artist)[1])
def testCutOff(self): Table = ht.HashTable(10) Table.keys = [[] for i in range(0, 9)] self.assertEqual(True, Table.cutoff()) Table.keys = [[] for i in range(0, 3)] self.assertEqual(False, Table.cutoff())
def testH2(self): desiredResult = 4 Table = ht.HashTable() result = Table.h2(key="test") self.assertEqual(desiredResult, result)
user = User(sys.path[0] + '\\', 'nu') print("Welcome, New User!") return user user = setUser() FileName = "MusicData.csv" NewMusicPath = user.NewPath CurrentMusicPath = user.CurrentPath OldMusicPath = user.OldPath TestMusicPath = user.TestPath DEVELOPER_KEY = "AIzaSyDsEUDbBKzBE6HS96PJ7FQpS5a8qfEV3Sk" YOUTUBE_API_SERVICE_NAME = "youtube" YOUTUBE_API_VERSION = "v3" music = ht.HashTable() # A class used to create music file objects class Data: # Constructor def __init__(self, Title="", Artist="", Url="6cwBLBCehGg", likes=0, dislikes=0, views=0, used=False, likesToTotalRatio=0.0, likeToDislikeRatio=0.0,