Files
hdf5/java/test/TestH5P.java
Allen Byrne b754dcb8f2 Move Java wrappers to FFM using jextract and java 25 (#5957)
FFM build requires Java 25, Jextract 25.
Generates FFM bindings during configure.
JNI is default when the requirements are not met or can be forced.
Presets added for maven and FFM - JNI is default selection.
Enhanced Maven options will work with either JNI or FFM
New Workflows for testing and maven uploads.
Extensive documentation changes for java.
2025-11-04 14:03:06 -06:00

1409 lines
46 KiB
Java

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* All rights reserved. *
* *
* This file is part of HDF5. The full HDF5 copyright notice, including *
* terms governing use, modification, and redistribution, is contained in *
* the LICENSE file, which can be found at the root of the source code *
* distribution tree, or in https://www.hdfgroup.org/licenses. *
* If you do not have access to either file, you may request a copy from *
* help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
package test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import java.io.File;
import hdf.hdf5lib.H5;
import hdf.hdf5lib.HDF5Constants;
import hdf.hdf5lib.exceptions.HDF5Exception;
import hdf.hdf5lib.exceptions.HDF5FunctionArgumentException;
import hdf.hdf5lib.exceptions.HDF5LibraryException;
import hdf.hdf5lib.structs.H5F_info2_t;
import org.junit.After;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TestName;
public class TestH5P {
@Rule
public TestName testname = new TestName();
private static final String H5_FILE = "testP.h5";
private static final int DIM_X = 4;
private static final int DIM_Y = 6;
long[] H5dims = {DIM_X, DIM_Y};
long H5fid = HDF5Constants.H5I_INVALID_HID;
long H5dsid = HDF5Constants.H5I_INVALID_HID;
long H5did = HDF5Constants.H5I_INVALID_HID;
long lapl_id = HDF5Constants.H5I_INVALID_HID;
long fapl_id = HDF5Constants.H5I_INVALID_HID;
long fcpl_id = HDF5Constants.H5I_INVALID_HID;
long ocpl_id = HDF5Constants.H5I_INVALID_HID;
long ocp_plist_id = HDF5Constants.H5I_INVALID_HID;
long lcpl_id = HDF5Constants.H5I_INVALID_HID;
long plapl_id = HDF5Constants.H5I_INVALID_HID;
long plist_id = HDF5Constants.H5I_INVALID_HID;
long gapl_id = HDF5Constants.H5I_INVALID_HID;
long gcpl_id = HDF5Constants.H5I_INVALID_HID;
long acpl_id = HDF5Constants.H5I_INVALID_HID;
private final void _deleteFile(String filename)
{
File file = new File(filename);
if (file.exists()) {
try {
file.delete();
}
catch (SecurityException e) {
}
}
}
private final long _createDataset(long fid, long dsid, String name, long dapl)
{
long did = HDF5Constants.H5I_INVALID_HID;
try {
did = H5.H5Dcreate(fid, name, HDF5Constants.H5T_STD_I32BE, dsid, HDF5Constants.H5P_DEFAULT,
HDF5Constants.H5P_DEFAULT, dapl);
}
catch (Throwable err) {
err.printStackTrace();
fail("H5.H5Dcreate: " + err);
}
assertTrue("TestH5P._createDataset: ", did > 0);
return did;
}
private final void _createH5File(long fcpl, long fapl)
{
try {
H5fid = H5.H5Fcreate(H5_FILE, HDF5Constants.H5F_ACC_TRUNC, fcpl, fapl);
H5dsid = H5.H5Screate_simple(2, H5dims, null);
H5did = _createDataset(H5fid, H5dsid, "dset", HDF5Constants.H5P_DEFAULT);
}
catch (Throwable err) {
err.printStackTrace();
fail("TestH5P.createH5file: " + err);
}
assertTrue("TestH5P.createH5file: H5.H5Fcreate: ", H5fid > 0);
assertTrue("TestH5P.createH5file: H5.H5Screate_simple: ", H5dsid > 0);
assertTrue("TestH5P.createH5file: _createDataset: ", H5did > 0);
try {
H5.H5Fflush(H5fid, HDF5Constants.H5F_SCOPE_LOCAL);
}
catch (Throwable err) {
err.printStackTrace();
}
}
public void deleteH5file() throws HDF5LibraryException { _deleteFile(H5_FILE); }
@Before
public void createH5fileProperties() throws NullPointerException, HDF5Exception
{
assertTrue("H5 open ids is 0", H5.getOpenIDCount() == 0);
System.out.print(testname.getMethodName());
try {
lapl_id = H5.H5Pcreate(HDF5Constants.H5P_DATASET_ACCESS);
fapl_id = H5.H5Pcreate(HDF5Constants.H5P_FILE_ACCESS);
fcpl_id = H5.H5Pcreate(HDF5Constants.H5P_FILE_CREATE);
ocpl_id = H5.H5Pcreate(HDF5Constants.H5P_DATASET_CREATE);
ocp_plist_id = H5.H5Pcreate(HDF5Constants.H5P_OBJECT_COPY);
lcpl_id = H5.H5Pcreate(HDF5Constants.H5P_LINK_CREATE);
plapl_id = H5.H5Pcreate(HDF5Constants.H5P_LINK_ACCESS);
plist_id = H5.H5Pcreate(HDF5Constants.H5P_DATASET_XFER);
gapl_id = H5.H5Pcreate(HDF5Constants.H5P_GROUP_ACCESS);
gcpl_id = H5.H5Pcreate(HDF5Constants.H5P_GROUP_CREATE);
acpl_id = H5.H5Pcreate(HDF5Constants.H5P_ATTRIBUTE_CREATE);
}
catch (Throwable err) {
err.printStackTrace();
fail("TestH5P.createH5file: " + err);
}
assertTrue(lapl_id > 0);
assertTrue(fapl_id > 0);
assertTrue(fcpl_id > 0);
assertTrue(ocpl_id > 0);
assertTrue(ocp_plist_id > 0);
assertTrue(lcpl_id > 0);
assertTrue(plapl_id > 0);
assertTrue(plist_id > 0);
assertTrue(gapl_id > 0);
assertTrue(gcpl_id > 0);
assertTrue(acpl_id > 0);
}
@After
public void deleteH5fileProperties() throws HDF5LibraryException
{
if (lapl_id > 0)
try {
H5.H5Pclose(lapl_id);
}
catch (Exception ex) {
}
if (fapl_id > 0)
try {
H5.H5Pclose(fapl_id);
}
catch (Exception ex) {
}
if (fcpl_id > 0)
try {
H5.H5Pclose(fcpl_id);
}
catch (Exception ex) {
}
if (ocpl_id > 0)
try {
H5.H5Pclose(ocpl_id);
}
catch (Exception ex) {
}
if (ocp_plist_id > 0)
try {
H5.H5Pclose(ocp_plist_id);
}
catch (Exception ex) {
}
if (lcpl_id > 0)
try {
H5.H5Pclose(lcpl_id);
}
catch (Exception ex) {
}
if (plapl_id > 0)
try {
H5.H5Pclose(plapl_id);
}
catch (Exception ex) {
}
if (plist_id > 0)
try {
H5.H5Pclose(plist_id);
}
catch (Exception ex) {
}
if (gapl_id > 0)
try {
H5.H5Pclose(gapl_id);
}
catch (Exception ex) {
}
if (gcpl_id > 0)
try {
H5.H5Pclose(gcpl_id);
}
catch (Exception ex) {
}
if (acpl_id > 0)
try {
H5.H5Pclose(acpl_id);
}
catch (Exception ex) {
}
if (H5dsid > 0)
try {
H5.H5Sclose(H5dsid);
}
catch (Exception ex) {
}
if (H5did > 0)
try {
H5.H5Dclose(H5did);
}
catch (Exception ex) {
}
if (H5fid > 0)
try {
H5.H5Fclose(H5fid);
}
catch (Exception ex) {
}
System.out.println();
}
@Test
public void testH5Pget_nlinks()
{
long nlinks = -1;
try {
nlinks = (long)H5.H5Pget_nlinks(lapl_id);
}
catch (Throwable err) {
err.printStackTrace();
fail("H5.H5Pget_nlinks: " + err);
}
assertTrue("testH5Pget_nlinks", nlinks > 0);
// Check the default value of nlinks.
assertEquals(nlinks, 16L);
}
@Test
public void testH5Pset_nlinks()
{
long nlinks = 20;
int ret_val = -1;
try {
ret_val = H5.H5Pset_nlinks(lapl_id, nlinks);
nlinks = (long)H5.H5Pget_nlinks(lapl_id);
}
catch (Throwable err) {
err.printStackTrace();
fail("H5.H5Pset_nlinks: " + err);
}
assertTrue("testH5Pset_nlinks", ret_val >= 0);
// Check the value of nlinks retrieved from H5Pget_nlinks function.
assertEquals(nlinks, 20L);
}
@Test(expected = HDF5FunctionArgumentException.class)
public void testH5Pset_libver_bounds_invalidlow() throws Throwable
{
H5.H5Pset_libver_bounds(fapl_id, HDF5Constants.H5F_LIBVER_LATEST + 1,
HDF5Constants.H5F_LIBVER_LATEST);
}
@Test(expected = HDF5FunctionArgumentException.class)
public void testH5Pset_libver_bounds_invalidhigh() throws Throwable
{
H5.H5Pset_libver_bounds(fapl_id, HDF5Constants.H5F_LIBVER_LATEST,
HDF5Constants.H5F_LIBVER_LATEST + 1);
}
@Test
public void testH5Pget_link_creation_order()
{
int crt_order_flags = 0;
try {
crt_order_flags = H5.H5Pget_link_creation_order(fcpl_id);
}
catch (Throwable err) {
err.printStackTrace();
fail("H5Pget_link_creation_order: " + err);
}
assertTrue("testH5Pget_link_creation_order", crt_order_flags >= 0);
}
@Test
public void testH5Pset_link_creation_order_trackedPLUSindexed()
{
int ret_val = -1;
int crt_order_flags = HDF5Constants.H5P_CRT_ORDER_TRACKED + HDF5Constants.H5P_CRT_ORDER_INDEXED;
int crtorderflags = 0;
try {
ret_val = H5.H5Pset_link_creation_order(fcpl_id, crt_order_flags);
crtorderflags = H5.H5Pget_link_creation_order(fcpl_id);
}
catch (Throwable err) {
err.printStackTrace();
fail("H5Pset_link_creation_order: " + err);
}
assertTrue("testH5Pset_link_creation_order_trackedPLUSindexed", ret_val >= 0);
assertEquals(crt_order_flags, crtorderflags);
}
@Test
public void testH5Pset_link_creation_order_tracked()
{
int ret_val = -1;
int crtorderflags = 0;
try {
ret_val = H5.H5Pset_link_creation_order(fcpl_id, HDF5Constants.H5P_CRT_ORDER_TRACKED);
crtorderflags = H5.H5Pget_link_creation_order(fcpl_id);
}
catch (Throwable err) {
err.printStackTrace();
fail("H5Pset_link_creation_order: " + err);
}
assertTrue("testH5Pset_link_creation_order_tracked", ret_val >= 0);
assertEquals(HDF5Constants.H5P_CRT_ORDER_TRACKED, crtorderflags);
}
@Test(expected = HDF5LibraryException.class)
public void testH5Pset_link_creation_order_invalidvalue() throws Throwable
{
H5.H5Pset_link_creation_order(fcpl_id, HDF5Constants.H5P_CRT_ORDER_INDEXED);
}
@Test
public void testH5Pget_attr_creation_order()
{
int crt_order_flags = 0;
try {
crt_order_flags = H5.H5Pget_attr_creation_order(ocpl_id);
}
catch (Throwable err) {
err.printStackTrace();
fail("H5Pget_attr_creation_order: " + err);
}
assertTrue("testH5Pget_attr_creation_order", crt_order_flags >= 0);
}
@Test
public void testH5Pset_attr_creation_order_trackedPLUSindexed()
{
int ret_val = -1;
int crt_order_flags = HDF5Constants.H5P_CRT_ORDER_TRACKED + HDF5Constants.H5P_CRT_ORDER_INDEXED;
int crtorderflags = 0;
try {
ret_val = H5.H5Pset_attr_creation_order(ocpl_id, crt_order_flags);
crtorderflags = H5.H5Pget_attr_creation_order(ocpl_id);
}
catch (Throwable err) {
err.printStackTrace();
fail("H5Pset_attr_creation_order: " + err);
}
assertTrue("testH5Pset_attr_creation_order_trackedPLUSindexed", ret_val >= 0);
assertEquals(crt_order_flags, crtorderflags);
}
@Test
public void testH5Pset_attr_creation_order_tracked()
{
int ret_val = -1;
int crtorderflags = 0;
try {
ret_val = H5.H5Pset_attr_creation_order(ocpl_id, HDF5Constants.H5P_CRT_ORDER_TRACKED);
crtorderflags = H5.H5Pget_attr_creation_order(ocpl_id);
}
catch (Throwable err) {
err.printStackTrace();
fail("H5Pset_attr_creation_order: " + err);
}
assertTrue("testH5Pset_attr_creation_order_tracked", ret_val >= 0);
assertEquals(HDF5Constants.H5P_CRT_ORDER_TRACKED, crtorderflags);
}
@Test(expected = HDF5LibraryException.class)
public void testH5Pset_attr_creation_order_invalidvalue() throws Throwable
{
H5.H5Pset_attr_creation_order(ocpl_id, HDF5Constants.H5P_CRT_ORDER_INDEXED);
}
@Test
public void testH5Pset_copy_object()
{
int cpy_option = -1;
try {
H5.H5Pset_copy_object(ocp_plist_id, HDF5Constants.H5O_COPY_SHALLOW_HIERARCHY_FLAG);
cpy_option = H5.H5Pget_copy_object(ocp_plist_id);
}
catch (Throwable err) {
err.printStackTrace();
fail("H5Pset_copy_object: " + err);
}
assertEquals(HDF5Constants.H5O_COPY_SHALLOW_HIERARCHY_FLAG, cpy_option);
try {
H5.H5Pset_copy_object(ocp_plist_id, HDF5Constants.H5O_COPY_EXPAND_REFERENCE_FLAG);
cpy_option = H5.H5Pget_copy_object(ocp_plist_id);
}
catch (Throwable err) {
err.printStackTrace();
fail("H5Pset_copy_object: " + err);
}
assertEquals(HDF5Constants.H5O_COPY_EXPAND_REFERENCE_FLAG, cpy_option);
}
@Test(expected = HDF5LibraryException.class)
public void testH5Pset_copy_object_invalidobject() throws Throwable
{
H5.H5Pset_copy_object(HDF5Constants.H5P_DEFAULT, HDF5Constants.H5O_COPY_SHALLOW_HIERARCHY_FLAG);
}
@Test
public void testH5Pset_create_intermediate_group()
{
int ret_val = -1;
try {
ret_val = H5.H5Pset_create_intermediate_group(lcpl_id, true);
}
catch (Throwable err) {
err.printStackTrace();
fail("H5Pset_create_intermediate_group: " + err);
}
assertTrue(ret_val >= 0);
}
@Test(expected = HDF5LibraryException.class)
public void testH5Pset_create_intermediate_group_invalidobject() throws Throwable
{
H5.H5Pset_create_intermediate_group(ocp_plist_id, true);
}
@Test
public void testH5Pget_create_intermediate_group()
{
boolean flag = false;
try {
H5.H5Pset_create_intermediate_group(lcpl_id, true);
flag = H5.H5Pget_create_intermediate_group(lcpl_id);
}
catch (Throwable err) {
err.printStackTrace();
fail("H5Pget_create_intermediate_group: " + err);
}
assertEquals(true, flag);
}
@Test
public void testH5Pget_create_intermediate_group_notcreated()
{
boolean flag = true;
try {
flag = H5.H5Pget_create_intermediate_group(lcpl_id);
}
catch (Throwable err) {
err.printStackTrace();
fail("H5Pget_create_intermediate_group_notcreated: " + err);
}
assertEquals(false, flag);
}
@Test
public void testH5Pset_data_transform()
{
String expression = "(5/9.0)*(x-32)";
int ret_val = -1;
try {
ret_val = H5.H5Pset_data_transform(plist_id, expression);
}
catch (Throwable err) {
err.printStackTrace();
fail("H5Pset_data_transform: " + err);
}
assertTrue(ret_val >= 0);
}
@Test(expected = NullPointerException.class)
public void testH5Pset_data_transform_NullExpression() throws Throwable
{
H5.H5Pset_data_transform(plist_id, null);
}
@Test(expected = HDF5LibraryException.class)
public void testH5Pset_data_transform_InvalidExpression1() throws Throwable
{
H5.H5Pset_data_transform(plist_id, "");
}
@Test(expected = HDF5LibraryException.class)
public void testH5Pset_data_transform_InvalidExpression2() throws Throwable
{
H5.H5Pset_data_transform(plist_id, "hello");
}
@Test
public void testH5Pget_data_transform()
{
String expression = "(5/9.0)*(x-32)";
String[] express = {""};
long express_size = 0;
long size = 20;
try {
H5.H5Pset_data_transform(plist_id, expression);
express_size = H5.H5Pget_data_transform(plist_id, express, size);
}
catch (Throwable err) {
err.printStackTrace();
fail("H5Pget_data_transform: " + err);
}
assertTrue(express_size >= 0);
assertTrue("The data transform expression: ", expression.equals(express[0]));
}
@Test(expected = HDF5LibraryException.class)
public void testH5Pget_data_transform_ExpressionNotSet() throws Throwable
{
String[] express = {""};
H5.H5Pget_data_transform(plist_id, express, 20);
}
@Test(expected = HDF5FunctionArgumentException.class)
public void testH5Pget_data_transform_IllegalSize() throws Throwable
{
String[] express = {""};
H5.H5Pset_data_transform(plist_id, "(5/9.0)*(x-32)");
H5.H5Pget_data_transform(plist_id, express, 0);
}
@Test
public void testH5Pget_elink_acc_flags()
{
int get_flags = -1;
try {
get_flags = H5.H5Pget_elink_acc_flags(gapl_id);
}
catch (Throwable err) {
err.printStackTrace();
fail("H5Pget_elink_acc_flags: " + err);
}
assertTrue("H5Pget_elink_acc_flags", get_flags >= 0);
assertEquals(HDF5Constants.H5F_ACC_DEFAULT, get_flags);
}
@Test
public void testH5Pset_elink_acc_flags()
{
int get_flags = -1;
int ret_val = -1;
try {
ret_val = H5.H5Pset_elink_acc_flags(lapl_id, HDF5Constants.H5F_ACC_RDWR);
get_flags = H5.H5Pget_elink_acc_flags(lapl_id);
}
catch (Throwable err) {
err.printStackTrace();
fail("H5Pset_elink_acc_flags: " + err);
}
assertTrue("H5Pset_elink_acc_flags", ret_val >= 0);
assertEquals(HDF5Constants.H5F_ACC_RDWR, get_flags);
}
@Test(expected = HDF5FunctionArgumentException.class)
public void testH5Pset_elink_acc_flags_InvalidFlag1() throws Throwable
{
H5.H5Pset_elink_acc_flags(lapl_id, HDF5Constants.H5F_ACC_TRUNC);
}
@Test(expected = HDF5FunctionArgumentException.class)
public void testH5Pset_elink_acc_flags_InvalidFlag2() throws Throwable
{
H5.H5Pset_elink_acc_flags(lapl_id, -1);
}
@Test
public void testH5Pset_link_phase_change()
{
int ret_val = -1;
try {
ret_val = H5.H5Pset_link_phase_change(fcpl_id, 2, 2);
}
catch (Throwable err) {
err.printStackTrace();
fail("H5Pset_link_phase_change: " + err);
}
assertTrue("H5Pset_link_phase_change", ret_val >= 0);
}
@Test(expected = HDF5FunctionArgumentException.class)
public void testH5Pset_link_phase_change_Highmax_Compact() throws Throwable
{
H5.H5Pset_link_phase_change(fcpl_id, 70000000, 3);
}
@Test(expected = HDF5FunctionArgumentException.class)
public void testH5Pset_link_phase_change_max_compactLESSTHANmin_dense() throws Throwable
{
H5.H5Pset_link_phase_change(fcpl_id, 5, 6);
}
@Test
public void testH5Pget_link_phase_change()
{
int ret_val = -1;
int[] links = new int[2];
try {
ret_val = H5.H5Pget_link_phase_change(fcpl_id, links);
}
catch (Throwable err) {
err.printStackTrace();
fail("H5Pget_link_phase_change: " + err);
}
assertTrue("testH5Pget_link_phase_change", ret_val >= 0);
assertEquals("Default value of maximum compact storage", 8, links[0]);
assertEquals("Default value of minimum dense storage", 6, links[1]);
}
@Test
public void testH5Pget_link_phase_change_EqualsSet()
{
int[] links = new int[2];
try {
H5.H5Pset_link_phase_change(fcpl_id, 10, 7);
H5.H5Pget_link_phase_change(fcpl_id, links);
}
catch (Throwable err) {
err.printStackTrace();
fail("H5Pget_link_phase_change_EqualsSet: " + err);
}
assertEquals("Value of maximum compact storage set", 10, links[0]);
assertEquals("Value of minimum dense storage set", 7, links[1]);
}
@Test(expected = NullPointerException.class)
public void testH5Pget_link_phase_change_Null() throws Throwable
{
H5.H5Pget_link_phase_change(fcpl_id, null);
}
@Test
public void testH5Pget_attr_phase_change()
{
int ret_val = -1;
int[] attributes = new int[2];
try {
ret_val = H5.H5Pget_attr_phase_change(ocpl_id, attributes);
}
catch (Throwable err) {
err.printStackTrace();
fail("H5Pget_attr_phase_change: " + err);
}
assertTrue("testH5Pget_attr_phase_change", ret_val >= 0);
assertEquals("Default value of the max. no. of attributes stored in compact storage", 8,
attributes[0]);
assertEquals("Default value of the min. no. of attributes stored in dense storage", 6, attributes[1]);
try {
H5.H5Pset_attr_phase_change(ocpl_id, 9, 5);
}
catch (Throwable err) {
err.printStackTrace();
fail("H5Pset_attr_phase_change: " + err);
}
try {
ret_val = H5.H5Pget_attr_phase_change(ocpl_id, attributes);
}
catch (Throwable err) {
err.printStackTrace();
fail("H5Pget_attr_phase_change: " + err);
}
assertTrue("testH5Pget_attr_phase_change", ret_val >= 0);
assertEquals("Default value of the max. no. of attributes stored in compact storage", 9,
attributes[0]);
assertEquals("Default value of the min. no. of attributes stored in dense storage", 5, attributes[1]);
}
@Test
public void testH5Pget_shared_mesg_phase_change()
{
int ret_val = -1;
int[] size = new int[2];
try {
ret_val = H5.H5Pget_shared_mesg_phase_change(fcpl_id, size);
}
catch (Throwable err) {
err.printStackTrace();
fail("H5Pget_shared_mesg_phase_change: " + err);
}
assertTrue("testH5Pget_shared_mesg_phase_change", ret_val >= 0);
}
@Test
public void testH5Pget_shared_mesg_phase_change_EqualsSET()
{
int[] size = new int[2];
try {
H5.H5Pset_shared_mesg_phase_change(fcpl_id, 50, 40);
H5.H5Pget_shared_mesg_phase_change(fcpl_id, size);
}
catch (Throwable err) {
err.printStackTrace();
fail("H5Pget_shared_mesg_phase_change_EqualsSET: " + err);
}
assertEquals("Value of maximum list set", 50, size[0]);
assertEquals("Value of minimum btree set", 40, size[1]);
}
@Test
public void testH5Pset_shared_mesg_phase_change()
{
int ret_val = -1;
try {
ret_val = H5.H5Pset_shared_mesg_phase_change(fcpl_id, 2, 1);
}
catch (Throwable err) {
err.printStackTrace();
fail("H5Pset_shared_mesg_phase_change: " + err);
}
assertTrue("H5Pset_shared_mesg_phase_change", ret_val >= 0);
}
@Test(expected = HDF5FunctionArgumentException.class)
public void testH5PH5Pset_shared_mesg_phase_change_HighMaxlistValue() throws Throwable
{
H5.H5Pset_shared_mesg_phase_change(fcpl_id, 5001, 4000);
}
@Test(expected = HDF5FunctionArgumentException.class)
public void testH5PH5Pset_shared_mesg_phase_change_HighMinbtreeValue() throws Throwable
{
H5.H5Pset_shared_mesg_phase_change(fcpl_id, 5000, 5001);
}
@Test(expected = HDF5FunctionArgumentException.class)
public void testH5PH5Pset_shared_mesg_phase_change_MinbtreeGreaterThanMaxlist() throws Throwable
{
H5.H5Pset_link_phase_change(fcpl_id, 3, 7);
}
@Test
public void testH5Pget_shared_mesg_nindexes()
{
int nindexes = -1;
try {
nindexes = H5.H5Pget_shared_mesg_nindexes(fcpl_id);
}
catch (Throwable err) {
err.printStackTrace();
fail("H5Pget_shared_mesg_nindexes: " + err);
}
assertTrue("H5Pget_shared_mesg_nindexes", nindexes >= 0);
}
@Test
public void testH5Pset_shared_mesg_nindexes()
{
int nindexes = -1;
int ret_val = -1;
try {
ret_val = H5.H5Pset_shared_mesg_nindexes(fcpl_id, 7);
nindexes = H5.H5Pget_shared_mesg_nindexes(fcpl_id);
}
catch (Throwable err) {
err.printStackTrace();
fail("H5Pset_shared_mesg_nindexes: " + err);
}
assertTrue("H5Pset_shared_mesg_nindexes", ret_val >= 0);
assertEquals("Value of nindexes is equal to value set", 7, nindexes);
}
@Test(expected = HDF5FunctionArgumentException.class)
public void testH5Pset_shared_mesg_nindexes_InvalidHIGHnindexes() throws Throwable
{
H5.H5Pset_shared_mesg_nindexes(fcpl_id, 9);
}
@Test
public void testH5Pset_shared_mesg_index()
{
int ret_val = -1;
try {
H5.H5Pset_shared_mesg_nindexes(fcpl_id, 2);
ret_val = H5.H5Pset_shared_mesg_index(fcpl_id, 0, HDF5Constants.H5O_SHMESG_ATTR_FLAG, 10);
}
catch (Throwable err) {
err.printStackTrace();
fail("H5Pset_shared_mesg_index: " + err);
}
assertTrue("H5Pset_shared_mesg_index", ret_val >= 0);
}
@Test(expected = HDF5FunctionArgumentException.class)
public void testH5Pset_shared_mesg_index_Invalid_indexnum() throws Throwable
{
H5.H5Pset_shared_mesg_index(fcpl_id, 2, HDF5Constants.H5O_SHMESG_ATTR_FLAG, 10);
}
@Test(expected = HDF5FunctionArgumentException.class)
public void testH5Pset_shared_mesg_index_InvalidFlag() throws Throwable
{
H5.H5Pset_shared_mesg_nindexes(fcpl_id, 7);
H5.H5Pset_shared_mesg_index(fcpl_id, 2, HDF5Constants.H5O_SHMESG_ALL_FLAG + 1, 10);
}
@Test
public void testH5Pget_shared_mesg_index()
{
int ret_val = -1;
int[] mesg_info = new int[2];
try {
H5.H5Pset_shared_mesg_nindexes(fcpl_id, 2);
H5.H5Pset_shared_mesg_index(fcpl_id, 0, HDF5Constants.H5O_SHMESG_ATTR_FLAG, 10);
ret_val = H5.H5Pget_shared_mesg_index(fcpl_id, 0, mesg_info);
}
catch (Throwable err) {
err.printStackTrace();
fail("H5Pget_shared_mesg_index: " + err);
}
assertTrue("H5Pget_shared_mesg_index", ret_val >= 0);
assertEquals("Type of message", HDF5Constants.H5O_SHMESG_ATTR_FLAG, mesg_info[0]);
assertEquals("minimum message size", 10, mesg_info[1]);
}
@Test(expected = HDF5FunctionArgumentException.class)
public void testH5Pget_shared_mesg_index_Invalid_indexnum() throws Throwable
{
int[] mesg_info = new int[2];
H5.H5Pget_shared_mesg_index(fcpl_id, 0, mesg_info);
}
@Test
public void testH5Pset_local_heap_size_hint()
{
int ret_val = -1;
try {
ret_val = H5.H5Pset_local_heap_size_hint(gcpl_id, 0);
}
catch (Throwable err) {
err.printStackTrace();
fail("H5Pset_local_heap_size_hint: " + err);
}
assertTrue("H5Pset_local_heap_size_hint", ret_val >= 0);
}
@Test
public void testH5Pget_local_heap_size_hint()
{
long size_hint = -1;
try {
size_hint = H5.H5Pget_local_heap_size_hint(gcpl_id);
}
catch (Throwable err) {
err.printStackTrace();
fail("H5Pget_local_heap_size_hint: " + err);
}
assertTrue("H5Pget_local_heap_size_hint", size_hint >= 0);
}
@Test
public void testH5Pset_nbit()
{
int ret_val = -1;
try {
ret_val = H5.H5Pset_nbit(ocpl_id);
}
catch (Throwable err) {
err.printStackTrace();
fail("H5Pset_nbit: " + err);
}
assertTrue("H5Pset_nbit", ret_val >= 0);
}
@Test
public void testH5Pset_scaleoffset()
{
int ret_val = -1;
int scale_type = HDF5Constants.H5Z_SO_FLOAT_DSCALE;
int scale_factor = HDF5Constants.H5Z_SO_INT_MINBITS_DEFAULT;
try {
ret_val = H5.H5Pset_scaleoffset(ocpl_id, scale_type, scale_factor);
}
catch (Throwable err) {
err.printStackTrace();
fail("H5Pset_scaleoffset: " + err);
}
assertTrue("H5Pset_scaleoffset", ret_val >= 0);
}
@Test(expected = HDF5FunctionArgumentException.class)
public void testH5Pset_scaleoffset_Invalidscale_type() throws Throwable
{
H5.H5Pset_scaleoffset(ocpl_id, 3, 1);
}
@Test(expected = HDF5FunctionArgumentException.class)
public void testH5Pset_scaleoffset_Invalidscale_factor() throws Throwable
{
H5.H5Pset_scaleoffset(ocpl_id, HDF5Constants.H5Z_SO_INT, -1);
}
@Test
public void testH5Pset_est_link_info()
{
int ret_val = -1;
try {
ret_val = H5.H5Pset_est_link_info(gcpl_id, 0, 10);
}
catch (Throwable err) {
err.printStackTrace();
fail("H5Pset_est_link_info: " + err);
}
assertTrue("H5Pset_est_link_info", ret_val >= 0);
}
@Test(expected = HDF5FunctionArgumentException.class)
public void testH5Pset_est_link_info_InvalidValues() throws Throwable
{
H5.H5Pset_est_link_info(gcpl_id, 100000, 10);
}
@Test
public void testH5Pget_est_link_info()
{
int ret_val = -1;
int[] link_info = new int[2];
try {
ret_val = H5.H5Pget_est_link_info(gcpl_id, link_info);
}
catch (Throwable err) {
err.printStackTrace();
fail("H5Pget_est_link_info: " + err);
}
assertTrue("H5Pget_est_link_info", ret_val >= 0);
}
@Test
public void testH5Pset_elink_prefix()
{
int ret_val = -1;
String prefix = "tmp";
try {
ret_val = H5.H5Pset_elink_prefix(plapl_id, prefix);
}
catch (Throwable err) {
err.printStackTrace();
fail("H5Pset_elink_prefix: " + err);
}
assertTrue("H5Pset_elink_prefix", ret_val >= 0);
}
@Test(expected = NullPointerException.class)
public void testH5Pset_elink_prefix_null() throws Throwable
{
H5.H5Pset_elink_prefix(plapl_id, null);
}
@Test
public void testH5Pget_elink_prefix()
{
String prefix = "tmp";
String[] pre = {""};
long prefix_size = 0;
try {
H5.H5Pset_elink_prefix(plapl_id, prefix);
prefix_size = H5.H5Pget_elink_prefix(plapl_id, pre);
}
catch (Throwable err) {
err.printStackTrace();
fail("H5Pget_elink_prefix: " + err);
}
assertTrue(prefix_size >= 0);
assertTrue("The prefix: ", prefix.equals(pre[0]));
}
@Test(expected = NullPointerException.class)
public void testH5Pget_elink_prefix_null() throws Throwable
{
H5.H5Pget_elink_prefix(plapl_id, null);
}
@Test(expected = NullPointerException.class)
public void testH5Pget_userblock_null() throws Throwable
{
H5.H5Pget_userblock(fcpl_id, null);
}
@Test
public void testH5P_userblock()
{
long[] size = {0};
try {
H5.H5Pset_userblock(fcpl_id, 1024);
_createH5File(fcpl_id, fapl_id);
/* Close FCPL */
H5.H5Pclose(fcpl_id);
/* Get the file's dataset creation property list */
fcpl_id = H5.H5Fget_create_plist(H5fid);
/* Get the file's version information */
H5F_info2_t finfo = H5.H5Fget_info(H5fid);
assertTrue("super block version: " + finfo.super_version, finfo.super_version == 2);
assertTrue("free-space manager version: " + finfo.free_version, finfo.free_version == 0);
assertTrue("shared object header version: " + finfo.sohm_version, finfo.sohm_version == 0);
H5.H5Pget_userblock(fcpl_id, size);
deleteH5file();
}
catch (Throwable err) {
err.printStackTrace();
fail("H5Pget_userblock: " + err);
}
assertTrue("user block size: " + size[0], size[0] == 1024);
}
@Test(expected = NullPointerException.class)
public void testH5Pget_sizes_null() throws Throwable
{
H5.H5Pget_sizes(fcpl_id, null);
}
@Test
public void testH5P_sizes()
{
long[] size = {0, 0};
try {
H5.H5Pset_sizes(fcpl_id, 4, 8);
_createH5File(fcpl_id, fapl_id);
/* Close FCPL */
H5.H5Pclose(fcpl_id);
/* Get the file's dataset creation property list */
fcpl_id = H5.H5Fget_create_plist(H5fid);
/* Get the file's version information */
H5F_info2_t finfo = H5.H5Fget_info(H5fid);
assertTrue("super block version: " + finfo.super_version, finfo.super_version == 2);
assertTrue("free-space manager version: " + finfo.free_version, finfo.free_version == 0);
assertTrue("shared object header version: " + finfo.sohm_version, finfo.sohm_version == 0);
H5.H5Pget_sizes(fcpl_id, size);
deleteH5file();
}
catch (Throwable err) {
err.printStackTrace();
fail("H5Pget_sizes: " + err);
}
assertTrue("sizeof_addr size: " + size[0], size[0] == 4);
assertTrue("sizeof_size size: " + size[1], size[1] == 8);
}
@Test(expected = NullPointerException.class)
public void testH5Pget_sym_k_null() throws Throwable
{
H5.H5Pget_sym_k(fcpl_id, null);
}
@Test
public void testH5P_sym_k()
{
int[] size = {0, 0};
try {
H5.H5Pset_sym_k(fcpl_id, 32, 8);
_createH5File(fcpl_id, fapl_id);
/* Close FCPL */
H5.H5Pclose(fcpl_id);
/* Get the file's dataset creation property list */
fcpl_id = H5.H5Fget_create_plist(H5fid);
/* Get the file's version information */
H5F_info2_t finfo = H5.H5Fget_info(H5fid);
assertTrue("super block version: " + finfo.super_version, finfo.super_version == 2);
assertTrue("free-space manager version: " + finfo.free_version, finfo.free_version == 0);
assertTrue("shared object header version: " + finfo.sohm_version, finfo.sohm_version == 0);
H5.H5Pget_sym_k(fcpl_id, size);
deleteH5file();
}
catch (Throwable err) {
err.printStackTrace();
fail("H5Pget_sym_k: " + err);
}
assertTrue("symbol table tree rank: " + size[0], size[0] == 32);
assertTrue("symbol table node size: " + size[1], size[1] == 8);
}
@Test(expected = NullPointerException.class)
public void testH5Pget_istore_k_null() throws Throwable
{
H5.H5Pget_istore_k(fcpl_id, null);
}
@Test
public void testH5P_istore_k()
{
int[] size = {0};
try {
H5.H5Pset_istore_k(fcpl_id, 64);
_createH5File(fcpl_id, fapl_id);
/* Close FCPL */
H5.H5Pclose(fcpl_id);
/* Get the file's dataset creation property list */
fcpl_id = H5.H5Fget_create_plist(H5fid);
/* Get the file's version information */
H5F_info2_t finfo = H5.H5Fget_info(H5fid);
assertTrue("super block version: " + finfo.super_version, finfo.super_version == 2);
assertTrue("free-space manager version: " + finfo.free_version, finfo.free_version == 0);
assertTrue("shared object header version: " + finfo.sohm_version, finfo.sohm_version == 0);
H5.H5Pget_istore_k(fcpl_id, size);
deleteH5file();
}
catch (Throwable err) {
err.printStackTrace();
fail("H5Pget_sym_k: " + err);
}
assertTrue("chunked storage b-tree 1/2-rank: " + size[0], size[0] == 64);
}
@Test
public void testH5P_obj_track_times()
{
boolean default_ret_val = false;
boolean ret_val = true;
try {
default_ret_val = H5.H5Pget_obj_track_times(ocpl_id);
H5.H5Pset_obj_track_times(ocpl_id, false);
ret_val = H5.H5Pget_obj_track_times(ocpl_id);
}
catch (Throwable err) {
err.printStackTrace();
fail("H5Pget_obj_track_times: " + err);
}
assertTrue("H5Pget_obj_track_times default", default_ret_val);
assertFalse("H5Pget_obj_track_times", ret_val);
}
@Test
public void testH5Pget_char_encoding()
{
int char_encoding = 0;
try {
char_encoding = H5.H5Pget_char_encoding(acpl_id);
}
catch (Throwable err) {
err.printStackTrace();
fail("H5Pget_char_encoding: " + err);
}
assertTrue("testH5Pget_char_encoding", char_encoding == HDF5Constants.H5T_CSET_ASCII);
try {
H5.H5Pset_char_encoding(acpl_id, HDF5Constants.H5T_CSET_UTF8);
char_encoding = H5.H5Pget_char_encoding(acpl_id);
}
catch (Throwable err) {
err.printStackTrace();
fail("H5Pget_char_encoding: " + err);
}
assertTrue("testH5Pget_char_encoding", char_encoding == HDF5Constants.H5T_CSET_UTF8);
}
@Test
public void testH5P_fill_time()
{
int[] fill_time = {0};
try {
H5.H5Pget_fill_time(ocpl_id, fill_time);
assertTrue("fill_time: " + fill_time[0], fill_time[0] == HDF5Constants.H5D_FILL_TIME_IFSET);
H5.H5Pset_fill_time(ocpl_id, HDF5Constants.H5D_FILL_TIME_ALLOC);
H5.H5Pget_fill_time(ocpl_id, fill_time);
assertTrue("fill_time: " + fill_time[0], fill_time[0] == HDF5Constants.H5D_FILL_TIME_ALLOC);
H5.H5Pset_fill_time(ocpl_id, HDF5Constants.H5D_FILL_TIME_NEVER);
H5.H5Pget_fill_time(ocpl_id, fill_time);
assertTrue("fill_time: " + fill_time[0], fill_time[0] == HDF5Constants.H5D_FILL_TIME_NEVER);
}
catch (Throwable err) {
err.printStackTrace();
fail("H5Pget_fill_time: " + err);
}
}
@Test
public void testH5P_alloc_time()
{
int[] alloc_time = {0};
try {
H5.H5Pget_alloc_time(ocpl_id, alloc_time);
assertTrue("alloc_time: " + alloc_time[0], alloc_time[0] == HDF5Constants.H5D_ALLOC_TIME_LATE);
H5.H5Pset_alloc_time(ocpl_id, HDF5Constants.H5D_ALLOC_TIME_EARLY);
H5.H5Pget_alloc_time(ocpl_id, alloc_time);
assertTrue("alloc_time: " + alloc_time[0], alloc_time[0] == HDF5Constants.H5D_ALLOC_TIME_EARLY);
H5.H5Pset_alloc_time(ocpl_id, HDF5Constants.H5D_ALLOC_TIME_INCR);
H5.H5Pget_alloc_time(ocpl_id, alloc_time);
assertTrue("alloc_time: " + alloc_time[0], alloc_time[0] == HDF5Constants.H5D_ALLOC_TIME_INCR);
}
catch (Throwable err) {
err.printStackTrace();
fail("H5Pget_alloc_time: " + err);
}
}
@Test
public void testH5P_fill_value()
{
int[] fill_value = {-1};
int[] fill_value_status = {-1};
try {
H5.H5Pfill_value_defined(ocpl_id, fill_value_status);
assertTrue("fill_value_status: " + fill_value_status[0],
fill_value_status[0] == HDF5Constants.H5D_FILL_VALUE_DEFAULT);
H5.H5Pget_fill_value(ocpl_id, HDF5Constants.H5T_NATIVE_INT, fill_value);
assertTrue("fill_value: " + fill_value[0], fill_value[0] == -1);
fill_value[0] = 255;
H5.H5Pset_fill_value(ocpl_id, HDF5Constants.H5T_NATIVE_INT, fill_value);
H5.H5Pget_fill_value(ocpl_id, HDF5Constants.H5T_NATIVE_INT, fill_value);
assertTrue("fill_value: " + fill_value[0], fill_value[0] == 255);
H5.H5Pfill_value_defined(ocpl_id, fill_value_status);
assertTrue("fill_value_status: " + fill_value_status[0],
fill_value_status[0] == HDF5Constants.H5D_FILL_VALUE_USER_DEFINED);
}
catch (Throwable err) {
err.printStackTrace();
fail("H5Pget_fill_value: " + err);
}
}
@Test
public void testH5P_layout()
{
int layout_type = -1;
try {
layout_type = H5.H5Pget_layout(ocpl_id);
assertTrue("layout: " + layout_type, layout_type == HDF5Constants.H5D_CONTIGUOUS);
H5.H5Pset_layout(ocpl_id, HDF5Constants.H5D_COMPACT);
layout_type = H5.H5Pget_layout(ocpl_id);
assertTrue("layout: " + layout_type, layout_type == HDF5Constants.H5D_COMPACT);
}
catch (Throwable err) {
err.printStackTrace();
fail("H5Pget_layout: " + err);
}
}
@Test
public void testH5P_chunk()
{
long[] chunk_size = {0, 0};
long[] chunk_new_size = {2, 3};
int layout_type = -1;
try {
H5.H5Pset_chunk(ocpl_id, 2, chunk_new_size);
H5.H5Pget_chunk(ocpl_id, 2, chunk_size);
assertTrue("chunk: " + chunk_size[0], chunk_size[0] == chunk_new_size[0]);
assertTrue("chunk: " + chunk_size[1], chunk_size[1] == chunk_new_size[1]);
layout_type = H5.H5Pget_layout(ocpl_id);
assertTrue("layout: " + layout_type, layout_type == HDF5Constants.H5D_CHUNKED);
}
catch (Throwable err) {
err.printStackTrace();
fail("H5Pget_chunk: " + err);
}
}
@Test
public void testH5P_file_space_strategy()
{
long[] threshold = {0};
boolean[] persist = {false};
int strategy = 0;
try {
strategy = H5.H5Pget_file_space_strategy(fcpl_id, persist, threshold);
assertTrue("strategy(default): " + strategy,
strategy == HDF5Constants.H5F_FSPACE_STRATEGY_FSM_AGGR);
assertTrue("persist(default): " + persist[0], persist[0] == false);
assertTrue("threshold(default): " + threshold[0], threshold[0] == 1);
H5.H5Pset_file_space_strategy(fcpl_id, HDF5Constants.H5F_FSPACE_STRATEGY_PAGE, true, 1);
strategy = H5.H5Pget_file_space_strategy(fcpl_id, persist, threshold);
assertTrue("strategy: " + strategy, strategy == HDF5Constants.H5F_FSPACE_STRATEGY_PAGE);
assertTrue("persist: " + persist[0], persist[0] == true);
assertTrue("threshold: " + threshold[0], threshold[0] == 1);
}
catch (Throwable err) {
err.printStackTrace();
fail("testH5P_file_space_strategy: " + err);
}
}
@Test
public void testH5P_file_space_page_size()
{
long page_size = 0;
try {
page_size = H5.H5Pget_file_space_page_size(fcpl_id);
assertTrue("page_size(default): " + page_size, page_size == 4096);
H5.H5Pset_file_space_page_size(fcpl_id, 512);
page_size = H5.H5Pget_file_space_page_size(fcpl_id);
assertTrue("page_size: " + page_size, page_size == 512);
}
catch (Throwable err) {
err.printStackTrace();
fail("testH5P_file_space_page_size: " + err);
}
}
@Test
public void testH5Pset_efile_prefix()
{
String prefix = "tmp";
try {
H5.H5Pset_efile_prefix(lapl_id, prefix);
}
catch (Throwable err) {
err.printStackTrace();
fail("H5Pset_efile_prefix: " + err);
}
}
@Test(expected = NullPointerException.class)
public void testH5Pset_efile_prefix_null() throws Throwable
{
H5.H5Pset_efile_prefix(lapl_id, null);
}
@Test
public void testH5Pget_efile_prefix()
{
String prefix = "tmp";
String pre = "";
try {
H5.H5Pset_efile_prefix(lapl_id, prefix);
pre = H5.H5Pget_efile_prefix(lapl_id);
}
catch (Throwable err) {
err.printStackTrace();
fail("H5Pget_efile_prefix: " + err);
}
assertTrue("The prefix: ", prefix.equals(pre));
}
@Ignore
public void testH5P_chunk_opts()
{
int chunk_opts = -1;
try {
chunk_opts = H5.H5Pget_chunk_opts(ocpl_id);
assertTrue("chunk_opts: " + chunk_opts, chunk_opts == 0);
H5.H5Pset_chunk_opts(ocpl_id, HDF5Constants.H5D_CHUNK_DONT_FILTER_PARTIAL_CHUNKS);
chunk_opts = H5.H5Pget_chunk_opts(ocpl_id);
assertTrue("chunk_opts: " + chunk_opts,
chunk_opts == HDF5Constants.H5D_CHUNK_DONT_FILTER_PARTIAL_CHUNKS);
}
catch (Throwable err) {
err.printStackTrace();
fail("H5Pget_lchunk_opts: " + err);
}
}
}