@@ -115,112 +115,122 @@ void testCmpdAtt() throws Exception {
115115 }
116116 }
117117
118- // @Test
119- // void testCpxcmpdAtt() throws Exception {
120- // try (SeekableByteChannel channel = ResourceLoader.loadResourceAsChannel("h5ex_t/att/h5ex_t_cpxcmpdatt.h5")) {
121- // HdfFileReader reader = new HdfFileReader(channel).readFile();
122- // HdfDataHolder holder = getAttributeHolder(reader, "/DS1", "A1");
123- // assertEquals(1, holder.getDimensionality());
124- // assertArrayEquals(new int[]{2}, holder.getDimensions());
125- // HdfCompound[] compounds = holder.getAll(HdfCompound[].class);
126- // assertEquals(2, compounds.length);
127- // // First compound
128- // List<HdfCompoundMember> members0 = compounds[0].getMembers();
129- // assertEquals(6, members0.size());
130- // // Sensors (vlen of compound)
131- // HdfData sensorsData0 = members0.get(0).getInstance(HdfData.class);
132- // HdfData[] sensorsArray0 = (HdfData[]) sensorsData0.getInstance(Object.class);
133- // assertEquals(4, sensorsArray0.length);
134- // // Check first sensor
135- // HdfCompound sensor0 = (HdfCompound) sensorsArray0[0];
136- // List<HdfCompoundMember> sensorMembers0 = sensor0.getMembers();
137- // assertEquals(1153L, sensorMembers0.get(0).getInstance(Long.class));
138- // assertEquals("Exterior (static)", sensorMembers0.get(1).getInstance(String.class));
139- // assertEquals(53.23, sensorMembers0.get(2).getInstance(Double.class), 0.001);
140- // assertEquals(24.57, sensorMembers0.get(3).getInstance(Double.class), 0.001);
141- // // Second sensor
142- // HdfCompound sensor1 = (HdfCompound) sensorsArray0[1];
143- // List<HdfCompoundMember> sensorMembers1 = sensor1.getMembers();
144- // assertEquals(1184L, sensorMembers1.get(0).getInstance(Long.class));
145- // assertEquals("Intake", sensorMembers1.get(1).getInstance(String.class));
146- // assertEquals(55.12, sensorMembers1.get(2).getInstance(Double.class), 0.001);
147- // assertEquals(22.95, sensorMembers1.get(3).getInstance(Double.class), 0.001);
148- // // Third sensor
149- // HdfCompound sensor2 = (HdfCompound) sensorsArray0[2];
150- // List<HdfCompoundMember> sensorMembers2 = sensor2.getMembers();
151- // assertEquals(1027L, sensorMembers2.get(0).getInstance(Long.class));
152- // assertEquals("Intake manifold", sensorMembers2.get(1).getInstance(String.class));
153- // assertEquals(103.55, sensorMembers2.get(2).getInstance(Double.class), 0.001);
154- // assertEquals(31.23, sensorMembers2.get(3).getInstance(Double.class), 0.001);
155- // // Fourth sensor
156- // HdfCompound sensor3 = (HdfCompound) sensorsArray0[3];
157- // List<HdfCompoundMember> sensorMembers3 = sensor3.getMembers();
158- // assertEquals(1313L, sensorMembers3.get(0).getInstance(Long.class));
159- // assertEquals("Exhaust manifold", sensorMembers3.get(1).getInstance(String.class));
160- // assertEquals(1252.89, sensorMembers3.get(2).getInstance(Double.class), 0.001);
161- // assertEquals(84.11, sensorMembers3.get(3).getInstance(Double.class), 0.001);
162- // // Name
163- // assertEquals("Airplane", members0.get(1).getInstance(String.class));
164- // // Color
165- // assertEquals("Green", members0.get(2).getInstance(String.class));
166- // // Location
167- // HdfData[] location0 = members0.get(3).getInstance(HdfData[].class);
168- // double[] tValues = new double[]{-103234.21, 422638.78, 5996.43};
169- // for (int i = 0; i < location0.length; i++) {
170- // assertEquals(tValues[i], location0[i].getInstance(Double.class), 0.001);
171- // }
172- // // Group
173- // assertEquals("/Air_Vehicles", members0.get(4).getInstance(String.class));
118+ @ Test
119+ void testCpxcmpdAtt () throws Exception {
120+ try (SeekableByteChannel channel = ResourceLoader .loadResourceAsChannel ("h5ex_t/att/h5ex_t_cpxcmpdatt.h5" )) {
121+ HdfFileReader reader = new HdfFileReader (channel ).readFile ();
122+ HdfDataHolder holder = getAttributeHolder (reader , "/DS1" , "A1" );
123+ assertEquals (1 , holder .getDimensionality ());
124+ assertArrayEquals (new int []{2 }, holder .getDimensions ());
125+ HdfCompound [] compounds = holder .getAll (HdfCompound [].class );
126+ assertEquals (2 , compounds .length );
127+ // First compound
128+ List <HdfCompoundMember > members0 = compounds [0 ].getMembers ();
129+ assertEquals (6 , members0 .size ());
130+ // Sensors (vlen of compound)
131+ HdfData sensorsData0 = members0 .get (0 ).getInstance (HdfData .class );
132+ HdfData [] sensorsArray0 = (HdfData []) sensorsData0 .getInstance (Object .class );
133+ assertEquals (4 , sensorsArray0 .length );
134+ // Check first sensor
135+ HdfCompound sensor0 = (HdfCompound ) sensorsArray0 [0 ];
136+ List <HdfCompoundMember > sensorMembers0 = sensor0 .getMembers ();
137+ assertEquals (1153L , sensorMembers0 .get (0 ).getInstance (Long .class ));
138+ assertEquals ("Exterior (static)" , sensorMembers0 .get (1 ).getInstance (String .class ));
139+ assertEquals (53.23 , sensorMembers0 .get (2 ).getInstance (Double .class ), 0.001 );
140+ assertEquals (24.57 , sensorMembers0 .get (3 ).getInstance (Double .class ), 0.001 );
141+ // Second sensor
142+ HdfCompound sensor1 = (HdfCompound ) sensorsArray0 [1 ];
143+ List <HdfCompoundMember > sensorMembers1 = sensor1 .getMembers ();
144+ assertEquals (1184L , sensorMembers1 .get (0 ).getInstance (Long .class ));
145+ assertEquals ("Intake" , sensorMembers1 .get (1 ).getInstance (String .class ));
146+ assertEquals (55.12 , sensorMembers1 .get (2 ).getInstance (Double .class ), 0.001 );
147+ assertEquals (22.95 , sensorMembers1 .get (3 ).getInstance (Double .class ), 0.001 );
148+ // Third sensor
149+ HdfCompound sensor2 = (HdfCompound ) sensorsArray0 [2 ];
150+ List <HdfCompoundMember > sensorMembers2 = sensor2 .getMembers ();
151+ assertEquals (1027L , sensorMembers2 .get (0 ).getInstance (Long .class ));
152+ assertEquals ("Intake manifold" , sensorMembers2 .get (1 ).getInstance (String .class ));
153+ assertEquals (103.55 , sensorMembers2 .get (2 ).getInstance (Double .class ), 0.001 );
154+ assertEquals (31.23 , sensorMembers2 .get (3 ).getInstance (Double .class ), 0.001 );
155+ // Fourth sensor
156+ HdfCompound sensor3 = (HdfCompound ) sensorsArray0 [3 ];
157+ List <HdfCompoundMember > sensorMembers3 = sensor3 .getMembers ();
158+ assertEquals (1313L , sensorMembers3 .get (0 ).getInstance (Long .class ));
159+ assertEquals ("Exhaust manifold" , sensorMembers3 .get (1 ).getInstance (String .class ));
160+ assertEquals (1252.89 , sensorMembers3 .get (2 ).getInstance (Double .class ), 0.001 );
161+ assertEquals (84.11 , sensorMembers3 .get (3 ).getInstance (Double .class ), 0.001 );
162+ // Name
163+ assertEquals ("Airplane" , members0 .get (1 ).getInstance (String .class ));
164+ // Color
165+ assertEquals ("Green" , members0 .get (2 ).getInstance (String .class ));
166+ // Location
167+ HdfData [] location0 = members0 .get (3 ).getInstance (HdfData [].class );
168+ double [] tValues = new double []{-103234.21 , 422638.78 , 5996.43 };
169+ for (int i = 0 ; i < location0 .length ; i ++) {
170+ assertEquals (tValues [i ], location0 [i ].getInstance (Double .class ), 0.001 );
171+ }
172+ // Group
173+ assertEquals ("/Air_Vehicles" , members0 .get (4 ).getInstance (String .class ));
174+ // Surveyed areas
175+ HdfReferenceInstance surveyed0 = members0 .get (5 ).getInstance (HdfReferenceInstance .class );
176+ HdfDataHolder dataHolder = surveyed0 .getData ();
177+ tValues = new double []{67.3 , 67.4 , 67.6 };
178+ HdfData [] surveyData = (HdfData []) dataHolder .getArray ();
179+ for (int i = 0 ; i < surveyData .length ; i ++) {
180+ assertEquals (tValues [i ], surveyData [i ].getInstance (Double .class ), 0.001 );
181+ }
182+
174183// // Surveyed areas
175184// HdfData surveyData0 = members0.get(5).getInstance(HdfData.class);
176- // HdfData [] surveyArray0 = (HdfData []) surveyData0.getInstance(Object .class);
185+ // Double [] surveyArray0 = (Double []) surveyData0.getInstance(Double[] .class);
177186// tValues = new double[]{67.3, 67.4, 67.6};
178187// for (int i = 0; i < surveyArray0.length; i++) {
179- // assertEquals(tValues[i], surveyArray0[i].getInstance(Double.class), 0.001);
188+ //// assertEquals(tValues[i], surveyArray0[i].getInstance(Double.class), 0.001);
189+ // assertEquals(tValues[i], surveyArray0[i], 0.001);
180190// }
181- // // Second compound
182- // List<HdfCompoundMember> members1 = compounds[1].getMembers();
183- // assertEquals(6, members1.size());
184- // // Sensors (vlen of compound)
185- // HdfData sensorsData1 = members1.get(0).getInstance(HdfData.class);
186- // HdfData[] sensorsArray1 = (HdfData[]) sensorsData1.getInstance(Object.class);
187- // assertEquals(1, sensorsArray1.length);
188- // // First sensor
189- // HdfCompound sensor4 = (HdfCompound) sensorsArray1[0];
190- // List<HdfCompoundMember> sensorMembers4 = sensor4.getMembers();
191- // assertEquals(3244L, sensorMembers4.get(0).getInstance(Long.class));
192- // assertEquals("Roof", sensorMembers4.get(1).getInstance(String.class));
193- // assertEquals(83.82, sensorMembers4.get(2).getInstance(Double.class), 0.001);
194- // assertEquals(29.92, sensorMembers4.get(3).getInstance(Double.class), 0.001);
195- // // Name
196- // assertEquals("Automobile", members1.get(1).getInstance(String.class));
197- // // Color
198- // assertEquals("Red", members1.get(2).getInstance(String.class));
199- // // Location
200- // HdfData[] location1 = members1.get(3).getInstance(HdfData[].class);
201- // tValues = new double[]{326734.36, 221568.23, 432.36};
202- // for (int i = 0; i < location1.length; i++) {
203- // assertEquals(tValues[i], location1[i].getInstance(Double.class), 0.001);
204- // }
205- // // Group
206- // assertEquals("/Land_Vehicles", members1.get(4).getInstance(String.class));
207- // // Surveyed areas
208- // HdfData surveyData1 = members1.get(5).getInstance(HdfData .class);
209- // HdfData[][] surveyArray1 = (HdfData[][]) surveyData1.getInstance(Object.class );
210- // assertEquals(4, surveyArray1.length );
211- // double[][] tValuesd = {
212- // {70.2, 70.3, 70.4},
213- // {70.3 , 70.39999999999999 , 70.5},
214- // {70.4 , 70.5 , 70.60000000000001},
215- // {70.5 , 70.6 , 70.7}
216- // };
217- // for (int i = 0; i < surveyArray1 .length; i++) {
218- // for (int j = 0; j < surveyArray1 [i].length; j++) {
219- // assertEquals(tValuesd[i][j], surveyArray1 [i][j].getInstance(Double.class), 0.001);
220- // }
221- // }
222- // }
223- // }
191+ // Second compound
192+ List <HdfCompoundMember > members1 = compounds [1 ].getMembers ();
193+ assertEquals (6 , members1 .size ());
194+ // Sensors (vlen of compound)
195+ HdfData sensorsData1 = members1 .get (0 ).getInstance (HdfData .class );
196+ HdfData [] sensorsArray1 = (HdfData []) sensorsData1 .getInstance (Object .class );
197+ assertEquals (1 , sensorsArray1 .length );
198+ // First sensor
199+ HdfCompound sensor4 = (HdfCompound ) sensorsArray1 [0 ];
200+ List <HdfCompoundMember > sensorMembers4 = sensor4 .getMembers ();
201+ assertEquals (3244L , sensorMembers4 .get (0 ).getInstance (Long .class ));
202+ assertEquals ("Roof" , sensorMembers4 .get (1 ).getInstance (String .class ));
203+ assertEquals (83.82 , sensorMembers4 .get (2 ).getInstance (Double .class ), 0.001 );
204+ assertEquals (29.92 , sensorMembers4 .get (3 ).getInstance (Double .class ), 0.001 );
205+ // Name
206+ assertEquals ("Automobile" , members1 .get (1 ).getInstance (String .class ));
207+ // Color
208+ assertEquals ("Red" , members1 .get (2 ).getInstance (String .class ));
209+ // Location
210+ HdfData [] location1 = members1 .get (3 ).getInstance (HdfData [].class );
211+ tValues = new double []{326734.36 , 221568.23 , 432.36 };
212+ for (int i = 0 ; i < location1 .length ; i ++) {
213+ assertEquals (tValues [i ], location1 [i ].getInstance (Double .class ), 0.001 );
214+ }
215+ // Group
216+ assertEquals ("/Land_Vehicles" , members1 .get (4 ).getInstance (String .class ));
217+ // Surveyed areas
218+ HdfReferenceInstance surveyed1 = members1 .get (5 ).getInstance (HdfReferenceInstance .class );
219+ HdfDataHolder dataHolder1 = surveyed1 . getData ( );
220+ HdfData [][] surveyData1 = ( HdfData [][]) dataHolder1 . getArray ( );
221+ assertEquals ( 4 , surveyData1 . length );
222+ double [][] tValuesd = new double [ 4 ][];
223+ tValuesd [ 0 ] = new double [] {70.2 , 70.3 , 70.4 };
224+ tValuesd [ 1 ] = new double [] {70.3 , 70.4 , 70.5 };
225+ tValuesd [ 2 ] = new double [] {70.4 , 70.5 , 70.6 };
226+ tValuesd [ 3 ] = new double []{ 70.5 , 70.6 , 70.7 };
227+ for (int i = 0 ; i < surveyData1 .length ; i ++) {
228+ for (int j = 0 ; j < surveyData1 [i ].length ; j ++) {
229+ assertEquals (tValuesd [i ][j ], surveyData1 [i ][j ].getInstance (Double .class ), 0.001 );
230+ }
231+ }
232+ }
233+ }
224234
225235 @ Test
226236 void testEnumAtt () throws Exception {
0 commit comments