Select Git revision
-
Jan Petermann authoredJan Petermann authored
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
test_db.py 2.02 KiB
import unittest
import numpy as np
from openqlab.conversion import db
class TestDB(unittest.TestCase):
def test_db_to_lin(self):
self.assertAlmostEqual(db.to_lin(20), 100)
self.assertAlmostEqual(db.to_lin(100), 1e10)
self.assertAlmostEqual(db.to_lin(3), 1.99526, places=5)
self.assertAlmostEqual(db.to_lin(0), 1)
self.assertAlmostEqual(db.to_lin(-20), 0.01)
self.assertAlmostEqual(db.to_lin(-100), 1e-10)
self.assertAlmostEqual(db.to_lin(-3), 0.501187, places=5)
self.assertAlmostEqual(db.to_lin(-0), 1)
def test_lin_to_db(self):
self.assertAlmostEqual(db.from_lin(100), 20)
self.assertAlmostEqual(db.from_lin(1e10), 100)
self.assertAlmostEqual(db.from_lin(1.99526), 3, places=4)
self.assertAlmostEqual(db.from_lin(1), 0)
self.assertAlmostEqual(db.from_lin(0.01), -20)
self.assertAlmostEqual(db.from_lin(1e-10), -100)
self.assertAlmostEqual(db.from_lin(0.501187), -3, places=4)
def test_mean(self):
lin_data = np.array([1, 2, 3, 4, 5, 6])
db_data = db.from_lin(lin_data)
self.assertAlmostEqual(db.to_lin(db.mean(db_data)), 3.5)
def test_subtract(self):
lin_data1 = np.array([5, 3, 1e4, 8, 5, 6])
lin_data2 = np.array([1, 2, 1e3, 4, 4, 5])
result = np.array([4, 1, 9e3, 4, 1, 1])
db_data1 = db.from_lin(lin_data1)
db_data2 = db.from_lin(lin_data2)
np.testing.assert_array_almost_equal(
db.to_lin(db.subtract(db_data1, db_data2)), result, decimal=3
)
def test_average(self):
lin_data = np.array([1, 2, 3, 4, 5, 6, 7])
db_data = db.from_lin(lin_data)
self.assertAlmostEqual(db.to_lin(db.average(db_data)), 4)
def test_dBm2Vrms(self):
dbm_data = np.array([0, 1, 3, 6, 10, 100, -3, -10])
dbv_data = np.array(
[0.224, 0.251, 0.316, 0.446, 0.707, 22360.680, 0.158, 0.071]
)
np.testing.assert_array_almost_equal(db.dBm2Vrms(dbm_data), dbv_data, decimal=3)