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 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 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 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 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 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))
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) parser = MileSplitParser() parser.loadData('../resources/test.csv') gdf = GarminDataFilter(parser) clustersByCentroid = km.cluster(gdf) for k, v in clustersByCentroid.items(): print "------------------" print "cluster data avg values" k.prettyPrint() print "%d cluster members"%len(v) if(len(v) == 1): v[0].prettyPrint