コード例 #1
0
ファイル: util_test.py プロジェクト: ppasler/current-adas
 def setUp(self):
     self.header = ["Timestamp", "X", "Y", "Z"]
     self.data = np.array([
         [1456820379.00, 1, 2, 3],
         [1456820379.25, 1, 2, 4],
         [1456820379.50, 1, 2, 5],
         [1456820379.75, 1, 2, 6],
         [1456820380.00, 1, 2, 7],
         [1456820380.25, 1, 2, 8],
         [1456820380.50, 1, 2, 9],
         [1456820380.75, 1, 2, 10],
         [1456820381.00, 1, 2, 11]
     ])
     self.eegData = EEGTableUtil(self.header, self.data)
コード例 #2
0
ファイル: util_test.py プロジェクト: ppasler/current-adas
class TestEEGTableData(unittest.TestCase):

    def setUp(self):
        self.header = ["Timestamp", "X", "Y", "Z"]
        self.data = np.array([
            [1456820379.00, 1, 2, 3],
            [1456820379.25, 1, 2, 4],
            [1456820379.50, 1, 2, 5],
            [1456820379.75, 1, 2, 6],
            [1456820380.00, 1, 2, 7],
            [1456820380.25, 1, 2, 8],
            [1456820380.50, 1, 2, 9],
            [1456820380.75, 1, 2, 10],
            [1456820381.00, 1, 2, 11]
        ])
        self.eegData = EEGTableUtil(self.header, self.data)

    def test_getSamplingRate(self):
        # 9 values within 2 seconds = sampling rate 4.5
        self.assertTrue(self.eegData.getSamplingRate() == 4.5)

    def test_getColumn(self):
        for i, header in enumerate(self.header[1:3]):
            column = self.eegData.getColumn(header)
            # make sure data columns only contain X:1, Y:2
            self.assertTrue(countOcc(column, i+1) == len(self.data))

    def test_getColumn_withOffset(self):
        offset = 3
        column = self.eegData.getColumn("Z", offset)
        self.assertTrue(len(column) == len(self.data)-offset)
        self.assertTrue(sameEntries(column, [6, 7, 8, 9, 10, 11]))

    def test_getColumn_withOffsetAndLimit(self):
        offset = 3
        limit = 7
        column = self.eegData.getColumn("Z", offset, limit)
        self.assertTrue(len(column) == limit-offset)
        self.assertTrue(sameEntries(column, [6, 7, 8, 9]))

    def test_getColumn_withOffsetAndLength(self):
        offset = 2
        length = 5
        column = self.eegData.getColumn("Z", offset, length=length)
        self.assertTrue(len(column) == length)
        self.assertTrue(sameEntries(column, [5, 6, 7, 8, 9]))        

    def test_getColumn_withOffsetAndLimitAndLength(self):
        offset = 1
        limit = 7
        # length is ignored in this case
        length = 3
        column = self.eegData.getColumn("Z", offset, limit, length=length)
        self.assertTrue(len(column) == limit-offset)
        self.assertTrue(sameEntries(column, [4, 5, 6, 7, 8, 9]))     

    def test_getTimeIndex(self):
        self.assertTrue(self.eegData.getTimeIndex(1456820379.00) == 0)
        self.assertTrue(self.eegData.getTimeIndex(1456820379.75) == 3)
        self.assertTrue(self.eegData.getTimeIndex(1456820381) == 8)

    def test_getTimeIndex_notExactly(self):
        self.assertTrue(self.eegData.getTimeIndex(1456820379.00) == 0)
        self.assertTrue(self.eegData.getTimeIndex(1456820379.01) == 1)
        self.assertTrue(self.eegData.getTimeIndex(1456820379.5) == 2)
        self.assertTrue(self.eegData.getTimeIndex(1456820379.51) == 3)
        self.assertTrue(self.eegData.getTimeIndex(1456820379.74) == 3)
        self.assertTrue(self.eegData.getTimeIndex(1456820379.75) == 3)
        self.assertTrue(self.eegData.getTimeIndex(1456820379.76) == 4)
        self.assertTrue(self.eegData.getTimeIndex(1456820381) == 8)

    def test_getTimeIndex_outOfRange(self):
        with self.assertRaises(ValueError):
            self.eegData.getTimeIndex(1456820378.00)

        with self.assertRaises(ValueError):
            self.eegData.getTimeIndex(1456820382.00)

    def test_getColumnByTime(self):
        column = self.eegData.getColumnByTime("Z", 1456820379.00, 1456820379.75)
        self.assertTrue(sameEntries(column, [3, 4, 5]))

        column2 = self.eegData.getColumnByTime("Z", 1456820379.00, 1456820381)
        self.assertTrue(sameEntries(column2, [3, 4, 5, 6, 8, 8, 9, 10]))

    def test_getColumnByTime_notExactly(self):
        column = self.eegData.getColumnByTime("Z", 1456820379.00, 1456820379.75)
        self.assertTrue(sameEntries(column, [3, 4, 5]))
        
        column2 = self.eegData.getColumnByTime("Z", 1456820379.01, 1456820379.75)
        self.assertTrue(sameEntries(column2, [4, 5]))

        column3 = self.eegData.getColumnByTime("Z", 1456820379.00, 1456820379.74)
        self.assertTrue(sameEntries(column3, [3, 4, 5]))

        column4 = self.eegData.getColumnByTime("Z", 1456820379.00, 1456820379.76)
        self.assertTrue(sameEntries(column4, [3, 4, 5, 6])) 


    def test_getColumnByTime_outOfRange(self):
        with self.assertRaises(ValueError):
            self.eegData.getColumnByTime("Z", 1456820378.00, 1456820379.75)

        with self.assertRaises(ValueError):
            self.eegData.getColumnByTime("Z", 1456820379.00, 1456820382.0)

    def test__switchTime(self):
        x, y = 1, 2
        a, b = self.eegData._switchTime(x, y)
        self.assertEqual(x, b)
        self.assertEqual(y, a)

    def test__timeInData(self):
        data = self.eegData.getColumn("Timestamp")
        self.assertTrue(self.eegData._timeInData(data, 1456820379.75))
        self.assertFalse(self.eegData._timeInData(data, 1456820378))
        self.assertFalse(self.eegData._timeInData(data, 1456820382))

    def test_getValueCount(self):
        count = self.eegData.getValueCount()
        self.assertEquals(count, 9)