# Copyright (c) IMToolkit Development Team
# This toolkit is released under the MIT License, see LICENSE.txt
import unittest
import numpy as np
from imtoolkit.IMCode import IMCode
[docs]class IMCodeTest(unittest.TestCase):
[docs] def test_M2(self):
np.set_printoptions(linewidth=np.inf)
codes = IMCode("opt", 2, 1, 2, "PSK", 1, 1).codes
np.testing.assert_almost_equal(codes, np.array([[[1.],[0.]],[[0.],[1.]]]))
codes = IMCode("dic", 4, 1, 4, "PSK", 1, 1).codes
np.testing.assert_almost_equal(codes, np.array([[[1.],[0.],[0.],[0.]],[[0.],[1.],[0.],[0.]],[[0.],[0.],[1.],[0.]],[[0.],[0.],[0.],[1.]]]))
codes = IMCode("wen", 4, 2, 4, "PSK", 1, 1).codes
np.testing.assert_almost_equal(codes, np.array([[[0.70710678],[0.70710678],[0.],[0.]],[[0.],[0.70710678],[0.70710678],[0.]],[[0.],[0.],[0.70710678],[0.70710678]],[[0.70710678],[0.],[0.],[0.70710678]]]))
codes = IMCode("dic", 16, 8, 16, "PSK", 2, 1).codes
self.assertAlmostEqual(np.mean(codes), 0.0)
if __name__ == '__main__':
unittest.main()