Beispiel #1
0
 def test_write_csv_2AF_desordre(self):
     
     GPSTime.setReadFormat("4Y-2M-2D 2h:2m:2s")
     track = Track()
     p1 = Obs(ENUCoords(0, 0), GPSTime.readTimestamp('2020-01-01 10:00:00'))
     track.addObs(p1)
     p2 = Obs(ENUCoords(0, 1), GPSTime.readTimestamp('2020-01-01 10:00:01'))
     track.addObs(p2)
     p3 = Obs(ENUCoords(1, 1), GPSTime.readTimestamp('2020-01-01 10:00:02'))
     track.addObs(p3)
     p4 = Obs(ENUCoords(1, 2), GPSTime.readTimestamp('2020-01-01 10:00:03'))
     track.addObs(p4)
     p5 = Obs(ENUCoords(2, 2), GPSTime.readTimestamp('2020-01-01 10:00:04'))
     track.addObs(p5)
     
     track.addAnalyticalFeature(Analytics.speed)
     track.compute_abscurv()
     
     csvpath = os.path.join(self.resource_path, 'data/test/test_write_csv_2AF_desordre.wkt')
     af_names = ['speed', 'abs_curv']
     FileWriter.writeToFile(track, csvpath, id_E=3, id_N=2, id_U=0, id_T=1, h=1, 
                            separator=";", af_names=af_names)
     contents = open(csvpath).read()
     
     txt  = "#srid: ENU\n"
     txt += "#U;time;N;E;speed;abs_curv\n"
     txt += "0.000;01/01/2020 10:00:00;0.000;0.000;1.0;0\n"
     txt += "0.000;01/01/2020 10:00:01;1.000;0.000;0.7071067811865476;1.0\n"
     txt += "0.000;01/01/2020 10:00:02;1.000;1.000;0.7071067811865476;2.0\n"
     txt += "0.000;01/01/2020 10:00:03;2.000;1.000;0.7071067811865476;3.0\n"
     txt += "0.000;01/01/2020 10:00:04;2.000;2.000;1.0;4.0\n"
     self.assertEqual(contents.strip(), txt.strip())
Beispiel #2
0
class TestQuery(TestCase):

    __epsilon = 0.001

    def setUp(self):

        GPSTime.setReadFormat("4Y-2M-2D 2h:2m:2s")

        self.track = Track()
        p1 = Obs(ENUCoords(0, 0), GPSTime.readTimestamp('2020-01-01 10:00:00'))
        self.track.addObs(p1)
        p2 = Obs(ENUCoords(0, 1), GPSTime.readTimestamp('2020-01-01 10:00:01'))
        self.track.addObs(p2)
        p3 = Obs(ENUCoords(1, 1), GPSTime.readTimestamp('2020-01-01 10:00:02'))
        self.track.addObs(p3)
        p4 = Obs(ENUCoords(1, 2), GPSTime.readTimestamp('2020-01-01 10:00:03'))
        self.track.addObs(p4)
        p5 = Obs(ENUCoords(2, 2), GPSTime.readTimestamp('2020-01-01 10:00:04'))
        self.track.addObs(p5)
        p6 = Obs(ENUCoords(2, 3), GPSTime.readTimestamp('2020-01-01 10:00:06'))
        self.track.addObs(p6)
        p7 = Obs(ENUCoords(3, 3), GPSTime.readTimestamp('2020-01-01 10:00:08'))
        self.track.addObs(p7)
        p8 = Obs(ENUCoords(3, 4), GPSTime.readTimestamp('2020-01-01 10:00:10'))
        self.track.addObs(p8)
        p9 = Obs(ENUCoords(4, 4), GPSTime.readTimestamp('2020-01-01 10:00:12'))
        self.track.addObs(p9)

        # self.track.plotAsMarkers()

    def test_selectstar(self):

        self.track.addAnalyticalFeature(Analytics.speed)
        trace = self.track.query("SELECT *")
        self.assertEqual(9, trace.size())
        self.assertTrue(trace.hasAnalyticalFeature('speed'))
        self.assertLessEqual(
            (0.7071 - trace.getObsAnalyticalFeatures('speed', 1)[0]),
            self.__epsilon, 'erreur de vitesse obs1')
        self.assertLessEqual(
            (0.2070 - trace.getObsAnalyticalFeatures('speed', 8)[0]),
            self.__epsilon, 'erreur de vitesse obs8')

    def test_selectwhere1(self):

        self.track.addAnalyticalFeature(Analytics.speed)
        trace = self.track.query("SELECT * WHERE speed < 0.5")
        self.assertEqual(4, trace.size())
        self.assertTrue(trace.hasAnalyticalFeature('speed'))
        self.assertLessEqual(
            (0.2070 - trace.getObsAnalyticalFeatures('speed', 0)[0]),
            self.__epsilon, 'erreur de vitesse 0')
        self.assertLessEqual(
            (0.2070 - trace.getObsAnalyticalFeatures('speed', 1)[0]),
            self.__epsilon, 'erreur de vitesse 1')
        self.assertLessEqual(
            (0.2070 - trace.getObsAnalyticalFeatures('speed', 2)[0]),
            self.__epsilon, 'erreur de vitesse 2')
        self.assertLessEqual(
            (0.2070 - trace.getObsAnalyticalFeatures('speed', 3)[0]),
            self.__epsilon, 'erreur de vitesse 3')

    def test_selectwhere2(self):

        self.track.addAnalyticalFeature(Analytics.speed)
        trace = self.track.query("SELECT * WHERE speed > 0.5")
        self.assertEqual(4, trace.size())
        self.assertTrue(trace.hasAnalyticalFeature('speed'))
        self.assertLessEqual(
            (0.7071 - trace.getObsAnalyticalFeatures('speed', 0)[0]),
            self.__epsilon, 'erreur de vitesse 0')
        self.assertLessEqual(
            (0.7071 - trace.getObsAnalyticalFeatures('speed', 1)[0]),
            self.__epsilon, 'erreur de vitesse 1')
        self.assertLessEqual(
            (0.7071 - trace.getObsAnalyticalFeatures('speed', 2)[0]),
            self.__epsilon, 'erreur de vitesse 2')
        self.assertLessEqual(
            (0.7071 - trace.getObsAnalyticalFeatures('speed', 3)[0]),
            self.__epsilon, 'erreur de vitesse 3')