@@ -18,6 +18,10 @@ const assert = require('assert');
1818const rclnodejs = require ( '../index.js' ) ;
1919const deepEqual = require ( 'deep-equal' ) ;
2020
21+ function isTypedArray ( v ) {
22+ return ArrayBuffer . isView ( v ) && ! ( v instanceof DataView ) ;
23+ }
24+
2125describe ( 'Rclnodejs message translation: complex types' , function ( ) {
2226 this . timeout ( 60 * 1000 ) ;
2327
@@ -98,43 +102,22 @@ describe('Rclnodejs message translation: complex types', function () {
98102 pkg : 'sensor_msgs' ,
99103 type : 'JointState' ,
100104 values : [
101- {
102- header : {
103- stamp : { sec : 11223 , nanosec : 44556 } ,
104- frame_id : '1234567x' ,
105- } ,
106- name : [ 'Willy' , 'Tacky' ] ,
107- position : [ 1 , 7 , 3 , 4 , 2 , 2 , 8 ] ,
108- velocity : [ 8 , 9 , 6 , 4 ] ,
109- effort : [ 1 , 0 , 2 , 6 , 7 ] ,
110- } ,
111105 {
112106 header : {
113107 stamp : { sec : 11223 , nanosec : 44556 } ,
114108 frame_id : '0001234567x' ,
115109 } ,
116110 name : [ 'Goodly' , 'Lovely' , 'Angel' , 'Neatly' , 'Perfect' , 'Tacky' ] ,
117- position : [ 1 , 23 , 7 , 3 , 4 , 2 , 2 , 8 ] ,
118- velocity : [ 1 , 9 , 8 , 9 , 6 , 4 ] ,
119- effort : [ 2 , 1 , 1 , 0 , 2 , 6 , 7 ] ,
111+ position : Float64Array . from ( [ 1 , 23 , 7 , 3 , 4 , 2 , 2 , 8 ] ) ,
112+ velocity : Float64Array . from ( [ 1 , 9 , 8 , 9 , 6 , 4 ] ) ,
113+ effort : Float64Array . from ( [ 2 , 1 , 1 , 0 , 2 , 6 , 7 ] ) ,
120114 } ,
121115 ] ,
122116 } ,
123117 {
124118 pkg : 'std_msgs' ,
125119 type : 'Float32MultiArray' ,
126120 values : [
127- {
128- layout : {
129- dim : [
130- { label : 'height' , size : 480 , stride : 921600 } ,
131- { label : 'width' , size : 640 , stride : 1920 } ,
132- { label : 'channel' , size : 3 , stride : 8 } ,
133- ] ,
134- data_offset : 1024 ,
135- } ,
136- data : [ 1.0 , 2.0 , 3.0 , 8.5 , 6.75 , 0.5 , - 0.25 ] ,
137- } ,
138121 {
139122 layout : {
140123 dim : [
@@ -152,17 +135,6 @@ describe('Rclnodejs message translation: complex types', function () {
152135 pkg : 'std_msgs' ,
153136 type : 'Int32MultiArray' ,
154137 values : [
155- {
156- layout : {
157- dim : [
158- { label : 'height' , size : 10 , stride : 600 } ,
159- { label : 'width' , size : 20 , stride : 60 } ,
160- { label : 'channel' , size : 3 , stride : 4 } ,
161- ] ,
162- data_offset : 0 ,
163- } ,
164- data : [ - 10 , 1 , 2 , 3 , 8 , 6 , 0 , - 25 ] , // Provide data via Array
165- } ,
166138 {
167139 layout : {
168140 dim : [
@@ -180,17 +152,6 @@ describe('Rclnodejs message translation: complex types', function () {
180152 pkg : 'std_msgs' ,
181153 type : 'Int16MultiArray' ,
182154 values : [
183- {
184- layout : {
185- dim : [
186- { label : 'height' , size : 10 , stride : 600 } ,
187- { label : 'width' , size : 20 , stride : 60 } ,
188- { label : 'channel' , size : 3 , stride : 4 } ,
189- ] ,
190- data_offset : 0 ,
191- } ,
192- data : [ - 10 , 1 , 2 , 3 , 8 , 6 , 0 , - 25 ] , // Provide data via Array
193- } ,
194155 {
195156 layout : {
196157 dim : [
@@ -208,17 +169,6 @@ describe('Rclnodejs message translation: complex types', function () {
208169 pkg : 'std_msgs' ,
209170 type : 'Int8MultiArray' ,
210171 values : [
211- {
212- layout : {
213- dim : [
214- { label : 'height' , size : 10 , stride : 600 } ,
215- { label : 'width' , size : 20 , stride : 60 } ,
216- { label : 'channel' , size : 3 , stride : 4 } ,
217- ] ,
218- data_offset : 0 ,
219- } ,
220- data : [ - 10 , 1 , 2 , 3 , 8 , 6 , 0 , - 25 ] , // Provide data via Array
221- } ,
222172 {
223173 layout : {
224174 dim : [
@@ -250,11 +200,11 @@ describe('Rclnodejs message translation: complex types', function () {
250200 channels : [
251201 {
252202 name : 'rgb' ,
253- values : [ 0.0 , 1.5 , 2.0 , 3.75 ] ,
203+ values : Float32Array . from ( [ 0.0 , 1.5 , 2.0 , 3.75 ] ) ,
254204 } ,
255205 {
256206 name : 'intensity' ,
257- values : [ 10.0 , 21.5 , 2.0 , 3.75 ] ,
207+ values : Float32Array . from ( [ 10.0 , 21.5 , 2.0 , 3.75 ] ) ,
258208 } ,
259209 ] ,
260210 } ,
0 commit comments