コード例 #1
0
    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)
コード例 #2
0
    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)
コード例 #3
0
    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)