Exemple #1
0
 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))
Exemple #2
0
    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
Exemple #4
0
    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
Exemple #5
0
 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)
Exemple #7
0
    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)
Exemple #8
0
 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)
Exemple #9
0
    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))
Exemple #11
0
    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))
Exemple #12
0
 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)
Exemple #14
0
    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)