@@ -1558,18 +1558,28 @@ def test__merge(self):
15581558 assert_arrays_equal (mergeddata24 , targdata24 )
15591559
15601560 def test_patch_simple (self ):
1561- signal1 = AnalogSignal ([0 ,1 ,2 ,3 ]* pq .s , sampling_rate = 1 * pq .Hz )
1562- signal2 = AnalogSignal ([4 ,5 ,6 ]* pq .s , sampling_rate = 1 * pq .Hz ,
1561+ signal1 = AnalogSignal ([0 ,1 ,2 ,3 ]* pq .V , sampling_rate = 1 * pq .Hz )
1562+ signal2 = AnalogSignal ([4 ,5 ,6 ]* pq .V , sampling_rate = 1 * pq .Hz ,
15631563 t_start = signal1 .t_stop + signal1 .sampling_period )
15641564
15651565 result = signal1 .patch (signal2 )
15661566 assert_array_equal (np .arange (7 ).reshape ((- 1 , 1 )), result .magnitude )
15671567 for attr in signal1 ._necessary_attrs :
15681568 self .assertEqual (getattr (signal1 , attr [0 ], None ), getattr (result , attr [0 ], None ))
15691569
1570+ def test_patch_inverse_signals (self ):
1571+ signal1 = AnalogSignal ([0 ,1 ,2 ,3 ]* pq .V , sampling_rate = 1 * pq .Hz )
1572+ signal2 = AnalogSignal ([4 ,5 ,6 ]* pq .V , sampling_rate = 1 * pq .Hz ,
1573+ t_start = signal1 .t_stop + signal1 .sampling_period )
1574+
1575+ result = signal2 .patch (signal1 )
1576+ assert_array_equal (np .arange (7 ).reshape ((- 1 , 1 )), result .magnitude )
1577+ for attr in signal1 ._necessary_attrs :
1578+ self .assertEqual (getattr (signal1 , attr [0 ], None ), getattr (result , attr [0 ], None ))
1579+
15701580 def test_patch_no_overlap (self ):
1571- signal1 = AnalogSignal ([0 ,1 ,2 ,3 ]* pq .s , sampling_rate = 1 * pq .Hz )
1572- signal2 = AnalogSignal ([4 ,5 ,6 ]* pq .s , sampling_rate = 1 * pq .Hz ,
1581+ signal1 = AnalogSignal ([0 ,1 ,2 ,3 ]* pq .V , sampling_rate = 1 * pq .Hz )
1582+ signal2 = AnalogSignal ([4 ,5 ,6 ]* pq .V , sampling_rate = 1 * pq .Hz ,
15731583 t_start = 10 * pq .s + signal1 .sampling_period )
15741584
15751585 with self .assertRaises (MergeError ):
@@ -1578,8 +1588,8 @@ def test_patch_no_overlap(self):
15781588 def test_patch_multi_trace (self ):
15791589 data1 = np .arange (4 ).reshape (2 ,2 )
15801590 data2 = np .arange (4 ,8 ).reshape (2 ,2 )
1581- signal1 = AnalogSignal (data1 * pq .s , sampling_rate = 1 * pq .Hz )
1582- signal2 = AnalogSignal (data2 * pq .s , sampling_rate = 1 * pq .Hz ,
1591+ signal1 = AnalogSignal (data1 * pq .V , sampling_rate = 1 * pq .Hz )
1592+ signal2 = AnalogSignal (data2 * pq .V , sampling_rate = 1 * pq .Hz ,
15831593 t_start = signal1 .t_stop + signal1 .sampling_period )
15841594
15851595 result = signal1 .patch (signal2 )
@@ -1589,30 +1599,70 @@ def test_patch_multi_trace(self):
15891599 self .assertEqual (getattr (signal1 , attr [0 ], None ), getattr (result , attr [0 ], None ))
15901600
15911601 def test_patch_overwrite_true (self ):
1592- signal1 = AnalogSignal ([0 ,1 ,2 ,3 ]* pq .s , sampling_rate = 1 * pq .Hz )
1593- signal2 = AnalogSignal ([4 ,5 ,6 ]* pq .s , sampling_rate = 1 * pq .Hz ,
1602+ signal1 = AnalogSignal ([0 ,1 ,2 ,3 ]* pq .V , sampling_rate = 1 * pq .Hz )
1603+ signal2 = AnalogSignal ([4 ,5 ,6 ]* pq .V , sampling_rate = 1 * pq .Hz ,
15941604 t_start = signal1 .t_stop )
15951605
15961606 result = signal1 .patch (signal2 , overwrite = True )
15971607 assert_array_equal (np .array ([0 ,1 ,2 ,4 ,5 ,6 ]).reshape ((- 1 , 1 )), result .magnitude )
15981608
15991609 def test_patch_overwrite_false (self ):
1600- signal1 = AnalogSignal ([0 ,1 ,2 ,3 ]* pq .s , sampling_rate = 1 * pq .Hz )
1601- signal2 = AnalogSignal ([4 ,5 ,6 ]* pq .s , sampling_rate = 1 * pq .Hz ,
1610+ signal1 = AnalogSignal ([0 ,1 ,2 ,3 ]* pq .V , sampling_rate = 1 * pq .Hz )
1611+ signal2 = AnalogSignal ([4 ,5 ,6 ]* pq .V , sampling_rate = 1 * pq .Hz ,
16021612 t_start = signal1 .t_stop )
16031613
16041614 result = signal1 .patch (signal2 , overwrite = False )
16051615 assert_array_equal (np .array ([0 ,1 ,2 ,3 ,5 ,6 ]).reshape ((- 1 , 1 )), result .magnitude )
16061616
1617+ def test_patch_padding_False (self ):
1618+ signal1 = AnalogSignal ([0 ,1 ,2 ,3 ]* pq .V , sampling_rate = 1 * pq .Hz )
1619+ signal2 = AnalogSignal ([4 ,5 ,6 ]* pq .V , sampling_rate = 1 * pq .Hz ,
1620+ t_start = 10 * pq .s )
1621+
1622+ with self .assertRaises (MergeError ):
1623+ result = signal1 .patch (signal2 , overwrite = False , padding = False )
1624+
1625+ def test_patch_padding_True (self ):
1626+ signal1 = AnalogSignal ([0 ,1 ,2 ,3 ]* pq .V , sampling_rate = 1 * pq .Hz )
1627+ signal2 = AnalogSignal ([4 ,5 ,6 ]* pq .V , sampling_rate = 1 * pq .Hz ,
1628+ t_start = signal1 .t_stop + 3 * signal1 .sampling_period )
1629+
1630+ result = signal1 .patch (signal2 , overwrite = False , padding = True )
1631+ assert_array_equal (np .array ([0 ,1 ,2 ,3 ,np .NaN ,np .NaN ,np .NaN ,4 ,5 ,6 ]).reshape ((- 1 , 1 )),
1632+ result .magnitude )
1633+
1634+ def test_patch_padding_quantity (self ):
1635+ signal1 = AnalogSignal ([0 ,1 ,2 ,3 ]* pq .V , sampling_rate = 1 * pq .Hz )
1636+ signal2 = AnalogSignal ([4 ,5 ,6 ]* pq .V , sampling_rate = 1 * pq .Hz ,
1637+ t_start = signal1 .t_stop + 3 * signal1 .sampling_period )
1638+
1639+ result = signal1 .patch (signal2 , overwrite = False , padding = - 1 * pq .mV )
1640+ assert_array_equal (np .array ([0 ,1 ,2 ,3 ,- 1e-3 ,- 1e-3 ,- 1e-3 ,4 ,5 ,6 ]).reshape ((- 1 , 1 )),
1641+ result .magnitude )
1642+
1643+ def test_patch_padding_invalid (self ):
1644+ signal1 = AnalogSignal ([0 ,1 ,2 ,3 ]* pq .V , sampling_rate = 1 * pq .Hz )
1645+ signal2 = AnalogSignal ([4 ,5 ,6 ]* pq .V , sampling_rate = 1 * pq .Hz ,
1646+ t_start = signal1 .t_stop + 3 * signal1 .sampling_period )
1647+
1648+ with self .assertRaises (ValueError ):
1649+ result = signal1 .patch (signal2 , overwrite = False , padding = 1 )
1650+ with self .assertRaises (ValueError ):
1651+ result = signal1 .patch (signal2 , overwrite = False , padding = [1 ])
1652+ with self .assertRaises (ValueError ):
1653+ result = signal1 .patch (signal2 , overwrite = False , padding = 'a' )
1654+ with self .assertRaises (ValueError ):
1655+ result = signal1 .patch (signal2 , overwrite = False , padding = np .array ([1 ,2 ,3 ]))
1656+
16071657 def test_patch_array_annotations (self ):
16081658 array_anno1 = {'first' : ['a' ,'b' ]}
16091659 array_anno2 = {'first' : ['a' ,'b' ],
16101660 'second' : ['c' ,'d' ]}
16111661 data1 = np .arange (4 ).reshape (2 ,2 )
16121662 data2 = np .arange (4 ,8 ).reshape (2 ,2 )
1613- signal1 = AnalogSignal (data1 * pq .s , sampling_rate = 1 * pq .Hz ,
1663+ signal1 = AnalogSignal (data1 * pq .V , sampling_rate = 1 * pq .Hz ,
16141664 array_annotations = array_anno1 )
1615- signal2 = AnalogSignal (data2 * pq .s , sampling_rate = 1 * pq .Hz ,
1665+ signal2 = AnalogSignal (data2 * pq .V , sampling_rate = 1 * pq .Hz ,
16161666 t_start = signal1 .t_stop + signal1 .sampling_period ,
16171667 array_annotations = array_anno2 )
16181668
0 commit comments