code: def test_sinusoidal_encoding(self):
      data = [self._create_timestamp() for _ in range(100)]
      normalizer = DatetimeNormalizerEncoder(sinusoidal=True)
      normalizer.prepare([])
  
      results = normalizer.encode(data)
      null = np.full_like(results, 0.5)
      self.assertTrue(
          np.allclose(results, null, atol=0.5)
      )  # every value in [0, 1]
  
      recons = normalizer.decode(results)
      for a, b in zip(recons, data):
          self.assertEqual(a, b)
  
file_path: lightwood/tests/unit_tests/encoder/date/test_datetime.py
imports: import unittest
  from datetime import datetime
  import numpy
  import pandas
  import torch
  from lightwood.encoder.datetime.datetime import DatetimeEncoder
  from lightwood.encoder.datetime.datetime_sin_normalizer import DatetimeNormalizerEncoder
label_desc: Use image node_id 5 for calling the TestDatetimeEncoder obj's underlying member method code with example usage: obj.test_sinusoidal_encoding() without return types