def test_write_parsed(self): if exists("sample-tmp.h5"): unlink("sample-tmp.h5") copyfile("test-data/sample.h5", "sample-tmp.h5") self.areader = AntRawDataAccess("sample-tmp.h5", "/test/goldenembeded") self.awriter = AntParsedDataAccess("sample-tmp.h5", "/test/goldenembeded") for raw in self.areader: parsed = parse_sample_interpret(raw) logging.debug(parsed) logging.debug("Parsed Time Stamp: " + str(parsed["Timestamp"])) self.awriter.write(parsed) for rawData, parsedData in zip(self.areader, self.awriter): self.assertEqual(rawData["Timestamp"], parsedData["Timestamp"])
def test_parse_sample_interpret_listabilities(self): logging.debug('LIST ABILITIES') first = [3,0,1,1,1,3,1,4,1,3.9] output = parse_sample_interpret(first) logging.debug(output) expected = { "BikeCadenceEventTime":256, "CumulativeCadenceRevolutionCount":257, "BikeSpeedEventTime":259, "CumulativeSpeedRevolutionCount":260, "Timestamp":3.9, "BikeCadence":0, "BikeSpeed":0, "BikeCadenceHoldTimestamp":3.9, "BikeSpeedHoldTimestamp":3.9, } self.assertEqual(output, expected)
def test_parse_speed_cadence(self): #Read Test Data if exists('sample-tmp.h5'): unlink('sample-tmp.h5') copyfile('test-data/sample.h5','sample-tmp.h5') antAccess = AntRawDataAccess('sample-tmp.h5','/test/goldenembeded'); antWriter = AntParsedDataAccess('sample-tmp.h5','/test/goldenembeded'); firstSpeed=0; cumulativeRev=0; i=0 previousRow = None for row in antAccess: #logging.debug('Type Row:'+str(type(row))+' Row: '+str(row)) parsedRow = parse_sample_interpret(row,previousRow) logging.debug(row['Timestamp']) cspMSB = row['CumulativeSpeedRevolutionCountMSB'] cspLSB = row['CumulativeSpeedRevolutionCountLSB'] self.assertEqual(parsedRow['CumulativeSpeedRevolutionCount'],+\ cspMSB*256+cspLSB) self.assertEqual(parsedRow['BikeCadence'],0) logging.debug('SPEED:'+str(i)+':'+str(parsedRow['BikeSpeed'])) if i>19 and i < 33: self.assertTrue(parsedRow['BikeSpeed']>0) i+=1; self.assertEqual(parsedRow['BikeCadence'],0) secondSpeed = parsedRow['BikeSpeedEventTime'] for column in parsedRow.values(): #logging.debug('Column: '+str(column)) self.assertTrue((type(column)==int) or (type(column)==float) ) cumulativeSecond = parsedRow['CumulativeSpeedRevolutionCount'] if secondSpeed > firstSpeed: self.assertGreater(cumulativeSecond, cumulativeRev, 'Greater') firstSpeed = secondSpeed cumulativeRev = cumulativeSecond logging.debug(parsedRow) antWriter.write(parsedRow) previousRow = parsedRow antAccess.close() i=0 for row in antWriter: if i == 0: self.assertEqual(row['CumulativeSpeedRevolutionCount'],231*256+120) self.assertEqual(row['BikeCadence'],0) i+=1
def test_parse_sample_interpret_rollover(self): #Test roll over. first = { "ChanID":3, "BikeCadenceEventTimeLSB":255, "BikeCadenceEventTimeMSB":255, "CumulativeCadenceRevolutionCountLSB":255, "CumulativeCadenceRevolutionCountMSB":255, "BikeSpeedEventTimeLSB":255, "BikeSpeedEventTimeMSB":255, "CumulativeSpeedRevolutionCountLSB":255, "CumulativeSpeedRevolutionCountMSB":255, "Timestamp":3.9, } output = parse_sample_interpret(first) expected = { "BikeCadenceEventTime":65535, "CumulativeCadenceRevolutionCount":65535, "BikeSpeedEventTime":65535, "CumulativeSpeedRevolutionCount":65535, "Timestamp":3.9, "BikeCadence":0, "BikeSpeed":0, "BikeCadenceHoldTimestamp":3.9, "BikeSpeedHoldTimestamp":3.9, } self.assertEqual(output, expected) second = { "ChanID":3, "BikeCadenceEventTimeLSB":1, "BikeCadenceEventTimeMSB":0, "CumulativeCadenceRevolutionCountLSB":2, "CumulativeCadenceRevolutionCountMSB":0, "BikeSpeedEventTimeLSB":3, "BikeSpeedEventTimeMSB":0, "CumulativeSpeedRevolutionCountLSB":4, "CumulativeSpeedRevolutionCountMSB":0, "Timestamp":3.9, } output = parse_sample_interpret(second,output) logging.debug(output) expected = { "BikeCadenceEventTime":65537, "CumulativeCadenceRevolutionCount":65538, "BikeSpeedEventTime":65539, "CumulativeSpeedRevolutionCount":65540, "Timestamp":3.9, "BikeCadence":92160.0, "BikeSpeed":1280.0, "BikeCadenceHoldTimestamp":3.9, "BikeSpeedHoldTimestamp":3.9, } self.assertEqual(output, expected) #Second level roll over... first = { "ChanID":3, "BikeCadenceEventTimeLSB":255, "BikeCadenceEventTimeMSB":255, "CumulativeCadenceRevolutionCountLSB":255, "CumulativeCadenceRevolutionCountMSB":255, "BikeSpeedEventTimeLSB":255, "BikeSpeedEventTimeMSB":255, "CumulativeSpeedRevolutionCountLSB":255, "CumulativeSpeedRevolutionCountMSB":255, "Timestamp":3.9, } output = { "BikeCadenceEventTime":65536*2-1, "CumulativeCadenceRevolutionCount":65536*2-1, "BikeSpeedEventTime":65536*2-1, "CumulativeSpeedRevolutionCount":65536*2-1, "Timestamp":3.9, "BikeCadence":0, "BikeSpeed":0, "BikeCadenceHoldTimestamp":3.9, "BikeSpeedHoldTimestamp":3.9, } second = { "ChanID":3, "BikeCadenceEventTimeLSB":1, "BikeCadenceEventTimeMSB":0, "CumulativeCadenceRevolutionCountLSB":2, "CumulativeCadenceRevolutionCountMSB":0, "BikeSpeedEventTimeLSB":3, "BikeSpeedEventTimeMSB":0, "CumulativeSpeedRevolutionCountLSB":4, "CumulativeSpeedRevolutionCountMSB":0, "Timestamp":3.9, } output = parse_sample_interpret(second,output) logging.debug(output) expected = { "BikeCadenceEventTime":65536*2+1, "CumulativeCadenceRevolutionCount":65536*2+2, "BikeSpeedEventTime":65536*2+3, "CumulativeSpeedRevolutionCount":65536*2+4, "Timestamp":3.9, "BikeCadence":92160.0, "BikeSpeed":1280.0, "BikeCadenceHoldTimestamp":3.9, "BikeSpeedHoldTimestamp":3.9, } self.assertEqual(output, expected)
def test_parse_sample_interpret_holding(self): expected = { "BikeCadenceEventTime":1280, "CumulativeCadenceRevolutionCount":258, "BikeSpeedEventTime":259, "CumulativeSpeedRevolutionCount":260, "Timestamp":3.9, "BikeCadence":60, "BikeSpeed":0, "BikeCadenceHoldTimestamp":3.9, "BikeSpeedHoldTimestamp":3.9, } output = expected #logging.debug(output) self.assertEqual(expected,output) #Add onesecond for speed and one revolution. second = { "ChanID":3, "BikeCadenceEventTimeLSB":0, "BikeCadenceEventTimeMSB":5, "CumulativeCadenceRevolutionCountLSB":2, "CumulativeCadenceRevolutionCountMSB":1, "BikeSpeedEventTimeLSB":3, "BikeSpeedEventTimeMSB":5, "CumulativeSpeedRevolutionCountLSB":5, "CumulativeSpeedRevolutionCountMSB":1, "Timestamp":3.9, } output = parse_sample_interpret(second,output) expected = { "BikeCadenceEventTime":1280, "CumulativeCadenceRevolutionCount":258, "BikeSpeedEventTime":1283, "CumulativeSpeedRevolutionCount":261, "Timestamp":3.9, "BikeCadence":60, "BikeSpeed":1.0, "BikeCadenceHoldTimestamp":3.9, "BikeSpeedHoldTimestamp":3.9, } #logging.debug(output) self.assertEqual(expected,output) #Repeated message. second['Timestamp'] = 4.5 output = parse_sample_interpret(second,output) expected = { "BikeCadenceEventTime":1280, "CumulativeCadenceRevolutionCount":258, "BikeSpeedEventTime":1283, "CumulativeSpeedRevolutionCount":261, "Timestamp":4.5, "BikeCadence":60, "BikeSpeed":1.0, "BikeCadenceHoldTimestamp":3.9, "BikeSpeedHoldTimestamp":3.9, } #logging.debug(output) self.assertEqual(expected,output) #Repeated message no more holding second['Timestamp'] = 5.2 output = parse_sample_interpret(second,output) expected = { "BikeCadenceEventTime":1280, "CumulativeCadenceRevolutionCount":258, "BikeSpeedEventTime":1283, "CumulativeSpeedRevolutionCount":261, "Timestamp":5.2, "BikeCadence":0.0, "BikeSpeed":0.0, "BikeCadenceHoldTimestamp":5.2, "BikeSpeedHoldTimestamp":5.2, } #logging.debug(output) self.assertEqual(expected,output) #Repeat - hold speed. second = { "ChanID":3, "BikeCadenceEventTimeLSB":0, "BikeCadenceEventTimeMSB":5, "CumulativeCadenceRevolutionCountLSB":2, "CumulativeCadenceRevolutionCountMSB":1, "BikeSpeedEventTimeLSB":3, "BikeSpeedEventTimeMSB":9, "CumulativeSpeedRevolutionCountLSB":6, "CumulativeSpeedRevolutionCountMSB":1, "Timestamp":6.1, } output = parse_sample_interpret(second,output) expected = { "BikeCadenceEventTime":1280, "CumulativeCadenceRevolutionCount":258, "BikeSpeedEventTime":2307, "CumulativeSpeedRevolutionCount":262, "Timestamp":6.1, "BikeCadence":0.0, "BikeSpeed":1.0, "BikeCadenceHoldTimestamp":5.2, "BikeSpeedHoldTimestamp":6.1, } logging.debug(output) self.assertEqual(expected,output) second['Timestamp'] = 7.4 output = parse_sample_interpret(second,output) expected = { "BikeCadenceEventTime":1280, "CumulativeCadenceRevolutionCount":258, "BikeSpeedEventTime":2307, "CumulativeSpeedRevolutionCount":262, "Timestamp":7.4, "BikeCadence":0.0, "BikeSpeed":0.0, "BikeCadenceHoldTimestamp":7.4, "BikeSpeedHoldTimestamp":7.4, } logging.debug(output) self.assertEqual(expected,output)
def test_parse_sample_interpret_speedcadencecaluculation(self): first = { "ChanID":3, "BikeCadenceEventTimeLSB":0, "BikeCadenceEventTimeMSB":1, "CumulativeCadenceRevolutionCountLSB":1, "CumulativeCadenceRevolutionCountMSB":1, "BikeSpeedEventTimeLSB":3, "BikeSpeedEventTimeMSB":1, "CumulativeSpeedRevolutionCountLSB":4, "CumulativeSpeedRevolutionCountMSB":1, "Timestamp":3.9, } output = parse_sample_interpret(first) expected = { "BikeCadenceEventTime":256, "CumulativeCadenceRevolutionCount":257, "BikeSpeedEventTime":259, "CumulativeSpeedRevolutionCount":260, "Timestamp":3.9, "BikeCadence":0, "BikeSpeed":0, "BikeCadenceHoldTimestamp":3.9, "BikeSpeedHoldTimestamp":3.9, } self.assertEqual(output, expected) output = parse_sample_interpret(first,output) #logging.debug(output) #logging.debug(expected) self.assertEqual(output,expected) #Add onesecond for cadence and one revolution. second = { "ChanID":3, "BikeCadenceEventTimeLSB":0, "BikeCadenceEventTimeMSB":5, "CumulativeCadenceRevolutionCountLSB":2, "CumulativeCadenceRevolutionCountMSB":1, "BikeSpeedEventTimeLSB":3, "BikeSpeedEventTimeMSB":1, "CumulativeSpeedRevolutionCountLSB":4, "CumulativeSpeedRevolutionCountMSB":1, "Timestamp":3.9, } output = parse_sample_interpret(second,output) expected = { "BikeCadenceEventTime":1280, "CumulativeCadenceRevolutionCount":258, "BikeSpeedEventTime":259, "CumulativeSpeedRevolutionCount":260, "Timestamp":3.9, "BikeCadence":60, "BikeSpeed":0, "BikeCadenceHoldTimestamp":3.9, "BikeSpeedHoldTimestamp":3.9, } #logging.debug(output) self.assertEqual(expected,output)