text: import unittest
  
  from d3m import container, utils
  from d3m.metadata import base as metadata_base
  from tods.detection_algorithm.MatrixProfile import MatrixProfilePrimitive
  
  
  
  class MatrixProfileTest(unittest.TestCase):
      def test_basic(self):
          self.maxDiff = None
          main = container.DataFrame({'a': [1., 2., 3., 4., 5., 6., 7., 8., 9.], 
                                      'b': [2., 3., 4., 5., 6., 7., 8., 9., 10.], 
                                      'c': [3., 4., 5., 6., 7., 8., 9., 10., 11.]},
                                      columns=['a', 'b', 'c'],
                                      generate_metadata=True)
  
          #print(main)
  
  
          self.assertEqual(utils.to_json_structure(main.metadata.to_internal_simple_structure()), [{
              'selector': [],
              'metadata': {
                  # 'top_level': 'main',
                  'schema': metadata_base.CONTAINER_SCHEMA_VERSION,
                  'structural_type': 'd3m.container.pandas.DataFrame',
                  'semantic_types': ['https://metadata.datadrivendiscovery.org/types/Table'],
                  'dimension': {
                      'name': 'rows',
                      'semantic_types': ['https://metadata.datadrivendiscovery.org/types/TabularRow'],
                      'length': 9,
                  },
              },
          }, {
              'selector': ['__ALL_ELEMENTS__'],
              'metadata': {
                  'dimension': {
                      'name': 'columns',
                      'semantic_types': ['https://metadata.datadrivendiscovery.org/types/TabularColumn'],
                      'length': 3,
                  },
              },
          }, {
              'selector': ['__ALL_ELEMENTS__', 0],
              'metadata': {'structural_type': 'numpy.float64', 'name': 'a'},
          }, {
              'selector': ['__ALL_ELEMENTS__', 1],
              'metadata': {'structural_type': 'numpy.float64', 'name': 'b'},
          }, {
              'selector': ['__ALL_ELEMENTS__', 2],
              'metadata': {'structural_type': 'numpy.float64', 'name': 'c'}
          }])
  
  
          self.assertIsInstance(main, container.DataFrame)
  
  
          hyperparams_class = MatrixProfilePrimitive.metadata.get_hyperparams()
          hyperparams = hyperparams_class.defaults()
          hyperparams = hyperparams.replace({'window_size': 3})
          #print(type(main))
          primitive = MatrixProfilePrimitive(hyperparams=hyperparams)
          primitive.set_training_data(inputs=main)
          primitive.fit()
          new_main = primitive.produce(inputs=main).value
          #print("new_main.drop([1,2]) ",new_main.drop(columns=[1,2]))
          print(new_main)       
  
  
          self.assertEqual(utils.to_json_structure(main.metadata.to_internal_simple_structure()), [{
              'selector': [],
              'metadata': {
                  # 'top_level': 'main',
                  'schema': metadata_base.CONTAINER_SCHEMA_VERSION,
                  'structural_type': 'd3m.container.pandas.DataFrame',
                  'semantic_types': ['https://metadata.datadrivendiscovery.org/types/Table'],
                  'dimension': {
                      'name': 'rows',
                      'semantic_types': ['https://metadata.datadrivendiscovery.org/types/TabularRow'],
                      'length': 9,
                  },
              },
          }, {
              'selector': ['__ALL_ELEMENTS__'],
              'metadata': {
                  'dimension': {
                      'name': 'columns',
                      'semantic_types': ['https://metadata.datadrivendiscovery.org/types/TabularColumn'],
                      'length': 3,
                  },
              },
          }, {
              'selector': ['__ALL_ELEMENTS__', 0],
              'metadata': {'structural_type': 'numpy.float64', 'name': 'a'},
          }, {
              'selector': ['__ALL_ELEMENTS__', 1],
              'metadata': {'structural_type': 'numpy.float64', 'name': 'b'},
          }, {
              'selector': ['__ALL_ELEMENTS__', 2],
              'metadata': {'structural_type': 'numpy.float64', 'name': 'c'}
          }])
  
  
  if __name__ == '__main__':
      unittest.main()
  