Skip to content

Commit f99583e

Browse files
committed
New test for h5ex_t attributes.
1 parent 187061f commit f99583e

1 file changed

Lines changed: 111 additions & 101 deletions

File tree

src/test/java/org/hdf5javalib/examples/h5ex_t/att/H5exTAttReadTest.java

Lines changed: 111 additions & 101 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)