class TestDailyLog(unittest.TestCase): def setUp(self): self.logs = DailyLog('20210125') self.value = '{"error":"", "logs":[\ {"created_at": "2021-01-23T13:00:30",\ "first_name": "Иван",\ "message": "Some message1",\ "second_name": "Иванов",\ "user_id": "77777"},\ {"created_at": "2021-01-23T12:00:00",\ "first_name": "Петр",\ "message": "Some message2",\ "second_name": "Петров",\ "user_id": "555555"}]}' def test_class_creation(self): self.assertEqual(self.logs.log_date, '20210125') self.assertEqual(self.logs.log, []) self.assertEqual(self.logs.sorted_log, []) def test_parse_json(self): with patch.object(DailyLog, 'load_json', return_value=self.value): self.logs.parse_json() name_one = self.logs.log[0]['first_name'] name_second = self.logs.log[1]['first_name'] time_one = self.logs.log[0]['created_at'] message_second = self.logs.log[1]['message'] self.assertEqual(name_one, 'Иван') self.assertEqual(name_second, 'Петр') self.assertEqual(time_one, '2021-01-23T13:00:30') self.assertEqual(message_second, 'Some message2') def test_time_compare(self): with patch.object(DailyLog, 'load_json', return_value=self.value): self.logs.parse_json() log_one = self.logs.log[0] log_second = self.logs.log[1] result = Compare(log_one) <= Compare(log_second) self.assertFalse(result) def test_sorting(self): with patch.object(DailyLog, 'load_json', return_value=self.value): self.logs.parse_json() self.logs.sort_log() log_one = self.logs.sorted_log[0] log_second = self.logs.sorted_log[1] result = Compare(log_one) <= Compare(log_second) self.assertTrue(result)
def addLog(self, l: Log): # find the year if l.getYear() not in self._yearlyLogs: self._yearlyLogs[l.getYear()] = YearlyLog(l.getYear()) yearLog = self._yearlyLogs[l.getYear()] # find the month if l.getMonth() not in yearLog.getMonthlyLogs(): yearLog.getMonthlyLogs()[l.getMonth()] = MonthlyLog( l.getMonth(), l.getYear()) monthLog = yearLog.getMonthlyLogs()[l.getMonth()] # find the day if l.getDay() not in monthLog.getDailyLogs(): monthLog.getDailyLogs()[l.getDay()] = DailyLog( l.getDay(), l.getMonth(), l.getYear()) dailyLog = monthLog.getDailyLogs()[l.getDay()] # add dailyLog.addLog(l)
interSet = len(genreValue1) + len(genreValue2) - unionSet; #[unionSet.append(obj) for obj in (genreValue1 + genreValue2) if obj not in unionSet]; nominator = min( len(genreValue1), len( genreValue2 )); return float(interSet)/ float(nominator); #return float(interSet)/float(unionSet) genreMap = GenreMap.GetMap(); # weekly aggregation. print 'Merging weekly data...' widx = 0; logArr1 = DailyLog.mergeLogs( [DailyLog.createFromFile(dataDir + '/' + logfiles[fidx]) \ for fidx in range(widx * 7 + 0, widx * 7 + 7)]); #logArr1 = DailyLog.createFromFile('./data/20131122.tsv'); print 'Computing distance...' kvPairs = logArr1.genreDic.items(); pairwiseComp = dict([ ( (kvPairs[i][0], kvPairs[j][0]), \ genreMergeValue (kvPairs[i][1], kvPairs[j][1])) \ for i in range(0, len(kvPairs)) for j in range(0, len(kvPairs)) if i<j ]); #print pairwiseComp print 'Rank and output results...' sortComp = sorted(pairwiseComp.iteritems(), key=operator.itemgetter(1), reverse = True); sortComp = [item for item in sortComp if item[1] > 0]; # filtering zero ones.
def setUp(self): self.logs = DailyLog('20210125') self.value = '{"error":"", "logs":[\
def getDailyLog(self, day, month, year): if day not in self.getMonthlyLog(month, year).getDailyLogs(): self.getMonthlyLog(month, year).getDailyLogs()[day] = DailyLog( day, month, year) return self.getMonthlyLog(month, year).getDailyLogs()[day]
# Run and get some statistics. # Created: Jiayu Zhou, Jan 20, 2014. from DailyLog import DailyLog; from DailyLog import GenreMap; import csv; import time; from os import listdir; from jiayuUtils import *; genreMap = GenreMap.GetMap(); log1 = DailyLog.createFromFile('./data/20131122.tsv'); # display genre dictionary. for key,value in log1.genreDic.items(): print "["+key+"]", genreMap[key], ":", len(value); print 'Number of total entries: ' + str(log1.length()); print 'Number of entries unique: ' + str(len(log1.progDic)); dataDir = './data'; logfiles = sorted(listdir(dataDir)); ## compute the overlap week by week. for widx in range(0, len(logfiles)/7 - 1): print '---Weekly----' if ('logArr2' in locals()):