Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# Copyright (C) 2024 ASTRON (Netherlands Institute for Radio Astronomy)
# SPDX-License-Identifier: Apache-2.0
""" numpy JSON encoder tests """
import json
from datetime import datetime
from unittest import TestCase
import numpy
from lofar_stingray.utils import StingrayJsonEncoder
class TestStingrayJsonEncoder(TestCase):
"""Test cases of the StingrayJsonEncoder class"""
def test_serialize_np_array_simple(self):
"""Test if a numpy array is correctly serialized"""
data = numpy.full(2, 10)
json_data = json.dumps(data, cls=StingrayJsonEncoder)
deserialized = json.loads(json_data)
self.assertEqual([10, 10], deserialized)
def test_serialize_np_array_multi(self):
"""Test if a numpy array is correctly serialized"""
data = numpy.full((2, 2), 5)
json_data = json.dumps(data, cls=StingrayJsonEncoder)
deserialized = json.loads(json_data)
self.assertEqual([[5, 5], [5, 5]], deserialized)
def test_date(self):
"""Test if a datetime is correctly serialized"""
data = {"ts": datetime.fromisoformat("2024-06-02T03:51:41.110706+00:00")}
json_data = json.dumps(data, cls=StingrayJsonEncoder)
deserialized = json.loads(json_data)
self.assertEqual({"ts": "2024-06-02T03:51:41.110706+00:00"}, deserialized)