def testInitializeCentroids(self): parser = MileSplitParser() parser.loadData('../resources/test.csv') gdf = GarminDataFilter(parser) self.assertNotEqual(None,gdf) centroids = gdf.initializeCentroids(4) self.assertEqual(4,len(centroids))
def testGenerateRandomCentroids(self): parser = MileSplitParser() parser.loadData('../resources/test.csv') gdf = GarminDataFilter(parser) self.assertNotEqual(None,gdf) cent1 = gdf.generateRandomCentroid("foobar") cent2 = gdf.generateRandomCentroid("foobar1") self.assertFalse(gdf.inErrorRange(cent1, cent2))
def testGetTracksToLaps(self): msp = MileSplitParser() self.file.seek(self.trackParserPos) tracksToLaps = msp.getTracksToLaps(self.file) self.assertFalse(tracksToLaps == None) self.assertEquals(16,len(tracksToLaps)) startTrack = 0 for track in tracksToLaps.keys(): self.assertTrue(track > startTrack) startTrack = track
def testGetTracksToLaps(self): msp = MileSplitParser() self.file.seek(self.trackParserPos) tracksToLaps = msp.getTracksToLaps(self.file) self.assertFalse(tracksToLaps == None) self.assertEquals(16, len(tracksToLaps)) startTrack = 0 for track in tracksToLaps.keys(): self.assertTrue(track > startTrack) startTrack = track
def testInitializeGarminDataFilter(self): parser = MileSplitParser() parser.loadData('../resources/test.csv') gdf = GarminDataFilter(parser) self.assertNotEqual(None,gdf) assembledData = gdf.getAssembledData() self.assertNotEqual(None,assembledData) self.assertEqual(11,len(assembledData)) for data in assembledData: self.assertNotEqual(clusterdata.UNSET,data.netGained) self.assertNotEqual(clusterdata.UNSET,data.netLost)
def testGetTrackPoints(self): self.file.seek(self.trackPointParserPos,0) msp = MileSplitParser() trackPoints = msp.getTrackPoints(self.file) self.assertTrue(trackPoints != None) tp1= trackPoints[0] #1,2011-01-05T15:00:46Z,47.5859201,-122.2451507,79.4460449,0.0000000,73,,Absent, self.assertEquals(ClusterData.toDateTime('2011-01-05T15:00:46Z'),tp1.time) self.assertEquals(47.5859201,tp1.lat) self.assertEquals(-122.2451507,tp1.long) self.assertEquals(ClusterData.metersToFeet(79.4460449),tp1.altitude) self.assertEquals(0,tp1.distance) self.assertEquals(73,tp1.heartRate)
def testGetTrackPoints(self): self.file.seek(self.trackPointParserPos, 0) msp = MileSplitParser() trackPoints = msp.getTrackPoints(self.file) self.assertTrue(trackPoints != None) tp1 = trackPoints[0] #1,2011-01-05T15:00:46Z,47.5859201,-122.2451507,79.4460449,0.0000000,73,,Absent, self.assertEquals(ClusterData.toDateTime('2011-01-05T15:00:46Z'), tp1.time) self.assertEquals(47.5859201, tp1.lat) self.assertEquals(-122.2451507, tp1.long) self.assertEquals(ClusterData.metersToFeet(79.4460449), tp1.altitude) self.assertEquals(0, tp1.distance) self.assertEquals(73, tp1.heartRate)
def testGetNormalizedMeasure(self): parser = MileSplitParser() parser.loadData('../resources/test.csv') gdf = GarminDataFilter(parser) self.assertNotEqual(None,gdf) lo = gdf.loRanges[3] hi = gdf.hiRanges[3] range = hi - lo val = lo + range/2 retVal = gdf.getNormalizedMeasure(100, val, 3) self.assertEquals(50.0,retVal)
def testLoadData(self): msp = MileSplitParser() msp.loadData('../resources/January_Test.tsv') laps = msp.getData(MileSplitParser.LAPS) self.assertNotEquals(None, laps) self.assertNotEquals(0, len(laps)) for lap in laps.values(): self.assertNotEqual(0, lap.id) self.assertNotEqual(0, lap.activityId) self.assertNotEqual(None, lap.lap) self.assertNotEqual(0, lap.totalTime) self.assertNotEqual(0, lap.totalDistance) self.assertNotEqual(0, lap.avgHR) lapsToTracks = msp.getData(MileSplitParser.TRACKSTOLAPS) self.assertNotEquals(None, lapsToTracks) self.assertNotEquals(0, len(lapsToTracks)) trackPoints = msp.getData(MileSplitParser.TRACKPOINTS) self.assertNotEquals(None, trackPoints) self.assertNotEquals(0, len(trackPoints)) for trackPoint in trackPoints: self.assertNotEquals(0, trackPoint.id) self.assertNotEquals(0, trackPoint.trackId) self.assertNotEquals(None, trackPoint.time) self.assertNotEquals(0, trackPoint.lat) self.assertNotEquals(0, trackPoint.long) self.assertNotEquals(0, trackPoint.altitude) self.assertNotEquals(0, trackPoint.heartRate)
def testGetLaps(self): msp = MileSplitParser() self.file.seek(self.lapParserPos,0) laps = msp.getLaps(self.file) self.assertFalse(laps == None) self.assertTrue(11,len(laps)) lap38 = laps[38] self.assertEquals(38,lap38.id) self.assertEquals('2011-01-05T15:00:46Z',lap38.lap) lap48 = laps[48] self.assertEquals(48,lap48.id) self.assertEquals(4,lap48.activityId) self.file.seek(self.lapParserPos,0) laps = msp.getLaps(self.file,True) # exclude manual laps self.assertFalse(laps == None) self.assertTrue(2,len(laps))
def testGetLaps(self): msp = MileSplitParser() self.file.seek(self.lapParserPos, 0) laps = msp.getLaps(self.file) self.assertFalse(laps == None) self.assertTrue(11, len(laps)) lap38 = laps[38] self.assertEquals(38, lap38.id) self.assertEquals('2011-01-05T15:00:46Z', lap38.lap) lap48 = laps[48] self.assertEquals(48, lap48.id) self.assertEquals(4, lap48.activityId) self.file.seek(self.lapParserPos, 0) laps = msp.getLaps(self.file, True) # exclude manual laps self.assertFalse(laps == None) self.assertTrue(2, len(laps))
def testInErrorRange(self): parser = MileSplitParser() parser.loadData('../resources/test.csv') gdf = GarminDataFilter(parser) self.assertNotEqual(None,gdf) lap1 = GarminLap.asLap(1,600,100,120,12,30) lap2 = GarminLap.asLap(2,400,300,150,123,300) self.assertFalse(gdf.inErrorRange(lap1, lap2)) lap1 = GarminLap.asLap(1,600,100,120,12,30) lap2 = GarminLap.asLap(2,600,100,120,12,30) self.assertTrue(gdf.inErrorRange(lap1, lap2))
def testLoadData(self): msp = MileSplitParser() msp.loadData('../resources/January_Test.tsv') laps = msp.getData(MileSplitParser.LAPS); self.assertNotEquals(None,laps) self.assertNotEquals(0,len(laps)) for lap in laps.values(): self.assertNotEqual(0,lap.id) self.assertNotEqual(0,lap.activityId) self.assertNotEqual(None,lap.lap) self.assertNotEqual(0,lap.totalTime) self.assertNotEqual(0,lap.totalDistance) self.assertNotEqual(0,lap.avgHR) lapsToTracks = msp.getData(MileSplitParser.TRACKSTOLAPS) self.assertNotEquals(None,lapsToTracks) self.assertNotEquals(0,len(lapsToTracks)) trackPoints = msp.getData(MileSplitParser.TRACKPOINTS) self.assertNotEquals(None,trackPoints) self.assertNotEquals(0,len(trackPoints)) for trackPoint in trackPoints: self.assertNotEquals(0,trackPoint.id) self.assertNotEquals(0,trackPoint.trackId) self.assertNotEquals(None,trackPoint.time) self.assertNotEquals(0,trackPoint.lat) self.assertNotEquals(0,trackPoint.long) self.assertNotEquals(0,trackPoint.altitude) self.assertNotEquals(0,trackPoint.heartRate)
def testGetActivityIds(self): msp = MileSplitParser() self.file.seek(self.activityParserPos, 0) activitiesToIds = msp.getActivityIDs(self.file, []) self.assertTrue(activitiesToIds != None) self.assertEquals(1, len(activitiesToIds)) self.file.seek(self.activityParserPos, 0) activitiesToIds = msp.getActivityIDs(self.file, ['Biking']) self.assertTrue(activitiesToIds != None) self.assertEquals(1, len(activitiesToIds)) self.file.seek(self.activityParserPos, 0) activitiesToIds = msp.getActivityIDs(self.file, ['Running']) self.assertTrue(activitiesToIds != None) self.assertEquals(0, len(activitiesToIds))
def testGetActivityIds(self): msp = MileSplitParser() self.file.seek(self.activityParserPos,0) activitiesToIds = msp.getActivityIDs(self.file, []) self.assertTrue(activitiesToIds != None) self.assertEquals(1,len(activitiesToIds)) self.file.seek(self.activityParserPos,0) activitiesToIds = msp.getActivityIDs(self.file, ['Biking']) self.assertTrue(activitiesToIds != None) self.assertEquals(1,len(activitiesToIds)) self.file.seek(self.activityParserPos,0) activitiesToIds = msp.getActivityIDs(self.file, ['Running']) self.assertTrue(activitiesToIds != None) self.assertEquals(0,len(activitiesToIds))
''' Created on Jan 11, 2012 @author: jacoba100 ''' import sys from milesplitparser import MileSplitParser from garmindatafilter import GarminDataFilter import kmeans if __name__ == '__main__': msp = MileSplitParser() if(len(sys.argv) < 2): print "clusterDriver.py [input file] {comma separated filter list}" sys.exit(1) allFilters = [] if(len(sys.argv) == 3): filterBy=sys.argv[2]; allFilters = filterBy.split(',') else: allFilters = [] allData = msp.getData(sys.argv[1]) km = kmeans.KmeansClusterer(4)