mirror of
https://github.com/nosqlbench/nosqlbench.git
synced 2025-02-25 18:55:28 -06:00
adding unit test for hdf5 file binding
This commit is contained in:
parent
f53870d58b
commit
eeb6cb6b60
@ -0,0 +1,35 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2023 nosqlbench
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
package io.nosqlbench.virtdata.library.basics.shared.from_long.to_vector.embedding;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class DoubleEmbeddingGenerator implements EmbeddingGenerator {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Float> generateEmbeddingFrom(Object o, int[] dims) {
|
||||||
|
// in this case o will always be double[1][x]
|
||||||
|
double[] vector = ((double[][]) o)[0];
|
||||||
|
Float[] vector2 = new Float[vector.length];
|
||||||
|
for (int i = 0; i < vector.length; i++) {
|
||||||
|
vector2[i] = (float) vector[i];
|
||||||
|
}
|
||||||
|
return List.of(vector2);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -38,6 +38,12 @@ public class EmbeddingGeneratorFactory {
|
|||||||
}
|
}
|
||||||
return generators.get(type);
|
return generators.get(type);
|
||||||
}
|
}
|
||||||
|
case "double" -> {
|
||||||
|
if (!generators.containsKey(type)) {
|
||||||
|
generators.put(type, new DoubleEmbeddingGenerator());
|
||||||
|
}
|
||||||
|
return generators.get(type);
|
||||||
|
}
|
||||||
default -> throw new RuntimeException("Unknown embedding type: " + type);
|
default -> throw new RuntimeException("Unknown embedding type: " + type);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -17,5 +17,29 @@
|
|||||||
|
|
||||||
package io.nosqlbench.virtdata.library.basics.shared.from_long.to_vector;
|
package io.nosqlbench.virtdata.library.basics.shared.from_long.to_vector;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public class HdfFileToVectorTest {
|
public class HdfFileToVectorTest {
|
||||||
|
@Test
|
||||||
|
public void testHdfFileToVector() {
|
||||||
|
final float[][] results = new float[][]{
|
||||||
|
{0.0f,1.0f,2.0f,3.0f,4.0f,5.0f,6.0f},
|
||||||
|
{2.0f,1.6666666f,2.4f,3.2857144f,4.2222223f,5.181818f,6.1538463f},
|
||||||
|
{4.0f,2.3333333f,2.8f,3.5714285f,4.4444447f,5.3636365f,6.3076925f},
|
||||||
|
{6.0f,3.0f,3.2f,3.857143f,4.6666665f,5.5454545f,6.4615383f}
|
||||||
|
};
|
||||||
|
|
||||||
|
HdfFileToVector hdfFileToVector = new HdfFileToVector(
|
||||||
|
"src/test/resources/data/h5ex_t_float.h5", "/DS1");
|
||||||
|
|
||||||
|
List<Float> read;
|
||||||
|
for (int i = 0; i < 4; i++) {
|
||||||
|
read = hdfFileToVector.apply(i);
|
||||||
|
for (int j = 0; j < 7; j++) {
|
||||||
|
assert (read.get(j) == results[i][j]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
BIN
virtdata-lib-basics/src/test/resources/data/h5ex_t_float.h5
Normal file
BIN
virtdata-lib-basics/src/test/resources/data/h5ex_t_float.h5
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user