def test__merge(self): data1 = np.arange(1000.0, 1066.0).reshape((11, 6)) * pq.uV data2 = np.arange(2.0, 2.033, 0.001).reshape((11, 3)) * pq.mV times1 = np.arange(11.0) * pq.ms times2 = np.arange(1.0, 12.0) * pq.ms arr_ann1 = { 'anno1': np.arange(6), 'anno2': ['a', 'b', 'c', 'd', 'e', 'f'] } arr_ann2 = {'anno1': np.arange(100, 103), 'anno3': []} signal1 = IrregularlySampledSignal(times1, data1, name='signal1', description='test signal', file_origin='testfile.txt', array_annotations=arr_ann1) signal2 = IrregularlySampledSignal(times1, data2, name='signal2', description='test signal', file_origin='testfile.txt', array_annotations=arr_ann2) signal3 = IrregularlySampledSignal(times2, data2, name='signal3', description='test signal', file_origin='testfile.txt') with warnings.catch_warnings(record=True) as w: merged12 = signal1.merge(signal2) self.assertTrue(len(w) == 1) self.assertEqual(w[0].category, UserWarning) self.assertSequenceEqual( str(w[0].message), "The following array annotations were " "omitted, because they were only present" " in one of the merged objects: " "['anno2'] from the one that was merged " "into and ['anno3'] from the one that " "was merged into the other") target_data12 = np.hstack([data1, data2.rescale(pq.uV)]) assert_neo_object_is_compliant(signal1) assert_neo_object_is_compliant(signal2) assert_neo_object_is_compliant(merged12) self.assertAlmostEqual(merged12[5, 0], 1030.0 * pq.uV, 9) self.assertAlmostEqual(merged12[5, 6], 2015.0 * pq.uV, 9) self.assertEqual(merged12.name, 'merge(signal1, signal2)') self.assertEqual(merged12.file_origin, 'testfile.txt') assert_arrays_equal(merged12.array_annotations['anno1'], np.array([0, 1, 2, 3, 4, 5, 100, 101, 102])) self.assertIsInstance(merged12.array_annotations, ArrayDict) assert_arrays_equal(merged12.magnitude, target_data12) self.assertRaises(MergeError, signal1.merge, signal3)
def test__merge(self): data1 = np.arange(1000.0, 1066.0).reshape((11, 6)) * pq.uV data2 = np.arange(2.0, 2.033, 0.001).reshape((11, 3)) * pq.mV times1 = np.arange(11.0) * pq.ms times2 = np.arange(1.0, 12.0) * pq.ms arr_ann1 = {'anno1': np.arange(6), 'anno2': ['a', 'b', 'c', 'd', 'e', 'f']} arr_ann2 = {'anno1': np.arange(100, 103), 'anno3': []} signal1 = IrregularlySampledSignal(times1, data1, name='signal1', description='test signal', file_origin='testfile.txt', array_annotations=arr_ann1) signal2 = IrregularlySampledSignal(times1, data2, name='signal2', description='test signal', file_origin='testfile.txt', array_annotations=arr_ann2) signal3 = IrregularlySampledSignal(times2, data2, name='signal3', description='test signal', file_origin='testfile.txt') with warnings.catch_warnings(record=True) as w: merged12 = signal1.merge(signal2) self.assertTrue(len(w) == 1) self.assertEqual(w[0].category, UserWarning) self.assertSequenceEqual(str(w[0].message), "The following array annotations were " "omitted, because they were only present" " in one of the merged objects: " "['anno2'] from the one that was merged " "into and ['anno3'] from the one that " "was merged into the other") target_data12 = np.hstack([data1, data2.rescale(pq.uV)]) assert_neo_object_is_compliant(signal1) assert_neo_object_is_compliant(signal2) assert_neo_object_is_compliant(merged12) self.assertAlmostEqual(merged12[5, 0], 1030.0 * pq.uV, 9) self.assertAlmostEqual(merged12[5, 6], 2015.0 * pq.uV, 9) self.assertEqual(merged12.name, 'merge(signal1, signal2)') self.assertEqual(merged12.file_origin, 'testfile.txt') assert_arrays_equal(merged12.array_annotations['anno1'], np.array([0, 1, 2, 3, 4, 5, 100, 101, 102])) self.assertIsInstance(merged12.array_annotations, ArrayDict) assert_arrays_equal(merged12.magnitude, target_data12) self.assertRaises(MergeError, signal1.merge, signal3)
def test__merge(self): data1 = np.arange(1000.0, 1066.0).reshape((11, 6)) * pq.uV data2 = np.arange(2.0, 2.033, 0.001).reshape((11, 3)) * pq.mV times1 = np.arange(11.0) * pq.ms times2 = np.arange(1.0, 12.0) * pq.ms signal1 = IrregularlySampledSignal(times1, data1, name='signal1', description='test signal', file_origin='testfile.txt') signal2 = IrregularlySampledSignal(times1, data2, name='signal2', description='test signal', file_origin='testfile.txt') signal3 = IrregularlySampledSignal(times2, data2, name='signal3', description='test signal', file_origin='testfile.txt') merged12 = signal1.merge(signal2) target_data12 = np.hstack([data1, data2.rescale(pq.uV)]) assert_neo_object_is_compliant(signal1) assert_neo_object_is_compliant(signal2) assert_neo_object_is_compliant(merged12) self.assertAlmostEqual(merged12[5, 0], 1030.0 * pq.uV, 9) self.assertAlmostEqual(merged12[5, 6], 2015.0 * pq.uV, 9) self.assertEqual(merged12.name, 'merge(signal1, signal2)') self.assertEqual(merged12.file_origin, 'testfile.txt') assert_arrays_equal(merged12.magnitude, target_data12) self.assertRaises(MergeError, signal1.merge, signal3)