def test_str_plot(self): from rostopic import _str_plot from std_msgs.msg import String, Int32, Header from test_rostopic.msg import Simple, TVals, Floats, Arrays, Embed from roslib.rostime import Time, Duration from rostopic import create_field_filter # str plotting requires rospy time, we fix time to a set time import rospy.rostime rospy.rostime.set_rostime_initialized(True) rospy.rostime._set_rostime(Time(0, 1234)) r_time = Time(0, 5678) # prepare test values simple_v = Simple(1, -2, 3, -4, 'a', 7, 8, 9, 'bar') simple_d = '1234,1,-2,3,-4,a,7,8,9,bar' simple_nostr = '1234,1,-2,3,-4,a,7,8,9' arrays_v = Arrays([-1], chr(2) + chr(3), [3, 4, 5], [6, 7, 8], ['a1', 'b2', 'b3'], [Time(123, 456), Time(78, 90)]) arrays_d = '1234,-1,2,3,3,4,5,6,7,8,a1,b2,b3,123000000456,78000000090' arrays_nostr = '1234,-1,2,3,3,4,5,6,7,8,123000000456,78000000090' embed_v = Embed(simple_v, arrays_v) embed_d = simple_d + ',' + arrays_d[5:] # test current_time override m = String('foo') self.assertEquals('5678,foo', _str_plot(m, current_time=r_time, field_filter=None)) # test over all combinations of field filters f = create_field_filter(echo_nostr=False, echo_noarr=False) m = String() self.assertEquals("1234,", _str_plot(m, field_filter=f)) m = String('foo') self.assertEquals('1234,foo', _str_plot(m, field_filter=f)) m = TVals(Time(123, 456), Duration(78, 90)) v = _str_plot(m, field_filter=f) self.assertEquals('1234,123000000456,78000000090', v) m = simple_v self.assertEquals(simple_d, _str_plot(m, field_filter=f)) m = arrays_v self.assertEquals(arrays_d, _str_plot(m, field_filter=f)) m = embed_v self.assertEquals(embed_d, _str_plot(m, field_filter=f)) f = create_field_filter(echo_nostr=True, echo_noarr=False) m = String() self.assertEquals("1234,", _str_plot(m, field_filter=f)) m = String('foo') self.assertEquals('1234,', _str_plot(m, field_filter=f)) m = TVals(Time(123, 456), Duration(78, 90)) v = _str_plot(m, field_filter=f) self.assertEquals('1234,123000000456,78000000090', v) m = simple_v self.assertEquals(simple_nostr, _str_plot(m, field_filter=f)) m = arrays_v self.assertEquals(arrays_nostr, _str_plot(m, field_filter=f)) m = embed_v self.assertEquals(simple_nostr + arrays_nostr[4:], _str_plot(m, field_filter=f)) f = create_field_filter(echo_nostr=False, echo_noarr=True) m = String() self.assertEquals("1234,", _str_plot(m, field_filter=f)) m = String('foo') self.assertEquals('1234,foo', _str_plot(m, field_filter=f)) m = TVals(Time(123, 456), Duration(78, 90)) v = _str_plot(m, field_filter=f) self.assertEquals('1234,123000000456,78000000090', v) m = simple_v self.assertEquals(simple_d, _str_plot(m, field_filter=f)) m = arrays_v self.assertEquals('1234,', _str_plot(m, field_filter=f)) m = embed_v self.assertEquals(simple_d, _str_plot(m, field_filter=f)) f = create_field_filter(echo_nostr=True, echo_noarr=True) m = String() self.assertEquals("1234,", _str_plot(m, field_filter=f)) m = String('foo') self.assertEquals('1234,', _str_plot(m, field_filter=f)) m = TVals(Time(123, 456), Duration(78, 90)) v = _str_plot(m, field_filter=f) self.assertEquals('1234,123000000456,78000000090', v) m = simple_v self.assertEquals(simple_nostr, _str_plot(m, field_filter=f)) m = arrays_v self.assertEquals('1234,', _str_plot(m, field_filter=f)) m = embed_v self.assertEquals(simple_nostr, _str_plot(m, field_filter=f))
def test_str_plot(self): from rostopic import _str_plot from std_msgs.msg import String from test_rostopic.msg import Arrays, Embed, Simple, TVals from genpy import Time, Duration from rostopic import create_field_filter # str plotting requires rospy time, we fix time to a set time import rospy.rostime rospy.rostime.set_rostime_initialized(True) rospy.rostime._set_rostime(Time(0, 1234)) r_time = Time(0, 5678) # prepare test values simple_v = Simple(1, -2, 3, -4, 'a', 7, 8, 9, 'bar') simple_d = '1234,1,-2,3,-4,a,7,8,9,bar' simple_nostr = '1234,1,-2,3,-4,a,7,8,9' arrays_v = Arrays([-1], chr(2)+chr(3), [3, 4, 5], [6, 7, 8], ['a1', 'b2', 'b3'], [Time(123, 456), Time(78, 90)]) arrays_d = '1234,-1,2,3,3,4,5,6,7,8,a1,b2,b3,123000000456,78000000090' arrays_nostr = '1234,-1,2,3,3,4,5,6,7,8,123000000456,78000000090' embed_v = Embed(simple_v, arrays_v) embed_d = simple_d+','+arrays_d[5:] # test current_time override m = String('foo') self.assertEquals('5678,foo', _str_plot(m, current_time=r_time, field_filter=None)) # test over all combinations of field filters f = create_field_filter(echo_nostr=False, echo_noarr=False) m = String() self.assertEquals("1234,", _str_plot(m, field_filter=f)) m = String('foo') self.assertEquals('1234,foo', _str_plot(m, field_filter=f)) m = TVals(Time(123, 456), Duration(78, 90)) v = _str_plot(m, field_filter=f) self.assertEquals('1234,123000000456,78000000090', v) m = simple_v self.assertEquals(simple_d, _str_plot(m, field_filter=f)) m = arrays_v self.assertEquals(arrays_d, _str_plot(m, field_filter=f)) m = embed_v self.assertEquals(embed_d, _str_plot(m, field_filter=f)) f = create_field_filter(echo_nostr=True, echo_noarr=False) m = String() self.assertEquals("1234,", _str_plot(m, field_filter=f)) m = String('foo') self.assertEquals('1234,', _str_plot(m, field_filter=f)) m = TVals(Time(123, 456), Duration(78, 90)) v = _str_plot(m, field_filter=f) self.assertEquals('1234,123000000456,78000000090', v) m = simple_v self.assertEquals(simple_nostr, _str_plot(m, field_filter=f)) m = arrays_v self.assertEquals(arrays_nostr, _str_plot(m, field_filter=f)) m = embed_v self.assertEquals(simple_nostr+arrays_nostr[4:], _str_plot(m, field_filter=f)) f = create_field_filter(echo_nostr=False, echo_noarr=True) m = String() self.assertEquals("1234,", _str_plot(m, field_filter=f)) m = String('foo') self.assertEquals('1234,foo', _str_plot(m, field_filter=f)) m = TVals(Time(123, 456), Duration(78, 90)) v = _str_plot(m, field_filter=f) self.assertEquals('1234,123000000456,78000000090', v) m = simple_v self.assertEquals(simple_d, _str_plot(m, field_filter=f)) m = arrays_v self.assertEquals('1234,', _str_plot(m, field_filter=f)) m = embed_v self.assertEquals(simple_d, _str_plot(m, field_filter=f)) f = create_field_filter(echo_nostr=True, echo_noarr=True) m = String() self.assertEquals("1234,", _str_plot(m, field_filter=f)) m = String('foo') self.assertEquals('1234,', _str_plot(m, field_filter=f)) m = TVals(Time(123, 456), Duration(78, 90)) v = _str_plot(m, field_filter=f) self.assertEquals('1234,123000000456,78000000090', v) m = simple_v self.assertEquals(simple_nostr, _str_plot(m, field_filter=f)) m = arrays_v self.assertEquals('1234,', _str_plot(m, field_filter=f)) m = embed_v self.assertEquals(simple_nostr, _str_plot(m, field_filter=f))