Example #1
0
    def test_load(self):
        """Test dump_to_array() can load data."""

        # Load UnitTestMessageA data.
        data = [msg for msg in log_data if msg['name'] == 'UnitTestMessageA']

        # Load logged data into a list.
        pth = os.path.join(LOG_PATH, 'UnitTestMessageA.log')
        arr = dump_to_array(pth, ['timestamp', 'data'])

        # Ensure loaded data is valid.
        self.assertEqual(arr.ndim, 2)
        self.assertEqual(len(arr), len(data))
        for i, item in enumerate(data):
            self.assertAlmostEqual(arr[i, 0], item['data'])
            self.assertAlmostEqual(arr[i, 1], item['timestamp'])
Example #2
0
    def test_load_time(self):
        """Test dump_to_array() can load a time range of data."""

        # Load UnitTestMessageB.
        data = [msg for msg in log_data if msg['name'] == 'UnitTestMessageB']

        # Load logged data into a list.
        pth = os.path.join(LOG_PATH, 'UnitTestMessageB.log')
        min_time = 0.15
        max_time = 0.95
        arr = dump_to_array(pth, ['timestamp'],
                            min_time=min_time,
                            max_time=max_time)

        # Ensure loaded data is valid.
        self.assertEqual(arr.ndim, 2)
        self.assertEqual(len(arr), 8)
        for i, item in enumerate(arr):
            self.assertAlmostEqual(arr[i], data[i + 1]['timestamp'])
Example #3
0
    def test_bad_input(self):
        """Test dump_to_array() bad input."""

        bad_path = os.path.join(LOG_PATH, 'UnitTestMessageC.log')
        log_file = os.path.join(LOG_PATH, 'UnitTestMessageA.log')

        # Catch invalid paths.
        with self.assertRaises(IOError):
            dump_to_array(bad_path, ['data'])

        # Catch non iterable keys.
        with self.assertRaises(TypeError):
            dump_to_array(log_file, 5)

        # Catch non-string key.
        with self.assertRaises(TypeError):
            dump_to_array(log_file, ['data', 5])

        # Catch non-existent key
        with self.assertRaises(KeyError):
            dump_to_array(log_file, ['error'])
Example #4
0
    def test_no_data(self):
        """Test dump_to_array() no data."""

        log_path = os.path.join(LOG_PATH, 'UnitTestMessageA.log')
        array = dump_to_array(log_path, ['timestamp'], min_time=30.0)
        self.assertEqual(array, None)
Example #5
0
    def test_non_numeric(self):
        """Test dump_to_array() throws an exception on non-numeric types."""

        with self.assertRaises(TypeError):
            dump_to_array(os.path.join(LOG_PATH, 'UnitTestMessageA.log'),
                          ['name'])
Example #6
0
    def test_mixed_type(self):
        """Test dump_to_array() mixed types."""

        with self.assertRaises(TypeError):
            dump_to_array(LOG_PATH, ['timestamp', 'data'])