diff options
author | Quincey Koziol <koziol@hdfgroup.org> | 2011-03-31 20:39:18 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@hdfgroup.org> | 2011-03-31 20:39:18 (GMT) |
commit | f4e7559bd2d8bbd59535cbcafab78e162a6bffb6 (patch) | |
tree | b4339300a7d08fe64266ad183213da8a38fb986e /tools | |
parent | 9c0a2b214519c6f0508964981be19bf2e3054e35 (diff) | |
download | hdf5-f4e7559bd2d8bbd59535cbcafab78e162a6bffb6.zip hdf5-f4e7559bd2d8bbd59535cbcafab78e162a6bffb6.tar.gz hdf5-f4e7559bd2d8bbd59535cbcafab78e162a6bffb6.tar.bz2 |
[svn-r20383] Description:
Bring r19714:20382 from trunk to revise_chunks branch
Tested:
Linux 2.6/64 (chicago)
Diffstat (limited to 'tools')
65 files changed, 12076 insertions, 1644 deletions
diff --git a/tools/h5copy/CMakeLists.txt b/tools/h5copy/CMakeLists.txt index 2f39282..8a6ca11 100644 --- a/tools/h5copy/CMakeLists.txt +++ b/tools/h5copy/CMakeLists.txt @@ -11,7 +11,7 @@ INCLUDE_DIRECTORIES (${HDF5_PROJECT_DIR}/test) # Add the h5copy and test executables # -------------------------------------------------------------------- ADD_EXECUTABLE (h5copy ${HDF5_TOOLS_H5COPY_SOURCE_DIR}/h5copy.c) -H5_NAMING (h5copy ${LIB_TYPE}) +TARGET_NAMING (h5copy ${LIB_TYPE}) TARGET_LINK_LIBRARIES (h5copy ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET}) SET (H5_DEP_EXECUTABLES h5copy) @@ -25,7 +25,7 @@ SET (H5_DEP_EXECUTABLES h5copy) IF (BUILD_TESTING) IF (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS) ADD_EXECUTABLE (h5copygentest ${HDF5_TOOLS_H5COPY_SOURCE_DIR}/h5copygentest.c) - H5_NAMING (h5copygentest ${LIB_TYPE}) + TARGET_NAMING (h5copygentest ${LIB_TYPE}) TARGET_LINK_LIBRARIES (h5copygentest ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET}) #ADD_TEST (NAME h5copygentest COMMAND $<TARGET_FILE:h5copygentest>) @@ -76,67 +76,100 @@ IF (BUILD_TESTING) ############################################################################## ############################################################################## - MACRO (ADD_H5_TEST testname resultcode testfile vparam srcname dstname) + # + # Perform h5copy according to passing parmeters + # + MACRO (ADD_H5COPY_TEST testname resultcode infile outfile vparam srcname dstname) IF (NOT "${ARGN}" STREQUAL "") ADD_TEST ( NAME H5COPY-${testname} - COMMAND $<TARGET_FILE:h5copy> -f ${ARGN} -i ./testfiles/${testfile}.h5 -o ./testfiles/${testfile}.out.h5 -${vparam} -s ${srcname} -d ${dstname} + COMMAND $<TARGET_FILE:h5copy> -f ${ARGN} -i ./testfiles/${infile} -o ./testfiles/${outfile} -${vparam} -s ${srcname} -d ${dstname} ) ELSE (NOT "${ARGN}" STREQUAL "") ADD_TEST ( NAME H5COPY-${testname} - COMMAND $<TARGET_FILE:h5copy> -i ./testfiles/${testfile}.h5 -o ./testfiles/${testfile}.out.h5 -${vparam} -s ${srcname} -d ${dstname} + COMMAND $<TARGET_FILE:h5copy> -i ./testfiles/${infile} -o ./testfiles/${outfile} -${vparam} -s ${srcname} -d ${dstname} ) ENDIF (NOT "${ARGN}" STREQUAL "") + IF (NOT "${last_test}" STREQUAL "") + SET_TESTS_PROPERTIES (H5COPY-${testname} PROPERTIES DEPENDS ${last_test}) + ENDIF (NOT "${last_test}" STREQUAL "") + SET (last_test "H5COPY-${testname}") + # resultcode=2 will cause the test to skip the diff test IF (NOT ${resultcode} STREQUAL "2") ADD_TEST ( NAME H5COPY-DIFF_${testname} - COMMAND $<TARGET_FILE:h5diff> -q ./testfiles/${testfile}.h5 ./testfiles/${testfile}.out.h5 ${srcname} ${dstname} + COMMAND $<TARGET_FILE:h5diff> -q ./testfiles/${infile} ./testfiles/${outfile} ${srcname} ${dstname} ) SET_TESTS_PROPERTIES(H5COPY-DIFF_${testname} PROPERTIES DEPENDS H5COPY-${testname}) + SET (last_test "H5COPY-DIFF_${testname}") IF (${resultcode} STREQUAL "1") SET_TESTS_PROPERTIES (H5COPY-DIFF_${testname} PROPERTIES WILL_FAIL "true") ENDIF (${resultcode} STREQUAL "1") ENDIF (NOT ${resultcode} STREQUAL "2") - IF (NOT "${last_test}" STREQUAL "") - SET_TESTS_PROPERTIES (H5COPY-${testname} PROPERTIES DEPENDS ${last_test}) - ENDIF (NOT "${last_test}" STREQUAL "") - SET (last_test "H5COPY-DIFF_${testname}") + ENDMACRO (ADD_H5COPY_TEST) + + # + # call ADD_H5COPY_TEST macro with assumption that source and target file + # is different + # + MACRO (ADD_H5_TEST testname resultcode testfile vparam srcname dstname) + ADD_H5COPY_TEST (${testname} ${resultcode} ${testfile}.h5 ${testfile}.out.h5 ${vparam} ${srcname} ${dstname} ${ARGN}) ENDMACRO (ADD_H5_TEST testname resultcode testfile vparam srcname dstname) + # + # Test result with h5ls + # MACRO (ADD_H5LS_TEST file filetest) - ADD_TEST ( - NAME H5COPY-H5LS_${file}-${filetest} - COMMAND "${CMAKE_COMMAND}" - -D "TEST_PROGRAM=$<TARGET_FILE:h5ls>" - -D "TEST_ARGS=-Svr;./testfiles/${file}.out.h5" - -D "TEST_FOLDER=${PROJECT_BINARY_DIR}" - -D "TEST_OUTPUT=./testfiles/${file}.out.out" - -D "TEST_EXPECT=0" - -D "TEST_REFERENCE=./testfiles/${file}.out.ls" - -D "TEST_MASK=true" - -P "${HDF5_RESOURCES_DIR}/runTest.cmake" - ) + # If using memchecker add tests without using scripts + IF (HDF5_ENABLE_USING_MEMCHECKER) + ADD_TEST (NAME H5COPY-H5LS_${file}-${filetest} COMMAND $<TARGET_FILE:h5ls> -Svr ./testfiles/${file}.out.h5) + ELSE (HDF5_ENABLE_USING_MEMCHECKER) + ADD_TEST ( + NAME H5COPY-H5LS_${file}-${filetest} + COMMAND "${CMAKE_COMMAND}" + -D "TEST_PROGRAM=$<TARGET_FILE:h5ls>" + -D "TEST_ARGS=-Svr;./testfiles/${file}.out.h5" + -D "TEST_FOLDER=${PROJECT_BINARY_DIR}" + -D "TEST_OUTPUT=./testfiles/${file}.out.out" + -D "TEST_EXPECT=0" + -D "TEST_REFERENCE=./testfiles/${file}.out.ls" + -D "TEST_MASK=true" + -P "${HDF5_RESOURCES_DIR}/runTest.cmake" + ) + ENDIF (HDF5_ENABLE_USING_MEMCHECKER) IF (NOT "${last_test}" STREQUAL "") SET_TESTS_PROPERTIES (H5COPY-H5LS_${file}-${filetest} PROPERTIES DEPENDS ${last_test}) ENDIF (NOT "${last_test}" STREQUAL "") SET (last_test "H5COPY-H5LS_${file}-${filetest}") ENDMACRO (ADD_H5LS_TEST file filetest) + # + # Similiar to ADD_H5_TEST macro. Compare to outputs from source & target + # files instead of checking with h5ls. + # MACRO (ADD_H5_CMP_TEST testname resultcode testfile vparam srcname dstname) - ADD_TEST ( - NAME H5COPY-CMP-${testname} - COMMAND "${CMAKE_COMMAND}" - -D "TEST_PROGRAM=$<TARGET_FILE:h5copy>" - -D "TEST_ARGS=-i;${testfile}.h5;-o;./testfiles/${testfile}.out.h5;-${vparam};-s;${srcname};-d;${dstname}" - -D "TEST_FOLDER=${PROJECT_BINARY_DIR}" - -D "TEST_OUTPUT=./testfiles/${testname}.out.out" - -D "TEST_EXPECT=${resultcode}" - -D "TEST_REFERENCE=./testfiles/${testname}.out" - -D "TEST_MASK=true" - -P "${HDF5_RESOURCES_DIR}/runTest.cmake" - ) + # If using memchecker add tests without using scripts + IF (HDF5_ENABLE_USING_MEMCHECKER) + ADD_TEST (NAME H5COPY-CMP-${testname} COMMAND $<TARGET_FILE:h5copy> -i ${testfile}.h5 -o ./testfiles/${testfile}.out.h5 -${vparam} -s ${srcname} -d ${dstname}) + IF (${resultcode} STREQUAL "1") + SET_TESTS_PROPERTIES (H5COPY-CMP-${testname} PROPERTIES WILL_FAIL "true") + ENDIF (${resultcode} STREQUAL "1") + ELSE (HDF5_ENABLE_USING_MEMCHECKER) + ADD_TEST ( + NAME H5COPY-CMP-${testname} + COMMAND "${CMAKE_COMMAND}" + -D "TEST_PROGRAM=$<TARGET_FILE:h5copy>" + -D "TEST_ARGS=-i;${testfile}.h5;-o;./testfiles/${testfile}.out.h5;-${vparam};-s;${srcname};-d;${dstname}" + -D "TEST_FOLDER=${PROJECT_BINARY_DIR}" + -D "TEST_OUTPUT=./testfiles/${testname}.out.out" + -D "TEST_EXPECT=${resultcode}" + -D "TEST_REFERENCE=./testfiles/${testname}.out" + -D "TEST_MASK=true" + -P "${HDF5_RESOURCES_DIR}/runTest.cmake" + ) + ENDIF (HDF5_ENABLE_USING_MEMCHECKER) IF (NOT "${last_test}" STREQUAL "") SET_TESTS_PROPERTIES (H5COPY-CMP-${testname} PROPERTIES DEPENDS ${last_test}) ENDIF (NOT "${last_test}" STREQUAL "") @@ -156,6 +189,7 @@ IF (BUILD_TESTING) SET (HDF_FILE2 h5copy_ref) SET (HDF_EXT_SRC_FILE h5copy_extlinks_src) SET (HDF_EXT_TRG_FILE h5copy_extlinks_trg) + SET (HDF_FILE1_TMP h5copytst_tmp) # Remove any output file left over from previous test run ADD_TEST ( @@ -261,13 +295,13 @@ IF (BUILD_TESTING) ADD_H5_TEST (ext_link_f 2 ${HDF_EXT_SRC_FILE} v /group_ext/extlink_dset /copy2_dset ext) # "Test copying dangling external link (no obj) directly without -f ext" - ADD_H5_TEST (ext_dangle_noobj 0 ${HDF_EXT_SRC_FILE} v /group_ext/extlink_notyet1 /copy_dangle1_1) + ADD_H5_TEST (ext_dangle_noobj 2 ${HDF_EXT_SRC_FILE} v /group_ext/extlink_notyet1 /copy_dangle1_1) # "Test copying dangling external link (no obj) directly with -f ext" ADD_H5_TEST (ext_dangle_noobj_f 2 ${HDF_EXT_SRC_FILE} v /group_ext/extlink_notyet1 /copy_dangle1_2 ext) # "Test copying dangling external link (no file) directly without -f ext" - ADD_H5_TEST (ext_dangle_nofile 0 ${HDF_EXT_SRC_FILE} v /group_ext/extlink_notyet2 /copy_dangle2_1) + ADD_H5_TEST (ext_dangle_nofile 2 ${HDF_EXT_SRC_FILE} v /group_ext/extlink_notyet2 /copy_dangle2_1) # "Test copying dangling external link (no file) directly with -f ext" ADD_H5_TEST (ext_dangle_nofile_f 2 ${HDF_EXT_SRC_FILE} v /group_ext/extlink_notyet2 /copy_dangle2_2 ext) @@ -295,18 +329,32 @@ IF (BUILD_TESTING) NAME H5COPY-clear-misc COMMAND ${CMAKE_COMMAND} -E remove - ./testfiles/${HDF_FILE1}.out.h5 - ./testfiles/${HDF_FILE1}.out.out - ./testfiles/${HDF_FILE1}.out.out.err + ./testfiles/h5copy_misc1.out.out + ./testfiles/h5copy_misc1.out.out.err + ./testfiles/${HDF_FILE1_TMP}.h5 + ./testfiles/h5copy_misc1.out.h5 ) IF (NOT "${last_test}" STREQUAL "") SET_TESTS_PROPERTIES (H5COPY-clear-misc PROPERTIES DEPENDS ${last_test}) ENDIF (NOT "${last_test}" STREQUAL "") SET (last_test "H5COPY-clear-misc") + #----------------------------------------------------------------- # "Test copying object into group which doesn't exist, without -p" + # ADD_H5_CMP_TEST (h5copy_misc1 1 ${HDF_FILE1} v /simple /g1/g2/simple) + #------------------------------------------- + # "Test copying objects to the same file " + # + # create temporary test file with some objects + ADD_H5COPY_TEST (samefile1_pre 0 ${HDF_FILE1}.h5 ${HDF_FILE1_TMP}.h5 v /simple /simple) + ADD_H5COPY_TEST (samefile2_pre 0 ${HDF_FILE1}.h5 ${HDF_FILE1_TMP}.h5 v /grp_dsets /grp_dsets) + # actual test cases + # - dataset + ADD_H5COPY_TEST (samefile1 0 ${HDF_FILE1_TMP}.h5 ${HDF_FILE1_TMP}.h5 v /simple /simple_cp) + # - group with some datasets + ADD_H5COPY_TEST (samefile2 0 ${HDF_FILE1_TMP}.h5 ${HDF_FILE1_TMP}.h5 v /grp_dsets /grp_dsets_cp) ENDIF (BUILD_TESTING) ############################################################################## diff --git a/tools/h5copy/h5copy.c b/tools/h5copy/h5copy.c index 3760d6f..fb8bb81 100644 --- a/tools/h5copy/h5copy.c +++ b/tools/h5copy/h5copy.c @@ -319,6 +319,14 @@ main (int argc, const char *argv[]) leave(EXIT_FAILURE); } + /*------------------------------------------------------------------------- + * open output file + *-------------------------------------------------------------------------*/ + + /* Attempt to open an existing HDF5 file first. Need to open the dst file + before the src file just in case that the dst and src are the same file + */ + fid_dst = h5tools_fopen(fname_dst, H5F_ACC_RDWR, H5P_DEFAULT, NULL, NULL, 0); /*------------------------------------------------------------------------- * open input file @@ -337,13 +345,11 @@ main (int argc, const char *argv[]) leave(EXIT_FAILURE); } + /*------------------------------------------------------------------------- - * open output file + * create an output file when failed to open it *-------------------------------------------------------------------------*/ - /* Attempt to open an existing HDF5 file first */ - fid_dst = h5tools_fopen(fname_dst, H5F_ACC_RDWR, H5P_DEFAULT, NULL, NULL, 0); - /* If we couldn't open an existing file, try creating file */ /* (use "EXCL" instead of "TRUNC", so we don't blow away existing non-HDF5 file) */ if(fid_dst < 0) diff --git a/tools/h5copy/h5copygentest.c b/tools/h5copy/h5copygentest.c index 26a2588..f655c39 100644 --- a/tools/h5copy/h5copygentest.c +++ b/tools/h5copy/h5copygentest.c @@ -231,7 +231,7 @@ static void gent_compressed(hid_t loc_id) /*------------------------------------------------------------------------- * Function: gent_named_vl * - * Purpose: Generate a variable lenght named datatype for a dataset in + * Purpose: Generate a variable lenght named datatype for a dataset in LOC_ID * *------------------------------------------------------------------------- @@ -423,6 +423,7 @@ static herr_t gen_obj_ref(hid_t loc_id) hsize_t dims2[1]={2}; int data[3] = {10,20,30}; int status; + /*--------------------- * create obj references to the previously created objects. * Passing -1 as reference is an object.*/ @@ -645,7 +646,7 @@ out: /*------------------------------------------------------------------------- * Function: Test_Obj_Copy * - * Purpose: Testing with various objects + * Purpose: Testing with various objects * *------------------------------------------------------------------------*/ static void Test_Obj_Copy() @@ -706,14 +707,14 @@ static void Test_Ref_Copy() { hid_t fid=0; herr_t status; - + fid = H5Fcreate (HDF_FILE2, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); if (fid < 0) { fprintf(stderr, "Error: %s> H5Fcreate failed.\n", HDF_FILE2); goto out; } - + /* add object reference */ status = gen_obj_ref(fid); if (status < 0) @@ -873,7 +874,7 @@ static void Test_Extlink_Copy() hid_t fid1=0; hid_t fid2=0; herr_t status; - + fid1 = H5Fcreate (HDF_EXT_SRC_FILE, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); if (fid1 < 0) { @@ -887,7 +888,7 @@ static void Test_Extlink_Copy() fprintf(stderr, "Error: %s> H5Fcreate failed.\n", HDF_EXT_TRG_FILE); goto out; } - + /* add links to source external link file */ status = gen_extlink_src(fid1); if (status < 0) diff --git a/tools/h5copy/testh5copy.sh b/tools/h5copy/testh5copy.sh index 1ce6a31..1c54c8b 100644 --- a/tools/h5copy/testh5copy.sh +++ b/tools/h5copy/testh5copy.sh @@ -401,13 +401,13 @@ COPY_EXT_LINKS() TOOLTEST -f ext -i $TESTFILE -o $FILEOUT -v -s /group_ext/extlink_dset -d /copy2_dset echo "Test copying dangling external link (no obj) directly without -f ext" - TOOLTEST -i $TESTFILE -o $FILEOUT -v -s /group_ext/extlink_notyet1 -d /copy_dangle1_1 + TOOLTEST -v -i $TESTFILE -o $FILEOUT -s /group_ext/extlink_notyet1 -d /copy_dangle1_1 echo "Test copying dangling external link (no obj) directly with -f ext" TOOLTEST -f ext -i $TESTFILE -o $FILEOUT -v -s /group_ext/extlink_notyet1 -d /copy_dangle1_2 echo "Test copying dangling external link (no file) directly without -f ext" - TOOLTEST -i $TESTFILE -o $FILEOUT -v -s /group_ext/extlink_notyet2 -d /copy_dangle2_1 + TOOLTEST -v -i $TESTFILE -o $FILEOUT -s /group_ext/extlink_notyet2 -d /copy_dangle2_1 echo "Test copying dangling external link (no file) directly with -f ext" TOOLTEST -f ext -i $TESTFILE -o $FILEOUT -v -s /group_ext/extlink_notyet2 -d /copy_dangle2_2 @@ -443,6 +443,15 @@ TEST_MISC() echo "Test copying object into group which doesn't exist, without -p" TOOLTEST_FAIL h5copy_misc1.out -v -i $TESTFILE -o $FILEOUT -s /simple -d /g1/g2/simple + echo "Test copying objects to the same file " + rm -f $FILEOUT + # create temporary test file ($FILEOUT) with some objects + TOOLTEST -i $TESTFILE -o $FILEOUT -v -s /simple -d /simple + TOOLTEST -i $TESTFILE -o $FILEOUT -v -s /grp_dsets -d /grp_dsets + # actual test cases + TOOLTEST -i $FILEOUT -o $FILEOUT -v -s /simple -d /simple_cp + TOOLTEST -i $FILEOUT -o $FILEOUT -v -s /grp_dsets -d /grp_dsets_cp + # Remove output file created, if the "no cleanup" environment variable is # not defined if test -z "$HDF5_NOCLEANUP"; then diff --git a/tools/h5diff/CMakeLists.txt b/tools/h5diff/CMakeLists.txt index 3041171..48ba8e6 100644 --- a/tools/h5diff/CMakeLists.txt +++ b/tools/h5diff/CMakeLists.txt @@ -14,7 +14,7 @@ ADD_EXECUTABLE (h5diff ${HDF5_TOOLS_H5DIFF_SOURCE_DIR}/h5diff_common.c ${HDF5_TOOLS_H5DIFF_SOURCE_DIR}/h5diff_main.c ) -H5_NAMING (h5diff ${LIB_TYPE}) +TARGET_NAMING (h5diff ${LIB_TYPE}) TARGET_LINK_LIBRARIES (h5diff ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET}) SET (H5_DEP_EXECUTABLES h5diff) @@ -31,7 +31,7 @@ IF (BUILD_TESTING) # -------------------------------------------------------------------- IF (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS) ADD_EXECUTABLE (h5diffgentest ${HDF5_TOOLS_H5DIFF_SOURCE_DIR}/h5diffgentest.c) - H5_NAMING (h5diffgentest ${LIB_TYPE}) + TARGET_NAMING (h5diffgentest ${LIB_TYPE}) TARGET_LINK_LIBRARIES (h5diffgentest ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET}) #ADD_TEST (NAME h5diffgentest COMMAND $<TARGET_FILE:h5diffgentest>) @@ -174,6 +174,17 @@ IF (BUILD_TESTING) h5diff_628.txt h5diff_629.txt h5diff_70.txt + h5diff_700.txt + h5diff_701.txt + h5diff_702.txt + h5diff_703.txt + h5diff_704.txt + h5diff_705.txt + h5diff_706.txt + h5diff_707.txt + h5diff_708.txt + h5diff_709.txt + h5diff_710.txt h5diff_80.txt h5diff_90.txt ) @@ -209,6 +220,8 @@ IF (BUILD_TESTING) h5diff_exclude2-1.h5 h5diff_exclude2-2.h5 h5diff_comp_vl_strs.h5 + h5diff_attr_v_level1.h5 + h5diff_attr_v_level2.h5 ) FOREACH (txt_file ${HDF5_REFERENCE_FILES}) @@ -270,18 +283,26 @@ IF (BUILD_TESTING) ############################################################################## MACRO (ADD_H5_TEST resultfile resultcode) - ADD_TEST ( - NAME H5DIFF-${resultfile} - COMMAND "${CMAKE_COMMAND}" - -D "TEST_PROGRAM=$<TARGET_FILE:h5diff>" - -D "TEST_ARGS:STRING=${ARGN}" - -D "TEST_FOLDER=${PROJECT_BINARY_DIR}" - -D "TEST_OUTPUT=${resultfile}.out" - -D "TEST_EXPECT=${resultcode}" - -D "TEST_REFERENCE=${resultfile}.txt" - -D "TEST_APPEND=EXIT CODE:" - -P "${HDF5_RESOURCES_DIR}/runTest.cmake" - ) + # If using memchecker add tests without using scripts + IF (HDF5_ENABLE_USING_MEMCHECKER) + ADD_TEST (NAME H5DIFF-${resultfile} COMMAND $<TARGET_FILE:h5diff> ${ARGN}) + IF (NOT ${resultcode} STREQUAL "0") + SET_TESTS_PROPERTIES (H5DIFF-${resultfile} PROPERTIES WILL_FAIL "true") + ENDIF (NOT ${resultcode} STREQUAL "0") + ELSE (HDF5_ENABLE_USING_MEMCHECKER) + ADD_TEST ( + NAME H5DIFF-${resultfile} + COMMAND "${CMAKE_COMMAND}" + -D "TEST_PROGRAM=$<TARGET_FILE:h5diff>" + -D "TEST_ARGS:STRING=${ARGN}" + -D "TEST_FOLDER=${PROJECT_BINARY_DIR}" + -D "TEST_OUTPUT=${resultfile}.out" + -D "TEST_EXPECT=${resultcode}" + -D "TEST_REFERENCE=${resultfile}.txt" + -D "TEST_APPEND=EXIT CODE:" + -P "${HDF5_RESOURCES_DIR}/runTest.cmake" + ) + ENDIF (HDF5_ENABLE_USING_MEMCHECKER) IF (NOT "${last_test}" STREQUAL "") SET_TESTS_PROPERTIES (H5DIFF-${resultfile} PROPERTIES DEPENDS ${last_test}) ENDIF (NOT "${last_test}" STREQUAL "") @@ -332,6 +353,10 @@ IF (BUILD_TESTING) SET (EXCLUDE_FILE2_2 h5diff_exclude2-2.h5) # compound type with multiple vlen string types SET (COMP_VL_STRS_FILE h5diff_comp_vl_strs.h5) + # attrs with verbose option level + SET (ATTR_VERBOSE_LEVEL_FILE1 h5diff_attr_v_level1.h5) + SET (ATTR_VERBOSE_LEVEL_FILE2 h5diff_attr_v_level2.h5) + # Remove any output file left over from previous test run ADD_TEST ( @@ -604,6 +629,28 @@ IF (BUILD_TESTING) h5diff_629.out.err h5diff_70.out h5diff_70.out.err + h5diff_700.out + h5diff_700.out.err + h5diff_701.out + h5diff_701.out.err + h5diff_702.out + h5diff_702.out.err + h5diff_703.out + h5diff_703.out.err + h5diff_704.out + h5diff_704.out.err + h5diff_705.out + h5diff_705.out.err + h5diff_706.out + h5diff_706.out.err + h5diff_707.out + h5diff_707.out.err + h5diff_708.out + h5diff_708.out.err + h5diff_709.out + h5diff_709.out.err + h5diff_710.out + h5diff_710.out.err h5diff_80.out h5diff_80.out.err h5diff_90.out @@ -614,12 +661,6 @@ IF (BUILD_TESTING) ENDIF (NOT "${last_test}" STREQUAL "") SET (last_test "H5DIFF-clearall-objects") - # If using memchecker add tests without using scripts - IF (HDF5_ENABLE_USING_MEMCHECKER) - ADD_TEST (NAME H5DIFF-help COMMAND h5diff -h) - ADD_TEST (NAME H5DIFF-normal-mode COMMAND h5diff ${FILE1} ${FILE2}) - ENDIF (HDF5_ENABLE_USING_MEMCHECKER) - # ############################################################################ # # Common usage # ############################################################################ @@ -842,6 +883,37 @@ ADD_H5_TEST (h5diff_628 1 -n 1 ${FILE1} ${FILE2} g1/dset3 g1/dset4) # ############################################################################## ADD_H5_TEST (h5diff_70 1 -v ${FILE5} ${FILE6}) +# ################################################## +# attrs with verbose option level +# ################################################## +ADD_H5_TEST (h5diff_700 1 -v1 ${FILE5} ${FILE6}) +ADD_H5_TEST (h5diff_701 1 -v2 ${FILE5} ${FILE6}) +ADD_H5_TEST (h5diff_702 1 --verbose=1 ${FILE5} ${FILE6}) +ADD_H5_TEST (h5diff_703 1 --verbose=2 ${FILE5} ${FILE6}) + +# same attr number , all same attr name +ADD_H5_TEST (h5diff_704 1 -v2 ${ATTR_VERBOSE_LEVEL_FILE1} ${ATTR_VERBOSE_LEVEL_FILE2} /g) + +# same attr number , some same attr name +ADD_H5_TEST (h5diff_705 1 -v2 ${ATTR_VERBOSE_LEVEL_FILE1} ${ATTR_VERBOSE_LEVEL_FILE2} /dset) + +# same attr number , all different attr name +ADD_H5_TEST (h5diff_706 0 -v2 ${ATTR_VERBOSE_LEVEL_FILE1} ${ATTR_VERBOSE_LEVEL_FILE2} /ntype) + +# different attr number , same attr name (intersected) +ADD_H5_TEST (h5diff_707 1 -v2 ${ATTR_VERBOSE_LEVEL_FILE1} ${ATTR_VERBOSE_LEVEL_FILE2} /g2) + +# different attr number , all different attr name +ADD_H5_TEST (h5diff_708 0 -v2 ${ATTR_VERBOSE_LEVEL_FILE1} ${ATTR_VERBOSE_LEVEL_FILE2} /g3) + +# when no attributes exist in both objects +ADD_H5_TEST (h5diff_709 0 -v2 ${ATTR_VERBOSE_LEVEL_FILE1} ${ATTR_VERBOSE_LEVEL_FILE2} /g4) + +# file vs file +ADD_H5_TEST (h5diff_710 1 -v2 ${ATTR_VERBOSE_LEVEL_FILE1} ${ATTR_VERBOSE_LEVEL_FILE2}) + + + # ############################################################################## # 8. all dataset datatypes # ############################################################################## diff --git a/tools/h5diff/h5diff_common.c b/tools/h5diff/h5diff_common.c index 84eb49a..da420b0 100644 --- a/tools/h5diff/h5diff_common.c +++ b/tools/h5diff/h5diff_common.c @@ -27,12 +27,12 @@ static int check_d_input( const char* ); * Command-line options: The user can specify short or long-named * parameters. */ -static const char *s_opts = "hVrvqn:d:p:Nc"; +static const char *s_opts = "hVrv:qn:d:p:Nc"; static struct long_options l_opts[] = { { "help", no_arg, 'h' }, { "version", no_arg, 'V' }, { "report", no_arg, 'r' }, - { "verbose", no_arg, 'v' }, + { "verbose", optional_arg, 'v' }, { "quiet", no_arg, 'q' }, { "count", require_arg, 'n' }, { "delta", require_arg, 'd' }, @@ -63,7 +63,7 @@ void parse_command_line(int argc, const char** objname2, diff_opt_t* options) { - + int i; int opt; struct exclude_path_list *exclude_head, *exclude_prev, *exclude_node; @@ -95,6 +95,40 @@ void parse_command_line(int argc, h5diff_exit(EXIT_SUCCESS); case 'v': options->m_verbose = 1; + /* This for loop is for handling style like + * -v, -v1, --verbose, --verbose=1. + */ + for (i = 1; i < argc; i++) + { + /* + * short opt + */ + if (!strcmp (argv[i], "-v")) /* no arg */ + { + opt_ind--; + options->m_verbose_level = 0; + break; + } + else if (!strncmp (argv[i], "-v", 2)) + { + options->m_verbose_level = atoi(&argv[i][2]); + break; + } + + /* + * long opt + */ + if (!strcmp (argv[i], "--verbose")) /* no arg */ + { + options->m_verbose_level = 0; + break; + } + else if ( !strncmp (argv[i], "--verbose", 9) && argv[i][9]=='=') + { + options->m_verbose_level = atoi(&argv[i][10]); + break; + } + } break; case 'q': /* use quiet mode; supress the message "0 differences found" */ @@ -104,7 +138,7 @@ void parse_command_line(int argc, options->m_report = 1; break; case 'l': - options->follow_links = 1; + options->follow_links = 1; break; case 'x': options->no_dangle_links = 1; @@ -399,7 +433,16 @@ void usage(void) printf(" -h, --help Print a usage message and exit.\n"); printf(" -V, --version Print version number and exit.\n"); printf(" -r, --report Report mode. Print differences.\n"); - printf(" -v, --verbose Verbose mode. Print differences, list of objects.\n"); + printf(" -v --verbose Verbose mode. Print differences information and list\n"); + printf(" of objects.\n"); + printf(" -vN --verbose=N Verbose mode with level. Print differences and list\n"); + printf(" of objects.\n"); + printf(" Level of detail depends on value of N:\n"); + printf(" 0 : Identical to '-v' or '--verbose'.\n"); + printf(" 1 : All level 0 information plus one-line attribute\n"); + printf(" status summary.\n"); + printf(" 2 : All level 1 information plus extended attribute\n"); + printf(" status report.\n"); printf(" -q, --quiet Quiet mode. Do not produce output.\n"); printf(" --follow-symlinks Follow symbolic links (soft links and external links)\n"); printf(" and compare the links' target objects.\n"); diff --git a/tools/h5diff/h5diffgentest.c b/tools/h5diff/h5diffgentest.c index 4b397a5..8b9c879 100644 --- a/tools/h5diff/h5diffgentest.c +++ b/tools/h5diff/h5diffgentest.c @@ -72,6 +72,9 @@ #define EXCLUDE_FILE2_2 "h5diff_exclude2-2.h5" /* compound type with multiple vlen string types */ #define COMP_VL_STRS_FILE "h5diff_comp_vl_strs.h5" +/* attribute compre with verbose level */ +#define ATTR_VERBOSE_LEVEL_FILE1 "h5diff_attr_v_level1.h5" +#define ATTR_VERBOSE_LEVEL_FILE2 "h5diff_attr_v_level2.h5" #define UIMAX 4294967295u /*Maximum value for a variable of type unsigned int */ #define STR_SIZE 3 @@ -117,10 +120,11 @@ static int test_external_links(const char *fname1, const char *fname2); static int test_ext2soft_links(const char *fname1, const char *fname2); static int test_dangle_links(const char *fname1, const char *fname2); static int test_group_recurse(const char *fname1, const char *fname2); -static int test_group_recurse2(); +static int test_group_recurse2(void); static int test_exclude_obj1(const char *fname1, const char *fname2); static int test_exclude_obj2(const char *fname1, const char *fname2); static int test_comp_vlen_strings(const char *fname1); +static int test_attributes_verbose_level(const char *fname1, const char *fname2); /* called by test_attributes() and test_datasets() */ static void write_attr_in(hid_t loc_id,const char* dset_name,hid_t fid,int make_diffs); @@ -151,6 +155,9 @@ int main(void) test_attributes(FILE5,0); test_attributes(FILE6,1); + /* test attributes with verbose level */ + test_attributes_verbose_level(ATTR_VERBOSE_LEVEL_FILE1, ATTR_VERBOSE_LEVEL_FILE2); + /* generate 2 files, the second call creates a similar file with differences */ test_datasets(FILE7,0); test_datasets(FILE8,1); @@ -905,6 +912,293 @@ int test_attributes(const char *file, /*------------------------------------------------------------------------- +* Function: test_attributes_verbose_level +* +* Purpose: Cresting test files for testing attributes along with +* levels of verbos option +* +*------------------------------------------------------------------------- +*/ +static int test_attributes_verbose_level(const char *fname1, const char *fname2) +{ + int i; + herr_t status = SUCCEED; + hid_t fid1, fid2; + hid_t f1_gid, f2_gid; + hid_t f1_gid2, f2_gid2; + hid_t f1_gid3, f2_gid3; + hid_t f1_gid4, f2_gid4; + hid_t f1_did, f2_did; + hid_t f1_sid, f2_sid; + hid_t f1_tid, f2_tid; + /* dset */ + hsize_t dset_dims[1]={3}; + int dset_data[3] = {0,1,2}; + + /* common attrs dim */ + hsize_t attr_dims[1]={2}; + + /* file1 attr */ + int f1_attr_idata[2]= {1,2}; /* integer */ + float f1_attr_fdata[2]= {1.1,2.2}; /* float */ + /* file2 attr */ + int f2_attr_idata[2]= {2,3}; /* integer */ + float f2_attr_fdata[2]= {2.1,3.2}; /* float */ + + + /*---------------------------------------------------------------------- + * Create file1 + *-----------------------------------------------------------------------*/ + if((fid1 = H5Fcreate(fname1, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) + { + fprintf(stderr, "Error: %s> H5Fcreate failed.\n", fname1); + status = FAIL; + goto out; + } + + /*---------------------------------- + * Groups + */ + f1_gid = H5Gcreate2(fid1, "g", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + if (f1_gid < 0) + { + fprintf(stderr, "Error: %s> H5Gcreate2 failed.\n", fname1); + status = FAIL; + goto out; + } + + f1_gid2 = H5Gcreate2(fid1, "g2", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + if (f1_gid2 < 0) + { + fprintf(stderr, "Error: %s> H5Gcreate2 failed.\n", fname1); + status = FAIL; + goto out; + } + + f1_gid3 = H5Gcreate2(fid1, "g3", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + if (f1_gid3 < 0) + { + fprintf(stderr, "Error: %s> H5Gcreate2 failed.\n", fname1); + status = FAIL; + goto out; + } + + f1_gid4 = H5Gcreate2(fid1, "g4", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + if (f1_gid4 < 0) + { + fprintf(stderr, "Error: %s> H5Gcreate2 failed.\n", fname2); + status = FAIL; + goto out; + } + + /*---------------------------------- + * Datasets + */ + f1_sid = H5Screate_simple(1, dset_dims, NULL); + f1_did = H5Dcreate2(fid1, "dset", H5T_NATIVE_INT, f1_sid, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + if (f1_did == FAIL) + { + fprintf(stderr, "Error: %s> write_dset failed\n", fname1); + status = FAIL; + goto out; + } + status = H5Dwrite(f1_did, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, dset_data); + if (status < 0) + { + fprintf(stderr, "Error: %s> H5Dwrite failed.\n", fname1); + status = FAIL; + goto out; + } + + /*---------------------------------- + * Named Datatype + */ + f1_tid = H5Tcopy(H5T_NATIVE_INT); + status = H5Tcommit2(fid1, "ntype", f1_tid, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + if (status < 0) + { + fprintf(stderr, "Error: %s> H5Tcommit2 failed.\n", fname1); + status = FAIL; + goto out; + } + + + + + /*---------------------------------------------------------------------- + * Create file2 + *-----------------------------------------------------------------------*/ + if((fid2 = H5Fcreate(fname2, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) + { + fprintf(stderr, "Error: %s> H5Fcreate failed.\n", fname2); + status = FAIL; + goto out; + } + + /*---------------------------------- + * Groups + */ + f2_gid = H5Gcreate2(fid2, "g", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + if (f2_gid < 0) + { + fprintf(stderr, "Error: %s> H5Gcreate2 failed.\n", fname2); + status = FAIL; + goto out; + } + + f2_gid2 = H5Gcreate2(fid2, "g2", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + if (f2_gid2 < 0) + { + fprintf(stderr, "Error: %s> H5Gcreate2 failed.\n", fname2); + status = FAIL; + goto out; + } + + f2_gid3 = H5Gcreate2(fid2, "g3", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + if (f2_gid3 < 0) + { + fprintf(stderr, "Error: %s> H5Gcreate2 failed.\n", fname2); + status = FAIL; + goto out; + } + + f2_gid4 = H5Gcreate2(fid2, "g4", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + if (f2_gid4 < 0) + { + fprintf(stderr, "Error: %s> H5Gcreate2 failed.\n", fname2); + status = FAIL; + goto out; + } + + /*---------------------------------- + * Datasets + */ + f2_sid = H5Screate_simple(1, dset_dims, NULL); + f2_did = H5Dcreate2(fid2, "dset", H5T_NATIVE_INT, f2_sid, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + if (f2_did == FAIL) + { + fprintf(stderr, "Error: %s> write_dset failed\n", fname2); + status = FAIL; + goto out; + } + status = H5Dwrite(f2_did, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, dset_data); + if (status < 0) + { + fprintf(stderr, "Error: %s> H5Dwrite failed.\n", fname2); + status = FAIL; + goto out; + } + + /*---------------------------------- + * Named Datatype + */ + f2_tid = H5Tcopy(H5T_NATIVE_INT); + status = H5Tcommit2(fid2, "ntype", f2_tid, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + if (status < 0) + { + fprintf(stderr, "Error: %s> H5Tcommit2 failed.\n", fname2); + status = FAIL; + goto out; + } + + /*---------------------------------- + * CASE1 - Same attr number, all Same attr name + * add attr to group + */ + write_attr(f1_gid,1,attr_dims,"integer1",H5T_NATIVE_INT,f1_attr_idata); + write_attr(f1_gid,1,attr_dims,"float1",H5T_NATIVE_FLOAT,f1_attr_fdata); + + write_attr(f2_gid,1,attr_dims,"integer1",H5T_NATIVE_INT,f2_attr_idata); + write_attr(f2_gid,1,attr_dims,"float1",H5T_NATIVE_FLOAT,f2_attr_fdata); + + /*---------------------------------- + * CASE2 - Same attr number, some Same attr name + * add attr to dset + */ + write_attr(f1_did,1,attr_dims,"integer1",H5T_NATIVE_INT,f1_attr_idata); + write_attr(f1_did,1,attr_dims,"float2",H5T_NATIVE_FLOAT,f1_attr_fdata); + + write_attr(f2_did,1,attr_dims,"integer1",H5T_NATIVE_INT,f2_attr_idata); + write_attr(f2_did,1,attr_dims,"float3",H5T_NATIVE_FLOAT,f2_attr_fdata); + + /*---------------------------------- + * CASE3 - Same attr number, all different attr name + * add attr to ntype + */ + write_attr(f1_tid,1,attr_dims,"integer1",H5T_NATIVE_INT,f1_attr_idata); + write_attr(f1_tid,1,attr_dims,"float2",H5T_NATIVE_FLOAT,f1_attr_fdata); + write_attr(f1_tid,1,attr_dims,"float3",H5T_NATIVE_FLOAT,f1_attr_fdata); + + write_attr(f2_tid,1,attr_dims,"integer4",H5T_NATIVE_INT,f2_attr_idata); + write_attr(f2_tid,1,attr_dims,"float5",H5T_NATIVE_FLOAT,f2_attr_fdata); + write_attr(f2_tid,1,attr_dims,"float6",H5T_NATIVE_FLOAT,f2_attr_fdata); + + /*---------------------------------- + * CASE4 - Different attr number, some same attr name (vs file2-g2) + * add attr to g2 + */ + write_attr(f1_gid2,1,attr_dims,"integer1",H5T_NATIVE_INT,f1_attr_idata); + write_attr(f1_gid2,1,attr_dims,"float2",H5T_NATIVE_FLOAT,f1_attr_fdata); + write_attr(f1_gid2,1,attr_dims,"float3",H5T_NATIVE_FLOAT,f1_attr_fdata); + + write_attr(f2_gid2,1,attr_dims,"integer1",H5T_NATIVE_INT,f2_attr_idata); + write_attr(f2_gid2,1,attr_dims,"float2",H5T_NATIVE_FLOAT,f2_attr_fdata); + + + /*---------------------------------- + * CASE5 - Different attr number, all different attr name + * add attr to g3 + */ + write_attr(f1_gid3,1,attr_dims,"integer10",H5T_NATIVE_INT,f1_attr_idata); + write_attr(f1_gid3,1,attr_dims,"float11",H5T_NATIVE_FLOAT,f1_attr_fdata); + write_attr(f1_gid3,1,attr_dims,"float12",H5T_NATIVE_FLOAT,f1_attr_fdata); + + write_attr(f2_gid3,1,attr_dims,"integer3",H5T_NATIVE_INT,f2_attr_idata); + write_attr(f2_gid3,1,attr_dims,"float4",H5T_NATIVE_FLOAT,f2_attr_fdata); + + +out: + /*----------------------------------------------------------------------- + * Close + *-----------------------------------------------------------------------*/ + if(fid1) + H5Fclose(fid1); + if(fid2) + H5Fclose(fid2); + if(f1_gid > 0) + H5Gclose(f1_gid); + if(f2_gid > 0) + H5Gclose(f2_gid); + if(f1_gid2 > 0) + H5Gclose(f1_gid2); + if(f2_gid2 > 0) + H5Gclose(f2_gid2); + if(f1_gid3 > 0) + H5Gclose(f1_gid3); + if(f2_gid3 > 0) + H5Gclose(f2_gid3); + if(f1_gid4 > 0) + H5Gclose(f1_gid4); + if(f2_gid4 > 0) + H5Gclose(f2_gid4); + if(f1_did > 0) + H5Dclose(f1_did); + if(f2_did > 0) + H5Dclose(f2_did); + if(f1_sid >0) + H5Sclose(f1_sid); + if(f2_sid >0) + H5Sclose(f2_sid); + if(f1_tid >0) + H5Tclose(f1_tid); + if(f2_tid >0) + H5Tclose(f2_tid); + + return status; +} + + +/*------------------------------------------------------------------------- * Function: test_datasets * * Purpose: Check all HDF5 classes @@ -964,7 +1258,7 @@ int test_datasets(const char *file, /*------------------------------------------------------------------------- * -* Purpose: Create test files to compare links, one has longer name than +* Purpose: Create test files to compare links, one has longer name than * the other and short name is subset of long name. * * Programmer: Jonathan Kim (Feb 17, 2010) @@ -2427,7 +2721,7 @@ out: *-------------------------------------------------------------------------*/ #define GRP_R_DSETNAME1 "dset1" #define GRP_R_DSETNAME2 "dset2" -static int test_group_recurse2() +static int test_group_recurse2(void) { hid_t fileid1; hid_t grp1=0, grp2; diff --git a/tools/h5diff/testfiles/h5diff_10.txt b/tools/h5diff/testfiles/h5diff_10.txt index 4dae480..0b354df 100644 --- a/tools/h5diff/testfiles/h5diff_10.txt +++ b/tools/h5diff/testfiles/h5diff_10.txt @@ -8,7 +8,16 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[ obj2]] -h, --help Print a usage message and exit. -V, --version Print version number and exit. -r, --report Report mode. Print differences. - -v, --verbose Verbose mode. Print differences, list of objects. + -v --verbose Verbose mode. Print differences information and list + of objects. + -vN --verbose=N Verbose mode with level. Print differences and list + of objects. + Level of detail depends on value of N: + 0 : Identical to '-v' or '--verbose'. + 1 : All level 0 information plus one-line attribute + status summary. + 2 : All level 1 information plus extended attribute + status report. -q, --quiet Quiet mode. Do not produce output. --follow-symlinks Follow symbolic links (soft links and external links) and compare the links' target objects. diff --git a/tools/h5diff/testfiles/h5diff_600.txt b/tools/h5diff/testfiles/h5diff_600.txt index ea767fc..efc05a8 100644 --- a/tools/h5diff/testfiles/h5diff_600.txt +++ b/tools/h5diff/testfiles/h5diff_600.txt @@ -8,7 +8,16 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[ obj2]] -h, --help Print a usage message and exit. -V, --version Print version number and exit. -r, --report Report mode. Print differences. - -v, --verbose Verbose mode. Print differences, list of objects. + -v --verbose Verbose mode. Print differences information and list + of objects. + -vN --verbose=N Verbose mode with level. Print differences and list + of objects. + Level of detail depends on value of N: + 0 : Identical to '-v' or '--verbose'. + 1 : All level 0 information plus one-line attribute + status summary. + 2 : All level 1 information plus extended attribute + status report. -q, --quiet Quiet mode. Do not produce output. --follow-symlinks Follow symbolic links (soft links and external links) and compare the links' target objects. diff --git a/tools/h5diff/testfiles/h5diff_603.txt b/tools/h5diff/testfiles/h5diff_603.txt index 1c48c8b..c66c650 100644 --- a/tools/h5diff/testfiles/h5diff_603.txt +++ b/tools/h5diff/testfiles/h5diff_603.txt @@ -9,7 +9,16 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[ obj2]] -h, --help Print a usage message and exit. -V, --version Print version number and exit. -r, --report Report mode. Print differences. - -v, --verbose Verbose mode. Print differences, list of objects. + -v --verbose Verbose mode. Print differences information and list + of objects. + -vN --verbose=N Verbose mode with level. Print differences and list + of objects. + Level of detail depends on value of N: + 0 : Identical to '-v' or '--verbose'. + 1 : All level 0 information plus one-line attribute + status summary. + 2 : All level 1 information plus extended attribute + status report. -q, --quiet Quiet mode. Do not produce output. --follow-symlinks Follow symbolic links (soft links and external links) and compare the links' target objects. diff --git a/tools/h5diff/testfiles/h5diff_606.txt b/tools/h5diff/testfiles/h5diff_606.txt index 8f3bbd6..705ae3e 100644 --- a/tools/h5diff/testfiles/h5diff_606.txt +++ b/tools/h5diff/testfiles/h5diff_606.txt @@ -9,7 +9,16 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[ obj2]] -h, --help Print a usage message and exit. -V, --version Print version number and exit. -r, --report Report mode. Print differences. - -v, --verbose Verbose mode. Print differences, list of objects. + -v --verbose Verbose mode. Print differences information and list + of objects. + -vN --verbose=N Verbose mode with level. Print differences and list + of objects. + Level of detail depends on value of N: + 0 : Identical to '-v' or '--verbose'. + 1 : All level 0 information plus one-line attribute + status summary. + 2 : All level 1 information plus extended attribute + status report. -q, --quiet Quiet mode. Do not produce output. --follow-symlinks Follow symbolic links (soft links and external links) and compare the links' target objects. diff --git a/tools/h5diff/testfiles/h5diff_612.txt b/tools/h5diff/testfiles/h5diff_612.txt index e348caa..d38e9d4 100644 --- a/tools/h5diff/testfiles/h5diff_612.txt +++ b/tools/h5diff/testfiles/h5diff_612.txt @@ -9,7 +9,16 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[ obj2]] -h, --help Print a usage message and exit. -V, --version Print version number and exit. -r, --report Report mode. Print differences. - -v, --verbose Verbose mode. Print differences, list of objects. + -v --verbose Verbose mode. Print differences information and list + of objects. + -vN --verbose=N Verbose mode with level. Print differences and list + of objects. + Level of detail depends on value of N: + 0 : Identical to '-v' or '--verbose'. + 1 : All level 0 information plus one-line attribute + status summary. + 2 : All level 1 information plus extended attribute + status report. -q, --quiet Quiet mode. Do not produce output. --follow-symlinks Follow symbolic links (soft links and external links) and compare the links' target objects. diff --git a/tools/h5diff/testfiles/h5diff_615.txt b/tools/h5diff/testfiles/h5diff_615.txt index 1bb0eb5..4b95ea1 100644 --- a/tools/h5diff/testfiles/h5diff_615.txt +++ b/tools/h5diff/testfiles/h5diff_615.txt @@ -9,7 +9,16 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[ obj2]] -h, --help Print a usage message and exit. -V, --version Print version number and exit. -r, --report Report mode. Print differences. - -v, --verbose Verbose mode. Print differences, list of objects. + -v --verbose Verbose mode. Print differences information and list + of objects. + -vN --verbose=N Verbose mode with level. Print differences and list + of objects. + Level of detail depends on value of N: + 0 : Identical to '-v' or '--verbose'. + 1 : All level 0 information plus one-line attribute + status summary. + 2 : All level 1 information plus extended attribute + status report. -q, --quiet Quiet mode. Do not produce output. --follow-symlinks Follow symbolic links (soft links and external links) and compare the links' target objects. diff --git a/tools/h5diff/testfiles/h5diff_621.txt b/tools/h5diff/testfiles/h5diff_621.txt index 172cade..56ed724 100644 --- a/tools/h5diff/testfiles/h5diff_621.txt +++ b/tools/h5diff/testfiles/h5diff_621.txt @@ -9,7 +9,16 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[ obj2]] -h, --help Print a usage message and exit. -V, --version Print version number and exit. -r, --report Report mode. Print differences. - -v, --verbose Verbose mode. Print differences, list of objects. + -v --verbose Verbose mode. Print differences information and list + of objects. + -vN --verbose=N Verbose mode with level. Print differences and list + of objects. + Level of detail depends on value of N: + 0 : Identical to '-v' or '--verbose'. + 1 : All level 0 information plus one-line attribute + status summary. + 2 : All level 1 information plus extended attribute + status report. -q, --quiet Quiet mode. Do not produce output. --follow-symlinks Follow symbolic links (soft links and external links) and compare the links' target objects. diff --git a/tools/h5diff/testfiles/h5diff_622.txt b/tools/h5diff/testfiles/h5diff_622.txt index beb04c5..6e2db1b 100644 --- a/tools/h5diff/testfiles/h5diff_622.txt +++ b/tools/h5diff/testfiles/h5diff_622.txt @@ -9,7 +9,16 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[ obj2]] -h, --help Print a usage message and exit. -V, --version Print version number and exit. -r, --report Report mode. Print differences. - -v, --verbose Verbose mode. Print differences, list of objects. + -v --verbose Verbose mode. Print differences information and list + of objects. + -vN --verbose=N Verbose mode with level. Print differences and list + of objects. + Level of detail depends on value of N: + 0 : Identical to '-v' or '--verbose'. + 1 : All level 0 information plus one-line attribute + status summary. + 2 : All level 1 information plus extended attribute + status report. -q, --quiet Quiet mode. Do not produce output. --follow-symlinks Follow symbolic links (soft links and external links) and compare the links' target objects. diff --git a/tools/h5diff/testfiles/h5diff_623.txt b/tools/h5diff/testfiles/h5diff_623.txt index 56c0b4c..910f4f0 100644 --- a/tools/h5diff/testfiles/h5diff_623.txt +++ b/tools/h5diff/testfiles/h5diff_623.txt @@ -9,7 +9,16 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[ obj2]] -h, --help Print a usage message and exit. -V, --version Print version number and exit. -r, --report Report mode. Print differences. - -v, --verbose Verbose mode. Print differences, list of objects. + -v --verbose Verbose mode. Print differences information and list + of objects. + -vN --verbose=N Verbose mode with level. Print differences and list + of objects. + Level of detail depends on value of N: + 0 : Identical to '-v' or '--verbose'. + 1 : All level 0 information plus one-line attribute + status summary. + 2 : All level 1 information plus extended attribute + status report. -q, --quiet Quiet mode. Do not produce output. --follow-symlinks Follow symbolic links (soft links and external links) and compare the links' target objects. diff --git a/tools/h5diff/testfiles/h5diff_624.txt b/tools/h5diff/testfiles/h5diff_624.txt index c0a95ed..e301645 100644 --- a/tools/h5diff/testfiles/h5diff_624.txt +++ b/tools/h5diff/testfiles/h5diff_624.txt @@ -9,7 +9,16 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[ obj2]] -h, --help Print a usage message and exit. -V, --version Print version number and exit. -r, --report Report mode. Print differences. - -v, --verbose Verbose mode. Print differences, list of objects. + -v --verbose Verbose mode. Print differences information and list + of objects. + -vN --verbose=N Verbose mode with level. Print differences and list + of objects. + Level of detail depends on value of N: + 0 : Identical to '-v' or '--verbose'. + 1 : All level 0 information plus one-line attribute + status summary. + 2 : All level 1 information plus extended attribute + status report. -q, --quiet Quiet mode. Do not produce output. --follow-symlinks Follow symbolic links (soft links and external links) and compare the links' target objects. diff --git a/tools/h5diff/testfiles/h5diff_70.txt b/tools/h5diff/testfiles/h5diff_70.txt index 7abcddd..c6aeb68 100644 --- a/tools/h5diff/testfiles/h5diff_70.txt +++ b/tools/h5diff/testfiles/h5diff_70.txt @@ -7,15 +7,6 @@ file1 file2 group : </> and </> 0 differences found -attribute: <string of </>> and <string of </>> -size: [2] [2] -position string of </> string of </> difference ------------------------------------------------------------- -[ 0 ] a z -[ 0 ] b z -[ 1 ] d z -[ 1 ] e z -4 differences found attribute: <VLstring of </>> and <VLstring of </>> size: [2] [2] position VLstring of </> VLstring of </> difference @@ -25,86 +16,6 @@ position VLstring of </> VLstring of </> difference [ 1 ] d z [ 1 ] e z 4 differences found -attribute: <bitfield of </>> and <bitfield of </>> -size: [2] [2] -position bitfield of </> bitfield of </> difference ------------------------------------------------------------- -[ 0 ] 1 0 1 -[ 1 ] 2 0 2 -2 differences found -attribute: <opaque of </>> and <opaque of </>> -size: [2] [2] -position opaque of </> opaque of </> difference ------------------------------------------------------------- -[ 0 ] 1 0 1 -[ 1 ] 2 0 2 -2 differences found -attribute: <compound of </>> and <compound of </>> -size: [2] [2] -position compound of </> compound of </> difference ------------------------------------------------------------- -[ 0 ] 1 0 1 -[ 0 ] 2 0 2 -[ 1 ] 3 0 3 -[ 1 ] 4 0 4 -4 differences found -attribute: <enum of </>> and <enum of </>> -size: [2] [2] -position enum of </> enum of </> difference ------------------------------------------------------------- -[ 0 ] RED GREEN -[ 1 ] RED GREEN -2 differences found -attribute: <vlen of </>> and <vlen of </>> -size: [2] [2] -position vlen of </> vlen of </> difference ------------------------------------------------------------- -[ 0 ] 1 0 1 -[ 1 ] 2 0 2 -[ 1 ] 3 0 3 -3 differences found -attribute: <array of </>> and <array of </>> -size: [2] [2] -position array of </> array of </> difference ------------------------------------------------------------- -[ 0 ] 1 0 1 -[ 0 ] 2 0 2 -[ 0 ] 3 0 3 -[ 1 ] 4 0 4 -[ 1 ] 5 0 5 -[ 1 ] 6 0 6 -6 differences found -attribute: <integer of </>> and <integer of </>> -size: [2] [2] -position integer of </> integer of </> difference ------------------------------------------------------------- -[ 0 ] 1 0 1 -[ 1 ] 2 0 2 -2 differences found -attribute: <float of </>> and <float of </>> -size: [2] [2] -position float of </> float of </> difference ------------------------------------------------------------- -[ 0 ] 1 0 1 -[ 1 ] 2 0 2 -2 differences found -attribute: <string2D of </>> and <string2D of </>> -size: [3x2] [3x2] -position string2D of </> string2D of </> difference ------------------------------------------------------------- -[ 0 0 ] a z -[ 0 0 ] b z -[ 0 1 ] c z -[ 0 1 ] d z -[ 1 0 ] e z -[ 1 0 ] f z -[ 1 1 ] g z -[ 1 1 ] h z -[ 2 0 ] i z -[ 2 0 ] j z -[ 2 1 ] k z -[ 2 1 ] l z -12 differences found attribute: <VLstring2D of </>> and <VLstring2D of </>> size: [3x2] [3x2] position VLstring2D of </> VLstring2D of </> difference @@ -122,169 +33,6 @@ position VLstring2D of </> VLstring2D of </> difference [ 2 1 ] k z [ 2 1 ] l z 12 differences found -attribute: <bitfield2D of </>> and <bitfield2D of </>> -size: [3x2] [3x2] -position bitfield2D of </> bitfield2D of </> difference ------------------------------------------------------------- -[ 0 0 ] 1 0 1 -[ 0 1 ] 2 0 2 -[ 1 0 ] 3 0 3 -[ 1 1 ] 4 0 4 -[ 2 0 ] 5 0 5 -[ 2 1 ] 6 0 6 -6 differences found -attribute: <opaque2D of </>> and <opaque2D of </>> -size: [3x2] [3x2] -position opaque2D of </> opaque2D of </> difference ------------------------------------------------------------- -[ 0 0 ] 1 0 1 -[ 0 1 ] 2 0 2 -[ 1 0 ] 3 0 3 -[ 1 1 ] 4 0 4 -[ 2 0 ] 5 0 5 -[ 2 1 ] 6 0 6 -6 differences found -attribute: <compound2D of </>> and <compound2D of </>> -size: [3x2] [3x2] -position compound2D of </> compound2D of </> difference ------------------------------------------------------------- -[ 0 0 ] 1 0 1 -[ 0 0 ] 2 0 2 -[ 0 1 ] 3 0 3 -[ 0 1 ] 4 0 4 -[ 1 0 ] 5 0 5 -[ 1 0 ] 6 0 6 -[ 1 1 ] 7 0 7 -[ 1 1 ] 8 0 8 -[ 2 0 ] 9 0 9 -[ 2 0 ] 10 0 10 -[ 2 1 ] 11 0 11 -[ 2 1 ] 12 0 12 -12 differences found -attribute: <enum2D of </>> and <enum2D of </>> -size: [3x2] [3x2] -position enum2D of </> enum2D of </> difference ------------------------------------------------------------- -[ 0 0 ] RED GREEN -[ 0 1 ] RED GREEN -[ 1 0 ] RED GREEN -[ 1 1 ] RED GREEN -[ 2 0 ] RED GREEN -[ 2 1 ] RED GREEN -6 differences found -attribute: <vlen2D of </>> and <vlen2D of </>> -size: [3x2] [3x2] -position vlen2D of </> vlen2D of </> difference ------------------------------------------------------------- -[ 0 1 ] 1 0 1 -[ 1 0 ] 2 0 2 -[ 1 0 ] 3 0 3 -[ 1 1 ] 4 0 4 -[ 1 1 ] 5 0 5 -[ 2 0 ] 6 0 6 -[ 2 0 ] 7 0 7 -[ 2 0 ] 8 0 8 -[ 2 1 ] 9 0 9 -[ 2 1 ] 10 0 10 -[ 2 1 ] 11 0 11 -11 differences found -attribute: <array2D of </>> and <array2D of </>> -size: [3x2] [3x2] -position array2D of </> array2D of </> difference ------------------------------------------------------------- -[ 0 0 ] 1 0 1 -[ 0 0 ] 2 0 2 -[ 0 0 ] 3 0 3 -[ 0 1 ] 4 0 4 -[ 0 1 ] 5 0 5 -[ 0 1 ] 6 0 6 -[ 1 0 ] 7 0 7 -[ 1 0 ] 8 0 8 -[ 1 0 ] 9 0 9 -[ 1 1 ] 10 0 10 -[ 1 1 ] 11 0 11 -[ 1 1 ] 12 0 12 -[ 2 0 ] 13 0 13 -[ 2 0 ] 14 0 14 -[ 2 0 ] 15 0 15 -[ 2 1 ] 16 0 16 -[ 2 1 ] 17 0 17 -[ 2 1 ] 18 0 18 -18 differences found -attribute: <integer2D of </>> and <integer2D of </>> -size: [3x2] [3x2] -position integer2D of </> integer2D of </> difference ------------------------------------------------------------- -[ 0 0 ] 1 0 1 -[ 0 1 ] 2 0 2 -[ 1 0 ] 3 0 3 -[ 1 1 ] 4 0 4 -[ 2 0 ] 5 0 5 -[ 2 1 ] 6 0 6 -6 differences found -attribute: <float2D of </>> and <float2D of </>> -size: [3x2] [3x2] -position float2D of </> float2D of </> difference ------------------------------------------------------------- -[ 0 0 ] 1 0 1 -[ 0 1 ] 2 0 2 -[ 1 0 ] 3 0 3 -[ 1 1 ] 4 0 4 -[ 2 0 ] 5 0 5 -[ 2 1 ] 6 0 6 -6 differences found -attribute: <string3D of </>> and <string3D of </>> -size: [4x3x2] [4x3x2] -position string3D of </> string3D of </> difference ------------------------------------------------------------- -[ 0 0 0 ] a z -[ 0 0 0 ] b z -[ 0 0 1 ] c z -[ 0 0 1 ] d z -[ 0 1 0 ] e z -[ 0 1 0 ] f z -[ 0 1 1 ] g z -[ 0 1 1 ] h z -[ 0 2 0 ] i z -[ 0 2 0 ] j z -[ 0 2 1 ] k z -[ 0 2 1 ] l z -[ 1 0 0 ] m z -[ 1 0 0 ] n z -[ 1 0 1 ] p z -[ 1 0 1 ] q z -[ 1 1 0 ] r z -[ 1 1 0 ] s z -[ 1 1 1 ] t z -[ 1 1 1 ] u z -[ 1 2 0 ] v z -[ 1 2 0 ] w z -[ 1 2 1 ] x z -[ 2 0 0 ] A z -[ 2 0 0 ] B z -[ 2 0 1 ] C z -[ 2 0 1 ] D z -[ 2 1 0 ] E z -[ 2 1 0 ] F z -[ 2 1 1 ] G z -[ 2 1 1 ] H z -[ 2 2 0 ] I z -[ 2 2 0 ] J z -[ 2 2 1 ] K z -[ 2 2 1 ] L z -[ 3 0 0 ] M z -[ 3 0 0 ] N z -[ 3 0 1 ] P z -[ 3 0 1 ] Q z -[ 3 1 0 ] R z -[ 3 1 0 ] S z -[ 3 1 1 ] T z -[ 3 1 1 ] U z -[ 3 2 0 ] V z -[ 3 2 0 ] W z -[ 3 2 1 ] X z -[ 3 2 1 ] Z z -47 differences found attribute: <VLstring3D of </>> and <VLstring3D of </>> size: [4x3x2] [4x3x2] position VLstring3D of </> VLstring3D of </> difference @@ -337,38 +85,138 @@ position VLstring3D of </> VLstring3D of </> difference [ 3 2 1 ] X z [ 3 2 1 ] Z z 47 differences found -attribute: <bitfield3D of </>> and <bitfield3D of </>> +attribute: <array of </>> and <array of </>> +size: [2] [2] +position array of </> array of </> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 0 ] 2 0 2 +[ 0 ] 3 0 3 +[ 1 ] 4 0 4 +[ 1 ] 5 0 5 +[ 1 ] 6 0 6 +6 differences found +attribute: <array2D of </>> and <array2D of </>> +size: [3x2] [3x2] +position array2D of </> array2D of </> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 0 ] 2 0 2 +[ 0 0 ] 3 0 3 +[ 0 1 ] 4 0 4 +[ 0 1 ] 5 0 5 +[ 0 1 ] 6 0 6 +[ 1 0 ] 7 0 7 +[ 1 0 ] 8 0 8 +[ 1 0 ] 9 0 9 +[ 1 1 ] 10 0 10 +[ 1 1 ] 11 0 11 +[ 1 1 ] 12 0 12 +[ 2 0 ] 13 0 13 +[ 2 0 ] 14 0 14 +[ 2 0 ] 15 0 15 +[ 2 1 ] 16 0 16 +[ 2 1 ] 17 0 17 +[ 2 1 ] 18 0 18 +18 differences found +attribute: <array3D of </>> and <array3D of </>> size: [4x3x2] [4x3x2] -position bitfield3D of </> bitfield3D of </> difference +position array3D of </> array3D of </> difference ------------------------------------------------------------ [ 0 0 0 ] 1 0 1 -[ 0 0 1 ] 2 0 2 -[ 0 1 0 ] 3 0 3 -[ 0 1 1 ] 4 0 4 -[ 0 2 0 ] 5 0 5 -[ 0 2 1 ] 6 0 6 -[ 1 0 0 ] 7 0 7 -[ 1 0 1 ] 8 0 8 -[ 1 1 0 ] 9 0 9 -[ 1 1 1 ] 10 0 10 -[ 1 2 0 ] 11 0 11 -[ 1 2 1 ] 12 0 12 -[ 2 0 0 ] 13 0 13 -[ 2 0 1 ] 14 0 14 -[ 2 1 0 ] 15 0 15 -[ 2 1 1 ] 16 0 16 -[ 2 2 0 ] 17 0 17 -[ 2 2 1 ] 18 0 18 -[ 3 0 0 ] 19 0 19 -[ 3 0 1 ] 20 0 20 -[ 3 1 0 ] 21 0 21 -[ 3 1 1 ] 22 0 22 -[ 3 2 0 ] 23 0 23 -[ 3 2 1 ] 24 0 24 -24 differences found -attribute: <opaque3D of </>> and <opaque3D of </>> +[ 0 0 0 ] 2 0 2 +[ 0 0 0 ] 3 0 3 +[ 0 0 1 ] 4 0 4 +[ 0 0 1 ] 5 0 5 +[ 0 0 1 ] 6 0 6 +[ 0 1 0 ] 7 0 7 +[ 0 1 0 ] 8 0 8 +[ 0 1 0 ] 9 0 9 +[ 0 1 1 ] 10 0 10 +[ 0 1 1 ] 11 0 11 +[ 0 1 1 ] 12 0 12 +[ 0 2 0 ] 13 0 13 +[ 0 2 0 ] 14 0 14 +[ 0 2 0 ] 15 0 15 +[ 0 2 1 ] 16 0 16 +[ 0 2 1 ] 17 0 17 +[ 0 2 1 ] 18 0 18 +[ 1 0 0 ] 19 0 19 +[ 1 0 0 ] 20 0 20 +[ 1 0 0 ] 21 0 21 +[ 1 0 1 ] 22 0 22 +[ 1 0 1 ] 23 0 23 +[ 1 0 1 ] 24 0 24 +[ 1 1 0 ] 25 0 25 +[ 1 1 0 ] 26 0 26 +[ 1 1 0 ] 27 0 27 +[ 1 1 1 ] 28 0 28 +[ 1 1 1 ] 29 0 29 +[ 1 1 1 ] 30 0 30 +[ 1 2 0 ] 31 0 31 +[ 1 2 0 ] 32 0 32 +[ 1 2 0 ] 33 0 33 +[ 1 2 1 ] 34 0 34 +[ 1 2 1 ] 35 0 35 +[ 1 2 1 ] 36 0 36 +[ 2 0 0 ] 37 0 37 +[ 2 0 0 ] 38 0 38 +[ 2 0 0 ] 39 0 39 +[ 2 0 1 ] 40 0 40 +[ 2 0 1 ] 41 0 41 +[ 2 0 1 ] 42 0 42 +[ 2 1 0 ] 43 0 43 +[ 2 1 0 ] 44 0 44 +[ 2 1 0 ] 45 0 45 +[ 2 1 1 ] 46 0 46 +[ 2 1 1 ] 47 0 47 +[ 2 1 1 ] 48 0 48 +[ 2 2 0 ] 49 0 49 +[ 2 2 0 ] 50 0 50 +[ 2 2 0 ] 51 0 51 +[ 2 2 1 ] 52 0 52 +[ 2 2 1 ] 53 0 53 +[ 2 2 1 ] 54 0 54 +[ 3 0 0 ] 55 0 55 +[ 3 0 0 ] 56 0 56 +[ 3 0 0 ] 57 0 57 +[ 3 0 1 ] 58 0 58 +[ 3 0 1 ] 59 0 59 +[ 3 0 1 ] 60 0 60 +[ 3 1 0 ] 61 0 61 +[ 3 1 0 ] 62 0 62 +[ 3 1 0 ] 63 0 63 +[ 3 1 1 ] 64 0 64 +[ 3 1 1 ] 65 0 65 +[ 3 1 1 ] 66 0 66 +[ 3 2 0 ] 67 0 67 +[ 3 2 0 ] 68 0 68 +[ 3 2 0 ] 69 0 69 +[ 3 2 1 ] 70 0 70 +[ 3 2 1 ] 71 0 71 +[ 3 2 1 ] 72 0 72 +72 differences found +attribute: <bitfield of </>> and <bitfield of </>> +size: [2] [2] +position bitfield of </> bitfield of </> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <bitfield2D of </>> and <bitfield2D of </>> +size: [3x2] [3x2] +position bitfield2D of </> bitfield2D of </> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <bitfield3D of </>> and <bitfield3D of </>> size: [4x3x2] [4x3x2] -position opaque3D of </> opaque3D of </> difference +position bitfield3D of </> bitfield3D of </> difference ------------------------------------------------------------ [ 0 0 0 ] 1 0 1 [ 0 0 1 ] 2 0 2 @@ -395,6 +243,32 @@ position opaque3D of </> opaque3D of </> difference [ 3 2 0 ] 23 0 23 [ 3 2 1 ] 24 0 24 24 differences found +attribute: <compound of </>> and <compound of </>> +size: [2] [2] +position compound of </> compound of </> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 0 ] 2 0 2 +[ 1 ] 3 0 3 +[ 1 ] 4 0 4 +4 differences found +attribute: <compound2D of </>> and <compound2D of </>> +size: [3x2] [3x2] +position compound2D of </> compound2D of </> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 0 ] 2 0 2 +[ 0 1 ] 3 0 3 +[ 0 1 ] 4 0 4 +[ 1 0 ] 5 0 5 +[ 1 0 ] 6 0 6 +[ 1 1 ] 7 0 7 +[ 1 1 ] 8 0 8 +[ 2 0 ] 9 0 9 +[ 2 0 ] 10 0 10 +[ 2 1 ] 11 0 11 +[ 2 1 ] 12 0 12 +12 differences found attribute: <compound3D of </>> and <compound3D of </>> size: [4x3x2] [4x3x2] position compound3D of </> compound3D of </> difference @@ -448,6 +322,24 @@ position compound3D of </> compound3D of </> difference [ 3 2 1 ] 47 0 47 [ 3 2 1 ] 48 0 48 48 differences found +attribute: <enum of </>> and <enum of </>> +size: [2] [2] +position enum of </> enum of </> difference +------------------------------------------------------------ +[ 0 ] RED GREEN +[ 1 ] RED GREEN +2 differences found +attribute: <enum2D of </>> and <enum2D of </>> +size: [3x2] [3x2] +position enum2D of </> enum2D of </> difference +------------------------------------------------------------ +[ 0 0 ] RED GREEN +[ 0 1 ] RED GREEN +[ 1 0 ] RED GREEN +[ 1 1 ] RED GREEN +[ 2 0 ] RED GREEN +[ 2 1 ] RED GREEN +6 differences found attribute: <enum3D of </>> and <enum3D of </>> size: [4x3x2] [4x3x2] position enum3D of </> enum3D of </> difference @@ -477,147 +369,71 @@ position enum3D of </> enum3D of </> difference [ 3 2 0 ] GREEN RED [ 3 2 1 ] GREEN RED 24 differences found -attribute: <vlen3D of </>> and <vlen3D of </>> +attribute: <float of </>> and <float of </>> +size: [2] [2] +position float of </> float of </> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <float2D of </>> and <float2D of </>> +size: [3x2] [3x2] +position float2D of </> float2D of </> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <float3D of </>> and <float3D of </>> size: [4x3x2] [4x3x2] -position vlen3D of </> vlen3D of </> difference +position float3D of </> float3D of </> difference ------------------------------------------------------------ -[ 0 0 1 ] 1 0 1 -[ 0 1 0 ] 2 0 2 -[ 0 1 1 ] 3 0 3 -[ 0 2 0 ] 4 0 4 -[ 0 2 1 ] 5 0 5 -[ 1 0 0 ] 6 0 6 +[ 0 0 0 ] 1 0 1 +[ 0 0 1 ] 2 0 2 +[ 0 1 0 ] 3 0 3 +[ 0 1 1 ] 4 0 4 +[ 0 2 0 ] 5 0 5 +[ 0 2 1 ] 6 0 6 [ 1 0 0 ] 7 0 7 [ 1 0 1 ] 8 0 8 -[ 1 0 1 ] 9 0 9 -[ 1 1 0 ] 10 0 10 -[ 1 1 0 ] 11 0 11 -[ 1 1 1 ] 12 0 12 -[ 1 1 1 ] 13 0 13 -[ 1 2 0 ] 14 0 14 -[ 1 2 0 ] 15 0 15 -[ 1 2 1 ] 16 0 16 -[ 1 2 1 ] 17 0 17 -[ 2 0 0 ] 18 0 18 -[ 2 0 0 ] 19 0 19 -[ 2 0 0 ] 20 0 20 -[ 2 0 1 ] 21 0 21 -[ 2 0 1 ] 22 0 22 -[ 2 0 1 ] 23 0 23 -[ 2 1 0 ] 24 0 24 -[ 2 1 0 ] 25 0 25 -[ 2 1 0 ] 26 0 26 -[ 2 1 1 ] 27 0 27 -[ 2 1 1 ] 28 0 28 -[ 2 1 1 ] 29 0 29 -[ 2 2 0 ] 30 0 30 -[ 2 2 0 ] 31 0 31 -[ 2 2 0 ] 32 0 32 -[ 2 2 1 ] 33 0 33 -[ 2 2 1 ] 34 0 34 -[ 2 2 1 ] 35 0 35 -[ 3 0 0 ] 36 0 36 -[ 3 0 0 ] 37 0 37 -[ 3 0 0 ] 38 0 38 -[ 3 0 0 ] 39 0 39 -[ 3 0 1 ] 40 0 40 -[ 3 0 1 ] 41 0 41 -[ 3 0 1 ] 42 0 42 -[ 3 0 1 ] 43 0 43 -[ 3 1 0 ] 44 0 44 -[ 3 1 0 ] 45 0 45 -[ 3 1 0 ] 46 0 46 -[ 3 1 0 ] 47 0 47 -[ 3 1 1 ] 48 0 48 -[ 3 1 1 ] 49 0 49 -[ 3 1 1 ] 50 0 50 -[ 3 1 1 ] 51 0 51 -[ 3 2 0 ] 52 0 52 -[ 3 2 0 ] 53 0 53 -[ 3 2 0 ] 54 0 54 -[ 3 2 0 ] 55 0 55 -[ 3 2 1 ] 56 0 56 -[ 3 2 1 ] 57 0 57 -[ 3 2 1 ] 58 0 58 -[ 3 2 1 ] 59 0 59 -59 differences found -attribute: <array3D of </>> and <array3D of </>> -size: [4x3x2] [4x3x2] -position array3D of </> array3D of </> difference +[ 1 1 0 ] 9 0 9 +[ 1 1 1 ] 10 0 10 +[ 1 2 0 ] 11 0 11 +[ 1 2 1 ] 12 0 12 +[ 2 0 0 ] 13 0 13 +[ 2 0 1 ] 14 0 14 +[ 2 1 0 ] 15 0 15 +[ 2 1 1 ] 16 0 16 +[ 2 2 0 ] 17 0 17 +[ 2 2 1 ] 18 0 18 +[ 3 0 0 ] 19 0 19 +[ 3 0 1 ] 20 0 20 +[ 3 1 0 ] 21 0 21 +[ 3 1 1 ] 22 0 22 +[ 3 2 0 ] 23 0 23 +[ 3 2 1 ] 24 0 24 +24 differences found +attribute: <integer of </>> and <integer of </>> +size: [2] [2] +position integer of </> integer of </> difference ------------------------------------------------------------ -[ 0 0 0 ] 1 0 1 -[ 0 0 0 ] 2 0 2 -[ 0 0 0 ] 3 0 3 -[ 0 0 1 ] 4 0 4 -[ 0 0 1 ] 5 0 5 -[ 0 0 1 ] 6 0 6 -[ 0 1 0 ] 7 0 7 -[ 0 1 0 ] 8 0 8 -[ 0 1 0 ] 9 0 9 -[ 0 1 1 ] 10 0 10 -[ 0 1 1 ] 11 0 11 -[ 0 1 1 ] 12 0 12 -[ 0 2 0 ] 13 0 13 -[ 0 2 0 ] 14 0 14 -[ 0 2 0 ] 15 0 15 -[ 0 2 1 ] 16 0 16 -[ 0 2 1 ] 17 0 17 -[ 0 2 1 ] 18 0 18 -[ 1 0 0 ] 19 0 19 -[ 1 0 0 ] 20 0 20 -[ 1 0 0 ] 21 0 21 -[ 1 0 1 ] 22 0 22 -[ 1 0 1 ] 23 0 23 -[ 1 0 1 ] 24 0 24 -[ 1 1 0 ] 25 0 25 -[ 1 1 0 ] 26 0 26 -[ 1 1 0 ] 27 0 27 -[ 1 1 1 ] 28 0 28 -[ 1 1 1 ] 29 0 29 -[ 1 1 1 ] 30 0 30 -[ 1 2 0 ] 31 0 31 -[ 1 2 0 ] 32 0 32 -[ 1 2 0 ] 33 0 33 -[ 1 2 1 ] 34 0 34 -[ 1 2 1 ] 35 0 35 -[ 1 2 1 ] 36 0 36 -[ 2 0 0 ] 37 0 37 -[ 2 0 0 ] 38 0 38 -[ 2 0 0 ] 39 0 39 -[ 2 0 1 ] 40 0 40 -[ 2 0 1 ] 41 0 41 -[ 2 0 1 ] 42 0 42 -[ 2 1 0 ] 43 0 43 -[ 2 1 0 ] 44 0 44 -[ 2 1 0 ] 45 0 45 -[ 2 1 1 ] 46 0 46 -[ 2 1 1 ] 47 0 47 -[ 2 1 1 ] 48 0 48 -[ 2 2 0 ] 49 0 49 -[ 2 2 0 ] 50 0 50 -[ 2 2 0 ] 51 0 51 -[ 2 2 1 ] 52 0 52 -[ 2 2 1 ] 53 0 53 -[ 2 2 1 ] 54 0 54 -[ 3 0 0 ] 55 0 55 -[ 3 0 0 ] 56 0 56 -[ 3 0 0 ] 57 0 57 -[ 3 0 1 ] 58 0 58 -[ 3 0 1 ] 59 0 59 -[ 3 0 1 ] 60 0 60 -[ 3 1 0 ] 61 0 61 -[ 3 1 0 ] 62 0 62 -[ 3 1 0 ] 63 0 63 -[ 3 1 1 ] 64 0 64 -[ 3 1 1 ] 65 0 65 -[ 3 1 1 ] 66 0 66 -[ 3 2 0 ] 67 0 67 -[ 3 2 0 ] 68 0 68 -[ 3 2 0 ] 69 0 69 -[ 3 2 1 ] 70 0 70 -[ 3 2 1 ] 71 0 71 -[ 3 2 1 ] 72 0 72 -72 differences found +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <integer2D of </>> and <integer2D of </>> +size: [3x2] [3x2] +position integer2D of </> integer2D of </> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found attribute: <integer3D of </>> and <integer3D of </>> size: [4x3x2] [4x3x2] position integer3D of </> integer3D of </> difference @@ -647,9 +463,27 @@ position integer3D of </> integer3D of </> difference [ 3 2 0 ] 23 0 23 [ 3 2 1 ] 24 0 24 24 differences found -attribute: <float3D of </>> and <float3D of </>> +attribute: <opaque of </>> and <opaque of </>> +size: [2] [2] +position opaque of </> opaque of </> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <opaque2D of </>> and <opaque2D of </>> +size: [3x2] [3x2] +position opaque2D of </> opaque2D of </> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <opaque3D of </>> and <opaque3D of </>> size: [4x3x2] [4x3x2] -position float3D of </> float3D of </> difference +position opaque3D of </> opaque3D of </> difference ------------------------------------------------------------ [ 0 0 0 ] 1 0 1 [ 0 0 1 ] 2 0 2 @@ -676,111 +510,18 @@ position float3D of </> float3D of </> difference [ 3 2 0 ] 23 0 23 [ 3 2 1 ] 24 0 24 24 differences found -dataset: </dset> and </dset> -Not comparable: </dset> or </dset> is an empty dataset -attribute: <string of </dset>> and <string of </dset>> -size: [2] [2] -position string of </dset> string of </dset> difference ------------------------------------------------------------- -[ 0 ] a z -[ 0 ] b z -[ 1 ] d z -[ 1 ] e z -4 differences found -attribute: <VLstring of </dset>> and <VLstring of </dset>> +attribute: <string of </>> and <string of </>> size: [2] [2] -position VLstring of </dset> VLstring of </dset> difference +position string of </> string of </> difference ------------------------------------------------------------ [ 0 ] a z [ 0 ] b z [ 1 ] d z [ 1 ] e z 4 differences found -attribute: <bitfield of </dset>> and <bitfield of </dset>> -size: [2] [2] -position bitfield of </dset> bitfield of </dset> difference ------------------------------------------------------------- -[ 0 ] 1 0 1 -[ 1 ] 2 0 2 -2 differences found -attribute: <opaque of </dset>> and <opaque of </dset>> -size: [2] [2] -position opaque of </dset> opaque of </dset> difference ------------------------------------------------------------- -[ 0 ] 1 0 1 -[ 1 ] 2 0 2 -2 differences found -attribute: <compound of </dset>> and <compound of </dset>> -size: [2] [2] -position compound of </dset> compound of </dset> difference ------------------------------------------------------------- -[ 0 ] 1 0 1 -[ 0 ] 2 0 2 -[ 1 ] 3 0 3 -[ 1 ] 4 0 4 -4 differences found -attribute: <reference of </dset>> and <reference of </dset>> -0 differences found -attribute: <enum of </dset>> and <enum of </dset>> -size: [2] [2] -position enum of </dset> enum of </dset> difference ------------------------------------------------------------- -[ 0 ] RED GREEN -[ 1 ] RED GREEN -2 differences found -attribute: <vlen of </dset>> and <vlen of </dset>> -size: [2] [2] -position vlen of </dset> vlen of </dset> difference ------------------------------------------------------------- -[ 0 ] 1 0 1 -[ 1 ] 2 0 2 -[ 1 ] 3 0 3 -3 differences found -attribute: <array of </dset>> and <array of </dset>> -size: [2] [2] -position array of </dset> array of </dset> difference ------------------------------------------------------------- -[ 0 ] 1 0 1 -[ 0 ] 2 0 2 -[ 0 ] 3 0 3 -[ 1 ] 4 0 4 -[ 1 ] 5 0 5 -[ 1 ] 6 0 6 -6 differences found -attribute: <integer of </dset>> and <integer of </dset>> -size: [2] [2] -position integer of </dset> integer of </dset> difference ------------------------------------------------------------- -[ 0 ] 1 0 1 -[ 1 ] 2 0 2 -2 differences found -attribute: <float of </dset>> and <float of </dset>> -size: [2] [2] -position float of </dset> float of </dset> difference ------------------------------------------------------------- -[ 0 ] 1 0 1 -[ 1 ] 2 0 2 -2 differences found -attribute: <string2D of </dset>> and <string2D of </dset>> -size: [3x2] [3x2] -position string2D of </dset> string2D of </dset> difference ------------------------------------------------------------- -[ 0 0 ] a z -[ 0 0 ] b z -[ 0 1 ] c z -[ 0 1 ] d z -[ 1 0 ] e z -[ 1 0 ] f z -[ 1 1 ] g z -[ 1 1 ] h z -[ 2 0 ] i z -[ 2 0 ] j z -[ 2 1 ] k z -[ 2 1 ] l z -12 differences found -attribute: <VLstring2D of </dset>> and <VLstring2D of </dset>> +attribute: <string2D of </>> and <string2D of </>> size: [3x2] [3x2] -position VLstring2D of </dset> VLstring2D of </dset> difference +position string2D of </> string2D of </> difference ------------------------------------------------------------ [ 0 0 ] a z [ 0 0 ] b z @@ -795,122 +536,9 @@ position VLstring2D of </dset> VLstring2D of </dset> difference [ 2 1 ] k z [ 2 1 ] l z 12 differences found -attribute: <bitfield2D of </dset>> and <bitfield2D of </dset>> -size: [3x2] [3x2] -position bitfield2D of </dset> bitfield2D of </dset> difference ------------------------------------------------------------- -[ 0 0 ] 1 0 1 -[ 0 1 ] 2 0 2 -[ 1 0 ] 3 0 3 -[ 1 1 ] 4 0 4 -[ 2 0 ] 5 0 5 -[ 2 1 ] 6 0 6 -6 differences found -attribute: <opaque2D of </dset>> and <opaque2D of </dset>> -size: [3x2] [3x2] -position opaque2D of </dset> opaque2D of </dset> difference ------------------------------------------------------------- -[ 0 0 ] 1 0 1 -[ 0 1 ] 2 0 2 -[ 1 0 ] 3 0 3 -[ 1 1 ] 4 0 4 -[ 2 0 ] 5 0 5 -[ 2 1 ] 6 0 6 -6 differences found -attribute: <compound2D of </dset>> and <compound2D of </dset>> -size: [3x2] [3x2] -position compound2D of </dset> compound2D of </dset> difference ------------------------------------------------------------- -[ 0 0 ] 1 0 1 -[ 0 0 ] 2 0 2 -[ 0 1 ] 3 0 3 -[ 0 1 ] 4 0 4 -[ 1 0 ] 5 0 5 -[ 1 0 ] 6 0 6 -[ 1 1 ] 7 0 7 -[ 1 1 ] 8 0 8 -[ 2 0 ] 9 0 9 -[ 2 0 ] 10 0 10 -[ 2 1 ] 11 0 11 -[ 2 1 ] 12 0 12 -12 differences found -attribute: <reference2D of </dset>> and <reference2D of </dset>> -0 differences found -attribute: <enum2D of </dset>> and <enum2D of </dset>> -size: [3x2] [3x2] -position enum2D of </dset> enum2D of </dset> difference ------------------------------------------------------------- -[ 0 0 ] RED GREEN -[ 0 1 ] RED GREEN -[ 1 0 ] RED GREEN -[ 1 1 ] RED GREEN -[ 2 0 ] RED GREEN -[ 2 1 ] RED GREEN -6 differences found -attribute: <vlen2D of </dset>> and <vlen2D of </dset>> -size: [3x2] [3x2] -position vlen2D of </dset> vlen2D of </dset> difference ------------------------------------------------------------- -[ 0 1 ] 1 0 1 -[ 1 0 ] 2 0 2 -[ 1 0 ] 3 0 3 -[ 1 1 ] 4 0 4 -[ 1 1 ] 5 0 5 -[ 2 0 ] 6 0 6 -[ 2 0 ] 7 0 7 -[ 2 0 ] 8 0 8 -[ 2 1 ] 9 0 9 -[ 2 1 ] 10 0 10 -[ 2 1 ] 11 0 11 -11 differences found -attribute: <array2D of </dset>> and <array2D of </dset>> -size: [3x2] [3x2] -position array2D of </dset> array2D of </dset> difference ------------------------------------------------------------- -[ 0 0 ] 1 0 1 -[ 0 0 ] 2 0 2 -[ 0 0 ] 3 0 3 -[ 0 1 ] 4 0 4 -[ 0 1 ] 5 0 5 -[ 0 1 ] 6 0 6 -[ 1 0 ] 7 0 7 -[ 1 0 ] 8 0 8 -[ 1 0 ] 9 0 9 -[ 1 1 ] 10 0 10 -[ 1 1 ] 11 0 11 -[ 1 1 ] 12 0 12 -[ 2 0 ] 13 0 13 -[ 2 0 ] 14 0 14 -[ 2 0 ] 15 0 15 -[ 2 1 ] 16 0 16 -[ 2 1 ] 17 0 17 -[ 2 1 ] 18 0 18 -18 differences found -attribute: <integer2D of </dset>> and <integer2D of </dset>> -size: [3x2] [3x2] -position integer2D of </dset> integer2D of </dset> difference ------------------------------------------------------------- -[ 0 0 ] 1 0 1 -[ 0 1 ] 2 0 2 -[ 1 0 ] 3 0 3 -[ 1 1 ] 4 0 4 -[ 2 0 ] 5 0 5 -[ 2 1 ] 6 0 6 -6 differences found -attribute: <float2D of </dset>> and <float2D of </dset>> -size: [3x2] [3x2] -position float2D of </dset> float2D of </dset> difference ------------------------------------------------------------- -[ 0 0 ] 1 0 1 -[ 0 1 ] 2 0 2 -[ 1 0 ] 3 0 3 -[ 1 1 ] 4 0 4 -[ 2 0 ] 5 0 5 -[ 2 1 ] 6 0 6 -6 differences found -attribute: <string3D of </dset>> and <string3D of </dset>> +attribute: <string3D of </>> and <string3D of </>> size: [4x3x2] [4x3x2] -position string3D of </dset> string3D of </dset> difference +position string3D of </> string3D of </> difference ------------------------------------------------------------ [ 0 0 0 ] a z [ 0 0 0 ] b z @@ -960,6 +588,122 @@ position string3D of </dset> string3D of </dset> difference [ 3 2 1 ] X z [ 3 2 1 ] Z z 47 differences found +attribute: <vlen of </>> and <vlen of </>> +size: [2] [2] +position vlen of </> vlen of </> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +[ 1 ] 3 0 3 +3 differences found +attribute: <vlen2D of </>> and <vlen2D of </>> +size: [3x2] [3x2] +position vlen2D of </> vlen2D of </> difference +------------------------------------------------------------ +[ 0 1 ] 1 0 1 +[ 1 0 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 1 1 ] 5 0 5 +[ 2 0 ] 6 0 6 +[ 2 0 ] 7 0 7 +[ 2 0 ] 8 0 8 +[ 2 1 ] 9 0 9 +[ 2 1 ] 10 0 10 +[ 2 1 ] 11 0 11 +11 differences found +attribute: <vlen3D of </>> and <vlen3D of </>> +size: [4x3x2] [4x3x2] +position vlen3D of </> vlen3D of </> difference +------------------------------------------------------------ +[ 0 0 1 ] 1 0 1 +[ 0 1 0 ] 2 0 2 +[ 0 1 1 ] 3 0 3 +[ 0 2 0 ] 4 0 4 +[ 0 2 1 ] 5 0 5 +[ 1 0 0 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 0 1 ] 9 0 9 +[ 1 1 0 ] 10 0 10 +[ 1 1 0 ] 11 0 11 +[ 1 1 1 ] 12 0 12 +[ 1 1 1 ] 13 0 13 +[ 1 2 0 ] 14 0 14 +[ 1 2 0 ] 15 0 15 +[ 1 2 1 ] 16 0 16 +[ 1 2 1 ] 17 0 17 +[ 2 0 0 ] 18 0 18 +[ 2 0 0 ] 19 0 19 +[ 2 0 0 ] 20 0 20 +[ 2 0 1 ] 21 0 21 +[ 2 0 1 ] 22 0 22 +[ 2 0 1 ] 23 0 23 +[ 2 1 0 ] 24 0 24 +[ 2 1 0 ] 25 0 25 +[ 2 1 0 ] 26 0 26 +[ 2 1 1 ] 27 0 27 +[ 2 1 1 ] 28 0 28 +[ 2 1 1 ] 29 0 29 +[ 2 2 0 ] 30 0 30 +[ 2 2 0 ] 31 0 31 +[ 2 2 0 ] 32 0 32 +[ 2 2 1 ] 33 0 33 +[ 2 2 1 ] 34 0 34 +[ 2 2 1 ] 35 0 35 +[ 3 0 0 ] 36 0 36 +[ 3 0 0 ] 37 0 37 +[ 3 0 0 ] 38 0 38 +[ 3 0 0 ] 39 0 39 +[ 3 0 1 ] 40 0 40 +[ 3 0 1 ] 41 0 41 +[ 3 0 1 ] 42 0 42 +[ 3 0 1 ] 43 0 43 +[ 3 1 0 ] 44 0 44 +[ 3 1 0 ] 45 0 45 +[ 3 1 0 ] 46 0 46 +[ 3 1 0 ] 47 0 47 +[ 3 1 1 ] 48 0 48 +[ 3 1 1 ] 49 0 49 +[ 3 1 1 ] 50 0 50 +[ 3 1 1 ] 51 0 51 +[ 3 2 0 ] 52 0 52 +[ 3 2 0 ] 53 0 53 +[ 3 2 0 ] 54 0 54 +[ 3 2 0 ] 55 0 55 +[ 3 2 1 ] 56 0 56 +[ 3 2 1 ] 57 0 57 +[ 3 2 1 ] 58 0 58 +[ 3 2 1 ] 59 0 59 +59 differences found +dataset: </dset> and </dset> +Not comparable: </dset> or </dset> is an empty dataset +attribute: <VLstring of </dset>> and <VLstring of </dset>> +size: [2] [2] +position VLstring of </dset> VLstring of </dset> difference +------------------------------------------------------------ +[ 0 ] a z +[ 0 ] b z +[ 1 ] d z +[ 1 ] e z +4 differences found +attribute: <VLstring2D of </dset>> and <VLstring2D of </dset>> +size: [3x2] [3x2] +position VLstring2D of </dset> VLstring2D of </dset> difference +------------------------------------------------------------ +[ 0 0 ] a z +[ 0 0 ] b z +[ 0 1 ] c z +[ 0 1 ] d z +[ 1 0 ] e z +[ 1 0 ] f z +[ 1 1 ] g z +[ 1 1 ] h z +[ 2 0 ] i z +[ 2 0 ] j z +[ 2 1 ] k z +[ 2 1 ] l z +12 differences found attribute: <VLstring3D of </dset>> and <VLstring3D of </dset>> size: [4x3x2] [4x3x2] position VLstring3D of </dset> VLstring3D of </dset> difference @@ -1012,38 +756,138 @@ position VLstring3D of </dset> VLstring3D of </dset> difference [ 3 2 1 ] X z [ 3 2 1 ] Z z 47 differences found -attribute: <bitfield3D of </dset>> and <bitfield3D of </dset>> +attribute: <array of </dset>> and <array of </dset>> +size: [2] [2] +position array of </dset> array of </dset> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 0 ] 2 0 2 +[ 0 ] 3 0 3 +[ 1 ] 4 0 4 +[ 1 ] 5 0 5 +[ 1 ] 6 0 6 +6 differences found +attribute: <array2D of </dset>> and <array2D of </dset>> +size: [3x2] [3x2] +position array2D of </dset> array2D of </dset> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 0 ] 2 0 2 +[ 0 0 ] 3 0 3 +[ 0 1 ] 4 0 4 +[ 0 1 ] 5 0 5 +[ 0 1 ] 6 0 6 +[ 1 0 ] 7 0 7 +[ 1 0 ] 8 0 8 +[ 1 0 ] 9 0 9 +[ 1 1 ] 10 0 10 +[ 1 1 ] 11 0 11 +[ 1 1 ] 12 0 12 +[ 2 0 ] 13 0 13 +[ 2 0 ] 14 0 14 +[ 2 0 ] 15 0 15 +[ 2 1 ] 16 0 16 +[ 2 1 ] 17 0 17 +[ 2 1 ] 18 0 18 +18 differences found +attribute: <array3D of </dset>> and <array3D of </dset>> size: [4x3x2] [4x3x2] -position bitfield3D of </dset> bitfield3D of </dset> difference +position array3D of </dset> array3D of </dset> difference ------------------------------------------------------------ [ 0 0 0 ] 1 0 1 -[ 0 0 1 ] 2 0 2 -[ 0 1 0 ] 3 0 3 -[ 0 1 1 ] 4 0 4 -[ 0 2 0 ] 5 0 5 -[ 0 2 1 ] 6 0 6 -[ 1 0 0 ] 7 0 7 -[ 1 0 1 ] 8 0 8 -[ 1 1 0 ] 9 0 9 -[ 1 1 1 ] 10 0 10 -[ 1 2 0 ] 11 0 11 -[ 1 2 1 ] 12 0 12 -[ 2 0 0 ] 13 0 13 -[ 2 0 1 ] 14 0 14 -[ 2 1 0 ] 15 0 15 -[ 2 1 1 ] 16 0 16 -[ 2 2 0 ] 17 0 17 -[ 2 2 1 ] 18 0 18 -[ 3 0 0 ] 19 0 19 -[ 3 0 1 ] 20 0 20 -[ 3 1 0 ] 21 0 21 -[ 3 1 1 ] 22 0 22 -[ 3 2 0 ] 23 0 23 -[ 3 2 1 ] 24 0 24 -24 differences found -attribute: <opaque3D of </dset>> and <opaque3D of </dset>> +[ 0 0 0 ] 2 0 2 +[ 0 0 0 ] 3 0 3 +[ 0 0 1 ] 4 0 4 +[ 0 0 1 ] 5 0 5 +[ 0 0 1 ] 6 0 6 +[ 0 1 0 ] 7 0 7 +[ 0 1 0 ] 8 0 8 +[ 0 1 0 ] 9 0 9 +[ 0 1 1 ] 10 0 10 +[ 0 1 1 ] 11 0 11 +[ 0 1 1 ] 12 0 12 +[ 0 2 0 ] 13 0 13 +[ 0 2 0 ] 14 0 14 +[ 0 2 0 ] 15 0 15 +[ 0 2 1 ] 16 0 16 +[ 0 2 1 ] 17 0 17 +[ 0 2 1 ] 18 0 18 +[ 1 0 0 ] 19 0 19 +[ 1 0 0 ] 20 0 20 +[ 1 0 0 ] 21 0 21 +[ 1 0 1 ] 22 0 22 +[ 1 0 1 ] 23 0 23 +[ 1 0 1 ] 24 0 24 +[ 1 1 0 ] 25 0 25 +[ 1 1 0 ] 26 0 26 +[ 1 1 0 ] 27 0 27 +[ 1 1 1 ] 28 0 28 +[ 1 1 1 ] 29 0 29 +[ 1 1 1 ] 30 0 30 +[ 1 2 0 ] 31 0 31 +[ 1 2 0 ] 32 0 32 +[ 1 2 0 ] 33 0 33 +[ 1 2 1 ] 34 0 34 +[ 1 2 1 ] 35 0 35 +[ 1 2 1 ] 36 0 36 +[ 2 0 0 ] 37 0 37 +[ 2 0 0 ] 38 0 38 +[ 2 0 0 ] 39 0 39 +[ 2 0 1 ] 40 0 40 +[ 2 0 1 ] 41 0 41 +[ 2 0 1 ] 42 0 42 +[ 2 1 0 ] 43 0 43 +[ 2 1 0 ] 44 0 44 +[ 2 1 0 ] 45 0 45 +[ 2 1 1 ] 46 0 46 +[ 2 1 1 ] 47 0 47 +[ 2 1 1 ] 48 0 48 +[ 2 2 0 ] 49 0 49 +[ 2 2 0 ] 50 0 50 +[ 2 2 0 ] 51 0 51 +[ 2 2 1 ] 52 0 52 +[ 2 2 1 ] 53 0 53 +[ 2 2 1 ] 54 0 54 +[ 3 0 0 ] 55 0 55 +[ 3 0 0 ] 56 0 56 +[ 3 0 0 ] 57 0 57 +[ 3 0 1 ] 58 0 58 +[ 3 0 1 ] 59 0 59 +[ 3 0 1 ] 60 0 60 +[ 3 1 0 ] 61 0 61 +[ 3 1 0 ] 62 0 62 +[ 3 1 0 ] 63 0 63 +[ 3 1 1 ] 64 0 64 +[ 3 1 1 ] 65 0 65 +[ 3 1 1 ] 66 0 66 +[ 3 2 0 ] 67 0 67 +[ 3 2 0 ] 68 0 68 +[ 3 2 0 ] 69 0 69 +[ 3 2 1 ] 70 0 70 +[ 3 2 1 ] 71 0 71 +[ 3 2 1 ] 72 0 72 +72 differences found +attribute: <bitfield of </dset>> and <bitfield of </dset>> +size: [2] [2] +position bitfield of </dset> bitfield of </dset> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <bitfield2D of </dset>> and <bitfield2D of </dset>> +size: [3x2] [3x2] +position bitfield2D of </dset> bitfield2D of </dset> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <bitfield3D of </dset>> and <bitfield3D of </dset>> size: [4x3x2] [4x3x2] -position opaque3D of </dset> opaque3D of </dset> difference +position bitfield3D of </dset> bitfield3D of </dset> difference ------------------------------------------------------------ [ 0 0 0 ] 1 0 1 [ 0 0 1 ] 2 0 2 @@ -1070,6 +914,32 @@ position opaque3D of </dset> opaque3D of </dset> difference [ 3 2 0 ] 23 0 23 [ 3 2 1 ] 24 0 24 24 differences found +attribute: <compound of </dset>> and <compound of </dset>> +size: [2] [2] +position compound of </dset> compound of </dset> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 0 ] 2 0 2 +[ 1 ] 3 0 3 +[ 1 ] 4 0 4 +4 differences found +attribute: <compound2D of </dset>> and <compound2D of </dset>> +size: [3x2] [3x2] +position compound2D of </dset> compound2D of </dset> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 0 ] 2 0 2 +[ 0 1 ] 3 0 3 +[ 0 1 ] 4 0 4 +[ 1 0 ] 5 0 5 +[ 1 0 ] 6 0 6 +[ 1 1 ] 7 0 7 +[ 1 1 ] 8 0 8 +[ 2 0 ] 9 0 9 +[ 2 0 ] 10 0 10 +[ 2 1 ] 11 0 11 +[ 2 1 ] 12 0 12 +12 differences found attribute: <compound3D of </dset>> and <compound3D of </dset>> size: [4x3x2] [4x3x2] position compound3D of </dset> compound3D of </dset> difference @@ -1123,8 +993,24 @@ position compound3D of </dset> compound3D of </dset> difference [ 3 2 1 ] 47 0 47 [ 3 2 1 ] 48 0 48 48 differences found -attribute: <reference3D of </dset>> and <reference3D of </dset>> -0 differences found +attribute: <enum of </dset>> and <enum of </dset>> +size: [2] [2] +position enum of </dset> enum of </dset> difference +------------------------------------------------------------ +[ 0 ] RED GREEN +[ 1 ] RED GREEN +2 differences found +attribute: <enum2D of </dset>> and <enum2D of </dset>> +size: [3x2] [3x2] +position enum2D of </dset> enum2D of </dset> difference +------------------------------------------------------------ +[ 0 0 ] RED GREEN +[ 0 1 ] RED GREEN +[ 1 0 ] RED GREEN +[ 1 1 ] RED GREEN +[ 2 0 ] RED GREEN +[ 2 1 ] RED GREEN +6 differences found attribute: <enum3D of </dset>> and <enum3D of </dset>> size: [4x3x2] [4x3x2] position enum3D of </dset> enum3D of </dset> difference @@ -1154,147 +1040,71 @@ position enum3D of </dset> enum3D of </dset> difference [ 3 2 0 ] GREEN RED [ 3 2 1 ] GREEN RED 24 differences found -attribute: <vlen3D of </dset>> and <vlen3D of </dset>> +attribute: <float of </dset>> and <float of </dset>> +size: [2] [2] +position float of </dset> float of </dset> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <float2D of </dset>> and <float2D of </dset>> +size: [3x2] [3x2] +position float2D of </dset> float2D of </dset> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <float3D of </dset>> and <float3D of </dset>> size: [4x3x2] [4x3x2] -position vlen3D of </dset> vlen3D of </dset> difference +position float3D of </dset> float3D of </dset> difference ------------------------------------------------------------ -[ 0 0 1 ] 1 0 1 -[ 0 1 0 ] 2 0 2 -[ 0 1 1 ] 3 0 3 -[ 0 2 0 ] 4 0 4 -[ 0 2 1 ] 5 0 5 -[ 1 0 0 ] 6 0 6 +[ 0 0 0 ] 1 0 1 +[ 0 0 1 ] 2 0 2 +[ 0 1 0 ] 3 0 3 +[ 0 1 1 ] 4 0 4 +[ 0 2 0 ] 5 0 5 +[ 0 2 1 ] 6 0 6 [ 1 0 0 ] 7 0 7 [ 1 0 1 ] 8 0 8 -[ 1 0 1 ] 9 0 9 -[ 1 1 0 ] 10 0 10 -[ 1 1 0 ] 11 0 11 -[ 1 1 1 ] 12 0 12 -[ 1 1 1 ] 13 0 13 -[ 1 2 0 ] 14 0 14 -[ 1 2 0 ] 15 0 15 -[ 1 2 1 ] 16 0 16 -[ 1 2 1 ] 17 0 17 -[ 2 0 0 ] 18 0 18 -[ 2 0 0 ] 19 0 19 -[ 2 0 0 ] 20 0 20 -[ 2 0 1 ] 21 0 21 -[ 2 0 1 ] 22 0 22 -[ 2 0 1 ] 23 0 23 -[ 2 1 0 ] 24 0 24 -[ 2 1 0 ] 25 0 25 -[ 2 1 0 ] 26 0 26 -[ 2 1 1 ] 27 0 27 -[ 2 1 1 ] 28 0 28 -[ 2 1 1 ] 29 0 29 -[ 2 2 0 ] 30 0 30 -[ 2 2 0 ] 31 0 31 -[ 2 2 0 ] 32 0 32 -[ 2 2 1 ] 33 0 33 -[ 2 2 1 ] 34 0 34 -[ 2 2 1 ] 35 0 35 -[ 3 0 0 ] 36 0 36 -[ 3 0 0 ] 37 0 37 -[ 3 0 0 ] 38 0 38 -[ 3 0 0 ] 39 0 39 -[ 3 0 1 ] 40 0 40 -[ 3 0 1 ] 41 0 41 -[ 3 0 1 ] 42 0 42 -[ 3 0 1 ] 43 0 43 -[ 3 1 0 ] 44 0 44 -[ 3 1 0 ] 45 0 45 -[ 3 1 0 ] 46 0 46 -[ 3 1 0 ] 47 0 47 -[ 3 1 1 ] 48 0 48 -[ 3 1 1 ] 49 0 49 -[ 3 1 1 ] 50 0 50 -[ 3 1 1 ] 51 0 51 -[ 3 2 0 ] 52 0 52 -[ 3 2 0 ] 53 0 53 -[ 3 2 0 ] 54 0 54 -[ 3 2 0 ] 55 0 55 -[ 3 2 1 ] 56 0 56 -[ 3 2 1 ] 57 0 57 -[ 3 2 1 ] 58 0 58 -[ 3 2 1 ] 59 0 59 -59 differences found -attribute: <array3D of </dset>> and <array3D of </dset>> -size: [4x3x2] [4x3x2] -position array3D of </dset> array3D of </dset> difference +[ 1 1 0 ] 9 0 9 +[ 1 1 1 ] 10 0 10 +[ 1 2 0 ] 11 0 11 +[ 1 2 1 ] 12 0 12 +[ 2 0 0 ] 13 0 13 +[ 2 0 1 ] 14 0 14 +[ 2 1 0 ] 15 0 15 +[ 2 1 1 ] 16 0 16 +[ 2 2 0 ] 17 0 17 +[ 2 2 1 ] 18 0 18 +[ 3 0 0 ] 19 0 19 +[ 3 0 1 ] 20 0 20 +[ 3 1 0 ] 21 0 21 +[ 3 1 1 ] 22 0 22 +[ 3 2 0 ] 23 0 23 +[ 3 2 1 ] 24 0 24 +24 differences found +attribute: <integer of </dset>> and <integer of </dset>> +size: [2] [2] +position integer of </dset> integer of </dset> difference ------------------------------------------------------------ -[ 0 0 0 ] 1 0 1 -[ 0 0 0 ] 2 0 2 -[ 0 0 0 ] 3 0 3 -[ 0 0 1 ] 4 0 4 -[ 0 0 1 ] 5 0 5 -[ 0 0 1 ] 6 0 6 -[ 0 1 0 ] 7 0 7 -[ 0 1 0 ] 8 0 8 -[ 0 1 0 ] 9 0 9 -[ 0 1 1 ] 10 0 10 -[ 0 1 1 ] 11 0 11 -[ 0 1 1 ] 12 0 12 -[ 0 2 0 ] 13 0 13 -[ 0 2 0 ] 14 0 14 -[ 0 2 0 ] 15 0 15 -[ 0 2 1 ] 16 0 16 -[ 0 2 1 ] 17 0 17 -[ 0 2 1 ] 18 0 18 -[ 1 0 0 ] 19 0 19 -[ 1 0 0 ] 20 0 20 -[ 1 0 0 ] 21 0 21 -[ 1 0 1 ] 22 0 22 -[ 1 0 1 ] 23 0 23 -[ 1 0 1 ] 24 0 24 -[ 1 1 0 ] 25 0 25 -[ 1 1 0 ] 26 0 26 -[ 1 1 0 ] 27 0 27 -[ 1 1 1 ] 28 0 28 -[ 1 1 1 ] 29 0 29 -[ 1 1 1 ] 30 0 30 -[ 1 2 0 ] 31 0 31 -[ 1 2 0 ] 32 0 32 -[ 1 2 0 ] 33 0 33 -[ 1 2 1 ] 34 0 34 -[ 1 2 1 ] 35 0 35 -[ 1 2 1 ] 36 0 36 -[ 2 0 0 ] 37 0 37 -[ 2 0 0 ] 38 0 38 -[ 2 0 0 ] 39 0 39 -[ 2 0 1 ] 40 0 40 -[ 2 0 1 ] 41 0 41 -[ 2 0 1 ] 42 0 42 -[ 2 1 0 ] 43 0 43 -[ 2 1 0 ] 44 0 44 -[ 2 1 0 ] 45 0 45 -[ 2 1 1 ] 46 0 46 -[ 2 1 1 ] 47 0 47 -[ 2 1 1 ] 48 0 48 -[ 2 2 0 ] 49 0 49 -[ 2 2 0 ] 50 0 50 -[ 2 2 0 ] 51 0 51 -[ 2 2 1 ] 52 0 52 -[ 2 2 1 ] 53 0 53 -[ 2 2 1 ] 54 0 54 -[ 3 0 0 ] 55 0 55 -[ 3 0 0 ] 56 0 56 -[ 3 0 0 ] 57 0 57 -[ 3 0 1 ] 58 0 58 -[ 3 0 1 ] 59 0 59 -[ 3 0 1 ] 60 0 60 -[ 3 1 0 ] 61 0 61 -[ 3 1 0 ] 62 0 62 -[ 3 1 0 ] 63 0 63 -[ 3 1 1 ] 64 0 64 -[ 3 1 1 ] 65 0 65 -[ 3 1 1 ] 66 0 66 -[ 3 2 0 ] 67 0 67 -[ 3 2 0 ] 68 0 68 -[ 3 2 0 ] 69 0 69 -[ 3 2 1 ] 70 0 70 -[ 3 2 1 ] 71 0 71 -[ 3 2 1 ] 72 0 72 -72 differences found +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <integer2D of </dset>> and <integer2D of </dset>> +size: [3x2] [3x2] +position integer2D of </dset> integer2D of </dset> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found attribute: <integer3D of </dset>> and <integer3D of </dset>> size: [4x3x2] [4x3x2] position integer3D of </dset> integer3D of </dset> difference @@ -1324,9 +1134,27 @@ position integer3D of </dset> integer3D of </dset> difference [ 3 2 0 ] 23 0 23 [ 3 2 1 ] 24 0 24 24 differences found -attribute: <float3D of </dset>> and <float3D of </dset>> +attribute: <opaque of </dset>> and <opaque of </dset>> +size: [2] [2] +position opaque of </dset> opaque of </dset> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <opaque2D of </dset>> and <opaque2D of </dset>> +size: [3x2] [3x2] +position opaque2D of </dset> opaque2D of </dset> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <opaque3D of </dset>> and <opaque3D of </dset>> size: [4x3x2] [4x3x2] -position float3D of </dset> float3D of </dset> difference +position opaque3D of </dset> opaque3D of </dset> difference ------------------------------------------------------------ [ 0 0 0 ] 1 0 1 [ 0 0 1 ] 2 0 2 @@ -1353,110 +1181,24 @@ position float3D of </dset> float3D of </dset> difference [ 3 2 0 ] 23 0 23 [ 3 2 1 ] 24 0 24 24 differences found -519 differences found -group : </g1> and </g1> +attribute: <reference of </dset>> and <reference of </dset>> 0 differences found -attribute: <string of </g1>> and <string of </g1>> -size: [2] [2] -position string of </g1> string of </g1> difference ------------------------------------------------------------- -[ 0 ] a z -[ 0 ] b z -[ 1 ] d z -[ 1 ] e z -4 differences found -attribute: <VLstring of </g1>> and <VLstring of </g1>> +attribute: <reference2D of </dset>> and <reference2D of </dset>> +0 differences found +attribute: <reference3D of </dset>> and <reference3D of </dset>> +0 differences found +attribute: <string of </dset>> and <string of </dset>> size: [2] [2] -position VLstring of </g1> VLstring of </g1> difference +position string of </dset> string of </dset> difference ------------------------------------------------------------ [ 0 ] a z [ 0 ] b z [ 1 ] d z [ 1 ] e z 4 differences found -attribute: <bitfield of </g1>> and <bitfield of </g1>> -size: [2] [2] -position bitfield of </g1> bitfield of </g1> difference ------------------------------------------------------------- -[ 0 ] 1 0 1 -[ 1 ] 2 0 2 -2 differences found -attribute: <opaque of </g1>> and <opaque of </g1>> -size: [2] [2] -position opaque of </g1> opaque of </g1> difference ------------------------------------------------------------- -[ 0 ] 1 0 1 -[ 1 ] 2 0 2 -2 differences found -attribute: <compound of </g1>> and <compound of </g1>> -size: [2] [2] -position compound of </g1> compound of </g1> difference ------------------------------------------------------------- -[ 0 ] 1 0 1 -[ 0 ] 2 0 2 -[ 1 ] 3 0 3 -[ 1 ] 4 0 4 -4 differences found -attribute: <enum of </g1>> and <enum of </g1>> -size: [2] [2] -position enum of </g1> enum of </g1> difference ------------------------------------------------------------- -[ 0 ] RED GREEN -[ 1 ] RED GREEN -2 differences found -attribute: <vlen of </g1>> and <vlen of </g1>> -size: [2] [2] -position vlen of </g1> vlen of </g1> difference ------------------------------------------------------------- -[ 0 ] 1 0 1 -[ 1 ] 2 0 2 -[ 1 ] 3 0 3 -3 differences found -attribute: <array of </g1>> and <array of </g1>> -size: [2] [2] -position array of </g1> array of </g1> difference ------------------------------------------------------------- -[ 0 ] 1 0 1 -[ 0 ] 2 0 2 -[ 0 ] 3 0 3 -[ 1 ] 4 0 4 -[ 1 ] 5 0 5 -[ 1 ] 6 0 6 -6 differences found -attribute: <integer of </g1>> and <integer of </g1>> -size: [2] [2] -position integer of </g1> integer of </g1> difference ------------------------------------------------------------- -[ 0 ] 1 0 1 -[ 1 ] 2 0 2 -2 differences found -attribute: <float of </g1>> and <float of </g1>> -size: [2] [2] -position float of </g1> float of </g1> difference ------------------------------------------------------------- -[ 0 ] 1 0 1 -[ 1 ] 2 0 2 -2 differences found -attribute: <string2D of </g1>> and <string2D of </g1>> -size: [3x2] [3x2] -position string2D of </g1> string2D of </g1> difference ------------------------------------------------------------- -[ 0 0 ] a z -[ 0 0 ] b z -[ 0 1 ] c z -[ 0 1 ] d z -[ 1 0 ] e z -[ 1 0 ] f z -[ 1 1 ] g z -[ 1 1 ] h z -[ 2 0 ] i z -[ 2 0 ] j z -[ 2 1 ] k z -[ 2 1 ] l z -12 differences found -attribute: <VLstring2D of </g1>> and <VLstring2D of </g1>> +attribute: <string2D of </dset>> and <string2D of </dset>> size: [3x2] [3x2] -position VLstring2D of </g1> VLstring2D of </g1> difference +position string2D of </dset> string2D of </dset> difference ------------------------------------------------------------ [ 0 0 ] a z [ 0 0 ] b z @@ -1471,120 +1213,9 @@ position VLstring2D of </g1> VLstring2D of </g1> difference [ 2 1 ] k z [ 2 1 ] l z 12 differences found -attribute: <bitfield2D of </g1>> and <bitfield2D of </g1>> -size: [3x2] [3x2] -position bitfield2D of </g1> bitfield2D of </g1> difference ------------------------------------------------------------- -[ 0 0 ] 1 0 1 -[ 0 1 ] 2 0 2 -[ 1 0 ] 3 0 3 -[ 1 1 ] 4 0 4 -[ 2 0 ] 5 0 5 -[ 2 1 ] 6 0 6 -6 differences found -attribute: <opaque2D of </g1>> and <opaque2D of </g1>> -size: [3x2] [3x2] -position opaque2D of </g1> opaque2D of </g1> difference ------------------------------------------------------------- -[ 0 0 ] 1 0 1 -[ 0 1 ] 2 0 2 -[ 1 0 ] 3 0 3 -[ 1 1 ] 4 0 4 -[ 2 0 ] 5 0 5 -[ 2 1 ] 6 0 6 -6 differences found -attribute: <compound2D of </g1>> and <compound2D of </g1>> -size: [3x2] [3x2] -position compound2D of </g1> compound2D of </g1> difference ------------------------------------------------------------- -[ 0 0 ] 1 0 1 -[ 0 0 ] 2 0 2 -[ 0 1 ] 3 0 3 -[ 0 1 ] 4 0 4 -[ 1 0 ] 5 0 5 -[ 1 0 ] 6 0 6 -[ 1 1 ] 7 0 7 -[ 1 1 ] 8 0 8 -[ 2 0 ] 9 0 9 -[ 2 0 ] 10 0 10 -[ 2 1 ] 11 0 11 -[ 2 1 ] 12 0 12 -12 differences found -attribute: <enum2D of </g1>> and <enum2D of </g1>> -size: [3x2] [3x2] -position enum2D of </g1> enum2D of </g1> difference ------------------------------------------------------------- -[ 0 0 ] RED GREEN -[ 0 1 ] RED GREEN -[ 1 0 ] RED GREEN -[ 1 1 ] RED GREEN -[ 2 0 ] RED GREEN -[ 2 1 ] RED GREEN -6 differences found -attribute: <vlen2D of </g1>> and <vlen2D of </g1>> -size: [3x2] [3x2] -position vlen2D of </g1> vlen2D of </g1> difference ------------------------------------------------------------- -[ 0 1 ] 1 0 1 -[ 1 0 ] 2 0 2 -[ 1 0 ] 3 0 3 -[ 1 1 ] 4 0 4 -[ 1 1 ] 5 0 5 -[ 2 0 ] 6 0 6 -[ 2 0 ] 7 0 7 -[ 2 0 ] 8 0 8 -[ 2 1 ] 9 0 9 -[ 2 1 ] 10 0 10 -[ 2 1 ] 11 0 11 -11 differences found -attribute: <array2D of </g1>> and <array2D of </g1>> -size: [3x2] [3x2] -position array2D of </g1> array2D of </g1> difference ------------------------------------------------------------- -[ 0 0 ] 1 0 1 -[ 0 0 ] 2 0 2 -[ 0 0 ] 3 0 3 -[ 0 1 ] 4 0 4 -[ 0 1 ] 5 0 5 -[ 0 1 ] 6 0 6 -[ 1 0 ] 7 0 7 -[ 1 0 ] 8 0 8 -[ 1 0 ] 9 0 9 -[ 1 1 ] 10 0 10 -[ 1 1 ] 11 0 11 -[ 1 1 ] 12 0 12 -[ 2 0 ] 13 0 13 -[ 2 0 ] 14 0 14 -[ 2 0 ] 15 0 15 -[ 2 1 ] 16 0 16 -[ 2 1 ] 17 0 17 -[ 2 1 ] 18 0 18 -18 differences found -attribute: <integer2D of </g1>> and <integer2D of </g1>> -size: [3x2] [3x2] -position integer2D of </g1> integer2D of </g1> difference ------------------------------------------------------------- -[ 0 0 ] 1 0 1 -[ 0 1 ] 2 0 2 -[ 1 0 ] 3 0 3 -[ 1 1 ] 4 0 4 -[ 2 0 ] 5 0 5 -[ 2 1 ] 6 0 6 -6 differences found -attribute: <float2D of </g1>> and <float2D of </g1>> -size: [3x2] [3x2] -position float2D of </g1> float2D of </g1> difference ------------------------------------------------------------- -[ 0 0 ] 1 0 1 -[ 0 1 ] 2 0 2 -[ 1 0 ] 3 0 3 -[ 1 1 ] 4 0 4 -[ 2 0 ] 5 0 5 -[ 2 1 ] 6 0 6 -6 differences found -attribute: <string3D of </g1>> and <string3D of </g1>> +attribute: <string3D of </dset>> and <string3D of </dset>> size: [4x3x2] [4x3x2] -position string3D of </g1> string3D of </g1> difference +position string3D of </dset> string3D of </dset> difference ------------------------------------------------------------ [ 0 0 0 ] a z [ 0 0 0 ] b z @@ -1634,6 +1265,123 @@ position string3D of </g1> string3D of </g1> difference [ 3 2 1 ] X z [ 3 2 1 ] Z z 47 differences found +attribute: <vlen of </dset>> and <vlen of </dset>> +size: [2] [2] +position vlen of </dset> vlen of </dset> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +[ 1 ] 3 0 3 +3 differences found +attribute: <vlen2D of </dset>> and <vlen2D of </dset>> +size: [3x2] [3x2] +position vlen2D of </dset> vlen2D of </dset> difference +------------------------------------------------------------ +[ 0 1 ] 1 0 1 +[ 1 0 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 1 1 ] 5 0 5 +[ 2 0 ] 6 0 6 +[ 2 0 ] 7 0 7 +[ 2 0 ] 8 0 8 +[ 2 1 ] 9 0 9 +[ 2 1 ] 10 0 10 +[ 2 1 ] 11 0 11 +11 differences found +attribute: <vlen3D of </dset>> and <vlen3D of </dset>> +size: [4x3x2] [4x3x2] +position vlen3D of </dset> vlen3D of </dset> difference +------------------------------------------------------------ +[ 0 0 1 ] 1 0 1 +[ 0 1 0 ] 2 0 2 +[ 0 1 1 ] 3 0 3 +[ 0 2 0 ] 4 0 4 +[ 0 2 1 ] 5 0 5 +[ 1 0 0 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 0 1 ] 9 0 9 +[ 1 1 0 ] 10 0 10 +[ 1 1 0 ] 11 0 11 +[ 1 1 1 ] 12 0 12 +[ 1 1 1 ] 13 0 13 +[ 1 2 0 ] 14 0 14 +[ 1 2 0 ] 15 0 15 +[ 1 2 1 ] 16 0 16 +[ 1 2 1 ] 17 0 17 +[ 2 0 0 ] 18 0 18 +[ 2 0 0 ] 19 0 19 +[ 2 0 0 ] 20 0 20 +[ 2 0 1 ] 21 0 21 +[ 2 0 1 ] 22 0 22 +[ 2 0 1 ] 23 0 23 +[ 2 1 0 ] 24 0 24 +[ 2 1 0 ] 25 0 25 +[ 2 1 0 ] 26 0 26 +[ 2 1 1 ] 27 0 27 +[ 2 1 1 ] 28 0 28 +[ 2 1 1 ] 29 0 29 +[ 2 2 0 ] 30 0 30 +[ 2 2 0 ] 31 0 31 +[ 2 2 0 ] 32 0 32 +[ 2 2 1 ] 33 0 33 +[ 2 2 1 ] 34 0 34 +[ 2 2 1 ] 35 0 35 +[ 3 0 0 ] 36 0 36 +[ 3 0 0 ] 37 0 37 +[ 3 0 0 ] 38 0 38 +[ 3 0 0 ] 39 0 39 +[ 3 0 1 ] 40 0 40 +[ 3 0 1 ] 41 0 41 +[ 3 0 1 ] 42 0 42 +[ 3 0 1 ] 43 0 43 +[ 3 1 0 ] 44 0 44 +[ 3 1 0 ] 45 0 45 +[ 3 1 0 ] 46 0 46 +[ 3 1 0 ] 47 0 47 +[ 3 1 1 ] 48 0 48 +[ 3 1 1 ] 49 0 49 +[ 3 1 1 ] 50 0 50 +[ 3 1 1 ] 51 0 51 +[ 3 2 0 ] 52 0 52 +[ 3 2 0 ] 53 0 53 +[ 3 2 0 ] 54 0 54 +[ 3 2 0 ] 55 0 55 +[ 3 2 1 ] 56 0 56 +[ 3 2 1 ] 57 0 57 +[ 3 2 1 ] 58 0 58 +[ 3 2 1 ] 59 0 59 +59 differences found +519 differences found +group : </g1> and </g1> +0 differences found +attribute: <VLstring of </g1>> and <VLstring of </g1>> +size: [2] [2] +position VLstring of </g1> VLstring of </g1> difference +------------------------------------------------------------ +[ 0 ] a z +[ 0 ] b z +[ 1 ] d z +[ 1 ] e z +4 differences found +attribute: <VLstring2D of </g1>> and <VLstring2D of </g1>> +size: [3x2] [3x2] +position VLstring2D of </g1> VLstring2D of </g1> difference +------------------------------------------------------------ +[ 0 0 ] a z +[ 0 0 ] b z +[ 0 1 ] c z +[ 0 1 ] d z +[ 1 0 ] e z +[ 1 0 ] f z +[ 1 1 ] g z +[ 1 1 ] h z +[ 2 0 ] i z +[ 2 0 ] j z +[ 2 1 ] k z +[ 2 1 ] l z +12 differences found attribute: <VLstring3D of </g1>> and <VLstring3D of </g1>> size: [4x3x2] [4x3x2] position VLstring3D of </g1> VLstring3D of </g1> difference @@ -1686,38 +1434,138 @@ position VLstring3D of </g1> VLstring3D of </g1> difference [ 3 2 1 ] X z [ 3 2 1 ] Z z 47 differences found -attribute: <bitfield3D of </g1>> and <bitfield3D of </g1>> +attribute: <array of </g1>> and <array of </g1>> +size: [2] [2] +position array of </g1> array of </g1> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 0 ] 2 0 2 +[ 0 ] 3 0 3 +[ 1 ] 4 0 4 +[ 1 ] 5 0 5 +[ 1 ] 6 0 6 +6 differences found +attribute: <array2D of </g1>> and <array2D of </g1>> +size: [3x2] [3x2] +position array2D of </g1> array2D of </g1> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 0 ] 2 0 2 +[ 0 0 ] 3 0 3 +[ 0 1 ] 4 0 4 +[ 0 1 ] 5 0 5 +[ 0 1 ] 6 0 6 +[ 1 0 ] 7 0 7 +[ 1 0 ] 8 0 8 +[ 1 0 ] 9 0 9 +[ 1 1 ] 10 0 10 +[ 1 1 ] 11 0 11 +[ 1 1 ] 12 0 12 +[ 2 0 ] 13 0 13 +[ 2 0 ] 14 0 14 +[ 2 0 ] 15 0 15 +[ 2 1 ] 16 0 16 +[ 2 1 ] 17 0 17 +[ 2 1 ] 18 0 18 +18 differences found +attribute: <array3D of </g1>> and <array3D of </g1>> size: [4x3x2] [4x3x2] -position bitfield3D of </g1> bitfield3D of </g1> difference +position array3D of </g1> array3D of </g1> difference ------------------------------------------------------------ [ 0 0 0 ] 1 0 1 -[ 0 0 1 ] 2 0 2 -[ 0 1 0 ] 3 0 3 -[ 0 1 1 ] 4 0 4 -[ 0 2 0 ] 5 0 5 -[ 0 2 1 ] 6 0 6 -[ 1 0 0 ] 7 0 7 -[ 1 0 1 ] 8 0 8 -[ 1 1 0 ] 9 0 9 -[ 1 1 1 ] 10 0 10 -[ 1 2 0 ] 11 0 11 -[ 1 2 1 ] 12 0 12 -[ 2 0 0 ] 13 0 13 -[ 2 0 1 ] 14 0 14 -[ 2 1 0 ] 15 0 15 -[ 2 1 1 ] 16 0 16 -[ 2 2 0 ] 17 0 17 -[ 2 2 1 ] 18 0 18 -[ 3 0 0 ] 19 0 19 -[ 3 0 1 ] 20 0 20 -[ 3 1 0 ] 21 0 21 -[ 3 1 1 ] 22 0 22 -[ 3 2 0 ] 23 0 23 -[ 3 2 1 ] 24 0 24 -24 differences found -attribute: <opaque3D of </g1>> and <opaque3D of </g1>> +[ 0 0 0 ] 2 0 2 +[ 0 0 0 ] 3 0 3 +[ 0 0 1 ] 4 0 4 +[ 0 0 1 ] 5 0 5 +[ 0 0 1 ] 6 0 6 +[ 0 1 0 ] 7 0 7 +[ 0 1 0 ] 8 0 8 +[ 0 1 0 ] 9 0 9 +[ 0 1 1 ] 10 0 10 +[ 0 1 1 ] 11 0 11 +[ 0 1 1 ] 12 0 12 +[ 0 2 0 ] 13 0 13 +[ 0 2 0 ] 14 0 14 +[ 0 2 0 ] 15 0 15 +[ 0 2 1 ] 16 0 16 +[ 0 2 1 ] 17 0 17 +[ 0 2 1 ] 18 0 18 +[ 1 0 0 ] 19 0 19 +[ 1 0 0 ] 20 0 20 +[ 1 0 0 ] 21 0 21 +[ 1 0 1 ] 22 0 22 +[ 1 0 1 ] 23 0 23 +[ 1 0 1 ] 24 0 24 +[ 1 1 0 ] 25 0 25 +[ 1 1 0 ] 26 0 26 +[ 1 1 0 ] 27 0 27 +[ 1 1 1 ] 28 0 28 +[ 1 1 1 ] 29 0 29 +[ 1 1 1 ] 30 0 30 +[ 1 2 0 ] 31 0 31 +[ 1 2 0 ] 32 0 32 +[ 1 2 0 ] 33 0 33 +[ 1 2 1 ] 34 0 34 +[ 1 2 1 ] 35 0 35 +[ 1 2 1 ] 36 0 36 +[ 2 0 0 ] 37 0 37 +[ 2 0 0 ] 38 0 38 +[ 2 0 0 ] 39 0 39 +[ 2 0 1 ] 40 0 40 +[ 2 0 1 ] 41 0 41 +[ 2 0 1 ] 42 0 42 +[ 2 1 0 ] 43 0 43 +[ 2 1 0 ] 44 0 44 +[ 2 1 0 ] 45 0 45 +[ 2 1 1 ] 46 0 46 +[ 2 1 1 ] 47 0 47 +[ 2 1 1 ] 48 0 48 +[ 2 2 0 ] 49 0 49 +[ 2 2 0 ] 50 0 50 +[ 2 2 0 ] 51 0 51 +[ 2 2 1 ] 52 0 52 +[ 2 2 1 ] 53 0 53 +[ 2 2 1 ] 54 0 54 +[ 3 0 0 ] 55 0 55 +[ 3 0 0 ] 56 0 56 +[ 3 0 0 ] 57 0 57 +[ 3 0 1 ] 58 0 58 +[ 3 0 1 ] 59 0 59 +[ 3 0 1 ] 60 0 60 +[ 3 1 0 ] 61 0 61 +[ 3 1 0 ] 62 0 62 +[ 3 1 0 ] 63 0 63 +[ 3 1 1 ] 64 0 64 +[ 3 1 1 ] 65 0 65 +[ 3 1 1 ] 66 0 66 +[ 3 2 0 ] 67 0 67 +[ 3 2 0 ] 68 0 68 +[ 3 2 0 ] 69 0 69 +[ 3 2 1 ] 70 0 70 +[ 3 2 1 ] 71 0 71 +[ 3 2 1 ] 72 0 72 +72 differences found +attribute: <bitfield of </g1>> and <bitfield of </g1>> +size: [2] [2] +position bitfield of </g1> bitfield of </g1> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <bitfield2D of </g1>> and <bitfield2D of </g1>> +size: [3x2] [3x2] +position bitfield2D of </g1> bitfield2D of </g1> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <bitfield3D of </g1>> and <bitfield3D of </g1>> size: [4x3x2] [4x3x2] -position opaque3D of </g1> opaque3D of </g1> difference +position bitfield3D of </g1> bitfield3D of </g1> difference ------------------------------------------------------------ [ 0 0 0 ] 1 0 1 [ 0 0 1 ] 2 0 2 @@ -1744,6 +1592,32 @@ position opaque3D of </g1> opaque3D of </g1> difference [ 3 2 0 ] 23 0 23 [ 3 2 1 ] 24 0 24 24 differences found +attribute: <compound of </g1>> and <compound of </g1>> +size: [2] [2] +position compound of </g1> compound of </g1> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 0 ] 2 0 2 +[ 1 ] 3 0 3 +[ 1 ] 4 0 4 +4 differences found +attribute: <compound2D of </g1>> and <compound2D of </g1>> +size: [3x2] [3x2] +position compound2D of </g1> compound2D of </g1> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 0 ] 2 0 2 +[ 0 1 ] 3 0 3 +[ 0 1 ] 4 0 4 +[ 1 0 ] 5 0 5 +[ 1 0 ] 6 0 6 +[ 1 1 ] 7 0 7 +[ 1 1 ] 8 0 8 +[ 2 0 ] 9 0 9 +[ 2 0 ] 10 0 10 +[ 2 1 ] 11 0 11 +[ 2 1 ] 12 0 12 +12 differences found attribute: <compound3D of </g1>> and <compound3D of </g1>> size: [4x3x2] [4x3x2] position compound3D of </g1> compound3D of </g1> difference @@ -1797,6 +1671,24 @@ position compound3D of </g1> compound3D of </g1> difference [ 3 2 1 ] 47 0 47 [ 3 2 1 ] 48 0 48 48 differences found +attribute: <enum of </g1>> and <enum of </g1>> +size: [2] [2] +position enum of </g1> enum of </g1> difference +------------------------------------------------------------ +[ 0 ] RED GREEN +[ 1 ] RED GREEN +2 differences found +attribute: <enum2D of </g1>> and <enum2D of </g1>> +size: [3x2] [3x2] +position enum2D of </g1> enum2D of </g1> difference +------------------------------------------------------------ +[ 0 0 ] RED GREEN +[ 0 1 ] RED GREEN +[ 1 0 ] RED GREEN +[ 1 1 ] RED GREEN +[ 2 0 ] RED GREEN +[ 2 1 ] RED GREEN +6 differences found attribute: <enum3D of </g1>> and <enum3D of </g1>> size: [4x3x2] [4x3x2] position enum3D of </g1> enum3D of </g1> difference @@ -1826,6 +1718,249 @@ position enum3D of </g1> enum3D of </g1> difference [ 3 2 0 ] GREEN RED [ 3 2 1 ] GREEN RED 24 differences found +attribute: <float of </g1>> and <float of </g1>> +size: [2] [2] +position float of </g1> float of </g1> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <float2D of </g1>> and <float2D of </g1>> +size: [3x2] [3x2] +position float2D of </g1> float2D of </g1> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <float3D of </g1>> and <float3D of </g1>> +size: [4x3x2] [4x3x2] +position float3D of </g1> float3D of </g1> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 1 ] 2 0 2 +[ 0 1 0 ] 3 0 3 +[ 0 1 1 ] 4 0 4 +[ 0 2 0 ] 5 0 5 +[ 0 2 1 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 1 0 ] 9 0 9 +[ 1 1 1 ] 10 0 10 +[ 1 2 0 ] 11 0 11 +[ 1 2 1 ] 12 0 12 +[ 2 0 0 ] 13 0 13 +[ 2 0 1 ] 14 0 14 +[ 2 1 0 ] 15 0 15 +[ 2 1 1 ] 16 0 16 +[ 2 2 0 ] 17 0 17 +[ 2 2 1 ] 18 0 18 +[ 3 0 0 ] 19 0 19 +[ 3 0 1 ] 20 0 20 +[ 3 1 0 ] 21 0 21 +[ 3 1 1 ] 22 0 22 +[ 3 2 0 ] 23 0 23 +[ 3 2 1 ] 24 0 24 +24 differences found +attribute: <integer of </g1>> and <integer of </g1>> +size: [2] [2] +position integer of </g1> integer of </g1> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <integer2D of </g1>> and <integer2D of </g1>> +size: [3x2] [3x2] +position integer2D of </g1> integer2D of </g1> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <integer3D of </g1>> and <integer3D of </g1>> +size: [4x3x2] [4x3x2] +position integer3D of </g1> integer3D of </g1> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 1 ] 2 0 2 +[ 0 1 0 ] 3 0 3 +[ 0 1 1 ] 4 0 4 +[ 0 2 0 ] 5 0 5 +[ 0 2 1 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 1 0 ] 9 0 9 +[ 1 1 1 ] 10 0 10 +[ 1 2 0 ] 11 0 11 +[ 1 2 1 ] 12 0 12 +[ 2 0 0 ] 13 0 13 +[ 2 0 1 ] 14 0 14 +[ 2 1 0 ] 15 0 15 +[ 2 1 1 ] 16 0 16 +[ 2 2 0 ] 17 0 17 +[ 2 2 1 ] 18 0 18 +[ 3 0 0 ] 19 0 19 +[ 3 0 1 ] 20 0 20 +[ 3 1 0 ] 21 0 21 +[ 3 1 1 ] 22 0 22 +[ 3 2 0 ] 23 0 23 +[ 3 2 1 ] 24 0 24 +24 differences found +attribute: <opaque of </g1>> and <opaque of </g1>> +size: [2] [2] +position opaque of </g1> opaque of </g1> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <opaque2D of </g1>> and <opaque2D of </g1>> +size: [3x2] [3x2] +position opaque2D of </g1> opaque2D of </g1> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <opaque3D of </g1>> and <opaque3D of </g1>> +size: [4x3x2] [4x3x2] +position opaque3D of </g1> opaque3D of </g1> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 1 ] 2 0 2 +[ 0 1 0 ] 3 0 3 +[ 0 1 1 ] 4 0 4 +[ 0 2 0 ] 5 0 5 +[ 0 2 1 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 1 0 ] 9 0 9 +[ 1 1 1 ] 10 0 10 +[ 1 2 0 ] 11 0 11 +[ 1 2 1 ] 12 0 12 +[ 2 0 0 ] 13 0 13 +[ 2 0 1 ] 14 0 14 +[ 2 1 0 ] 15 0 15 +[ 2 1 1 ] 16 0 16 +[ 2 2 0 ] 17 0 17 +[ 2 2 1 ] 18 0 18 +[ 3 0 0 ] 19 0 19 +[ 3 0 1 ] 20 0 20 +[ 3 1 0 ] 21 0 21 +[ 3 1 1 ] 22 0 22 +[ 3 2 0 ] 23 0 23 +[ 3 2 1 ] 24 0 24 +24 differences found +attribute: <string of </g1>> and <string of </g1>> +size: [2] [2] +position string of </g1> string of </g1> difference +------------------------------------------------------------ +[ 0 ] a z +[ 0 ] b z +[ 1 ] d z +[ 1 ] e z +4 differences found +attribute: <string2D of </g1>> and <string2D of </g1>> +size: [3x2] [3x2] +position string2D of </g1> string2D of </g1> difference +------------------------------------------------------------ +[ 0 0 ] a z +[ 0 0 ] b z +[ 0 1 ] c z +[ 0 1 ] d z +[ 1 0 ] e z +[ 1 0 ] f z +[ 1 1 ] g z +[ 1 1 ] h z +[ 2 0 ] i z +[ 2 0 ] j z +[ 2 1 ] k z +[ 2 1 ] l z +12 differences found +attribute: <string3D of </g1>> and <string3D of </g1>> +size: [4x3x2] [4x3x2] +position string3D of </g1> string3D of </g1> difference +------------------------------------------------------------ +[ 0 0 0 ] a z +[ 0 0 0 ] b z +[ 0 0 1 ] c z +[ 0 0 1 ] d z +[ 0 1 0 ] e z +[ 0 1 0 ] f z +[ 0 1 1 ] g z +[ 0 1 1 ] h z +[ 0 2 0 ] i z +[ 0 2 0 ] j z +[ 0 2 1 ] k z +[ 0 2 1 ] l z +[ 1 0 0 ] m z +[ 1 0 0 ] n z +[ 1 0 1 ] p z +[ 1 0 1 ] q z +[ 1 1 0 ] r z +[ 1 1 0 ] s z +[ 1 1 1 ] t z +[ 1 1 1 ] u z +[ 1 2 0 ] v z +[ 1 2 0 ] w z +[ 1 2 1 ] x z +[ 2 0 0 ] A z +[ 2 0 0 ] B z +[ 2 0 1 ] C z +[ 2 0 1 ] D z +[ 2 1 0 ] E z +[ 2 1 0 ] F z +[ 2 1 1 ] G z +[ 2 1 1 ] H z +[ 2 2 0 ] I z +[ 2 2 0 ] J z +[ 2 2 1 ] K z +[ 2 2 1 ] L z +[ 3 0 0 ] M z +[ 3 0 0 ] N z +[ 3 0 1 ] P z +[ 3 0 1 ] Q z +[ 3 1 0 ] R z +[ 3 1 0 ] S z +[ 3 1 1 ] T z +[ 3 1 1 ] U z +[ 3 2 0 ] V z +[ 3 2 0 ] W z +[ 3 2 1 ] X z +[ 3 2 1 ] Z z +47 differences found +attribute: <vlen of </g1>> and <vlen of </g1>> +size: [2] [2] +position vlen of </g1> vlen of </g1> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +[ 1 ] 3 0 3 +3 differences found +attribute: <vlen2D of </g1>> and <vlen2D of </g1>> +size: [3x2] [3x2] +position vlen2D of </g1> vlen2D of </g1> difference +------------------------------------------------------------ +[ 0 1 ] 1 0 1 +[ 1 0 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 1 1 ] 5 0 5 +[ 2 0 ] 6 0 6 +[ 2 0 ] 7 0 7 +[ 2 0 ] 8 0 8 +[ 2 1 ] 9 0 9 +[ 2 1 ] 10 0 10 +[ 2 1 ] 11 0 11 +11 differences found attribute: <vlen3D of </g1>> and <vlen3D of </g1>> size: [4x3x2] [4x3x2] position vlen3D of </g1> vlen3D of </g1> difference @@ -1890,141 +2025,6 @@ position vlen3D of </g1> vlen3D of </g1> difference [ 3 2 1 ] 58 0 58 [ 3 2 1 ] 59 0 59 59 differences found -attribute: <array3D of </g1>> and <array3D of </g1>> -size: [4x3x2] [4x3x2] -position array3D of </g1> array3D of </g1> difference ------------------------------------------------------------- -[ 0 0 0 ] 1 0 1 -[ 0 0 0 ] 2 0 2 -[ 0 0 0 ] 3 0 3 -[ 0 0 1 ] 4 0 4 -[ 0 0 1 ] 5 0 5 -[ 0 0 1 ] 6 0 6 -[ 0 1 0 ] 7 0 7 -[ 0 1 0 ] 8 0 8 -[ 0 1 0 ] 9 0 9 -[ 0 1 1 ] 10 0 10 -[ 0 1 1 ] 11 0 11 -[ 0 1 1 ] 12 0 12 -[ 0 2 0 ] 13 0 13 -[ 0 2 0 ] 14 0 14 -[ 0 2 0 ] 15 0 15 -[ 0 2 1 ] 16 0 16 -[ 0 2 1 ] 17 0 17 -[ 0 2 1 ] 18 0 18 -[ 1 0 0 ] 19 0 19 -[ 1 0 0 ] 20 0 20 -[ 1 0 0 ] 21 0 21 -[ 1 0 1 ] 22 0 22 -[ 1 0 1 ] 23 0 23 -[ 1 0 1 ] 24 0 24 -[ 1 1 0 ] 25 0 25 -[ 1 1 0 ] 26 0 26 -[ 1 1 0 ] 27 0 27 -[ 1 1 1 ] 28 0 28 -[ 1 1 1 ] 29 0 29 -[ 1 1 1 ] 30 0 30 -[ 1 2 0 ] 31 0 31 -[ 1 2 0 ] 32 0 32 -[ 1 2 0 ] 33 0 33 -[ 1 2 1 ] 34 0 34 -[ 1 2 1 ] 35 0 35 -[ 1 2 1 ] 36 0 36 -[ 2 0 0 ] 37 0 37 -[ 2 0 0 ] 38 0 38 -[ 2 0 0 ] 39 0 39 -[ 2 0 1 ] 40 0 40 -[ 2 0 1 ] 41 0 41 -[ 2 0 1 ] 42 0 42 -[ 2 1 0 ] 43 0 43 -[ 2 1 0 ] 44 0 44 -[ 2 1 0 ] 45 0 45 -[ 2 1 1 ] 46 0 46 -[ 2 1 1 ] 47 0 47 -[ 2 1 1 ] 48 0 48 -[ 2 2 0 ] 49 0 49 -[ 2 2 0 ] 50 0 50 -[ 2 2 0 ] 51 0 51 -[ 2 2 1 ] 52 0 52 -[ 2 2 1 ] 53 0 53 -[ 2 2 1 ] 54 0 54 -[ 3 0 0 ] 55 0 55 -[ 3 0 0 ] 56 0 56 -[ 3 0 0 ] 57 0 57 -[ 3 0 1 ] 58 0 58 -[ 3 0 1 ] 59 0 59 -[ 3 0 1 ] 60 0 60 -[ 3 1 0 ] 61 0 61 -[ 3 1 0 ] 62 0 62 -[ 3 1 0 ] 63 0 63 -[ 3 1 1 ] 64 0 64 -[ 3 1 1 ] 65 0 65 -[ 3 1 1 ] 66 0 66 -[ 3 2 0 ] 67 0 67 -[ 3 2 0 ] 68 0 68 -[ 3 2 0 ] 69 0 69 -[ 3 2 1 ] 70 0 70 -[ 3 2 1 ] 71 0 71 -[ 3 2 1 ] 72 0 72 -72 differences found -attribute: <integer3D of </g1>> and <integer3D of </g1>> -size: [4x3x2] [4x3x2] -position integer3D of </g1> integer3D of </g1> difference ------------------------------------------------------------- -[ 0 0 0 ] 1 0 1 -[ 0 0 1 ] 2 0 2 -[ 0 1 0 ] 3 0 3 -[ 0 1 1 ] 4 0 4 -[ 0 2 0 ] 5 0 5 -[ 0 2 1 ] 6 0 6 -[ 1 0 0 ] 7 0 7 -[ 1 0 1 ] 8 0 8 -[ 1 1 0 ] 9 0 9 -[ 1 1 1 ] 10 0 10 -[ 1 2 0 ] 11 0 11 -[ 1 2 1 ] 12 0 12 -[ 2 0 0 ] 13 0 13 -[ 2 0 1 ] 14 0 14 -[ 2 1 0 ] 15 0 15 -[ 2 1 1 ] 16 0 16 -[ 2 2 0 ] 17 0 17 -[ 2 2 1 ] 18 0 18 -[ 3 0 0 ] 19 0 19 -[ 3 0 1 ] 20 0 20 -[ 3 1 0 ] 21 0 21 -[ 3 1 1 ] 22 0 22 -[ 3 2 0 ] 23 0 23 -[ 3 2 1 ] 24 0 24 -24 differences found -attribute: <float3D of </g1>> and <float3D of </g1>> -size: [4x3x2] [4x3x2] -position float3D of </g1> float3D of </g1> difference ------------------------------------------------------------- -[ 0 0 0 ] 1 0 1 -[ 0 0 1 ] 2 0 2 -[ 0 1 0 ] 3 0 3 -[ 0 1 1 ] 4 0 4 -[ 0 2 0 ] 5 0 5 -[ 0 2 1 ] 6 0 6 -[ 1 0 0 ] 7 0 7 -[ 1 0 1 ] 8 0 8 -[ 1 1 0 ] 9 0 9 -[ 1 1 1 ] 10 0 10 -[ 1 2 0 ] 11 0 11 -[ 1 2 1 ] 12 0 12 -[ 2 0 0 ] 13 0 13 -[ 2 0 1 ] 14 0 14 -[ 2 1 0 ] 15 0 15 -[ 2 1 1 ] 16 0 16 -[ 2 2 0 ] 17 0 17 -[ 2 2 1 ] 18 0 18 -[ 3 0 0 ] 19 0 19 -[ 3 0 1 ] 20 0 20 -[ 3 1 0 ] 21 0 21 -[ 3 1 1 ] 22 0 22 -[ 3 2 0 ] 23 0 23 -[ 3 2 1 ] 24 0 24 -24 differences found -------------------------------- Some objects are not comparable -------------------------------- diff --git a/tools/h5diff/testfiles/h5diff_700.txt b/tools/h5diff/testfiles/h5diff_700.txt new file mode 100644 index 0000000..99398a9 --- /dev/null +++ b/tools/h5diff/testfiles/h5diff_700.txt @@ -0,0 +1,2038 @@ + +file1 file2 +--------------------------------------- + x x / + x x /dset + x x /g1 + + +group : </> and </> +0 differences found +Attributes status: 30 common, 0 only in obj1, 0 only in obj2 +attribute: <VLstring of </>> and <VLstring of </>> +size: [2] [2] +position VLstring of </> VLstring of </> difference +------------------------------------------------------------ +[ 0 ] a z +[ 0 ] b z +[ 1 ] d z +[ 1 ] e z +4 differences found +attribute: <VLstring2D of </>> and <VLstring2D of </>> +size: [3x2] [3x2] +position VLstring2D of </> VLstring2D of </> difference +------------------------------------------------------------ +[ 0 0 ] a z +[ 0 0 ] b z +[ 0 1 ] c z +[ 0 1 ] d z +[ 1 0 ] e z +[ 1 0 ] f z +[ 1 1 ] g z +[ 1 1 ] h z +[ 2 0 ] i z +[ 2 0 ] j z +[ 2 1 ] k z +[ 2 1 ] l z +12 differences found +attribute: <VLstring3D of </>> and <VLstring3D of </>> +size: [4x3x2] [4x3x2] +position VLstring3D of </> VLstring3D of </> difference +------------------------------------------------------------ +[ 0 0 0 ] a z +[ 0 0 0 ] b z +[ 0 0 1 ] c z +[ 0 0 1 ] d z +[ 0 1 0 ] e z +[ 0 1 0 ] f z +[ 0 1 1 ] g z +[ 0 1 1 ] h z +[ 0 2 0 ] i z +[ 0 2 0 ] j z +[ 0 2 1 ] k z +[ 0 2 1 ] l z +[ 1 0 0 ] m z +[ 1 0 0 ] n z +[ 1 0 1 ] p z +[ 1 0 1 ] q z +[ 1 1 0 ] r z +[ 1 1 0 ] s z +[ 1 1 1 ] t z +[ 1 1 1 ] u z +[ 1 2 0 ] v z +[ 1 2 0 ] w z +[ 1 2 1 ] x z +[ 2 0 0 ] A z +[ 2 0 0 ] B z +[ 2 0 1 ] C z +[ 2 0 1 ] D z +[ 2 1 0 ] E z +[ 2 1 0 ] F z +[ 2 1 1 ] G z +[ 2 1 1 ] H z +[ 2 2 0 ] I z +[ 2 2 0 ] J z +[ 2 2 1 ] K z +[ 2 2 1 ] L z +[ 3 0 0 ] M z +[ 3 0 0 ] N z +[ 3 0 1 ] P z +[ 3 0 1 ] Q z +[ 3 1 0 ] R z +[ 3 1 0 ] S z +[ 3 1 1 ] T z +[ 3 1 1 ] U z +[ 3 2 0 ] V z +[ 3 2 0 ] W z +[ 3 2 1 ] X z +[ 3 2 1 ] Z z +47 differences found +attribute: <array of </>> and <array of </>> +size: [2] [2] +position array of </> array of </> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 0 ] 2 0 2 +[ 0 ] 3 0 3 +[ 1 ] 4 0 4 +[ 1 ] 5 0 5 +[ 1 ] 6 0 6 +6 differences found +attribute: <array2D of </>> and <array2D of </>> +size: [3x2] [3x2] +position array2D of </> array2D of </> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 0 ] 2 0 2 +[ 0 0 ] 3 0 3 +[ 0 1 ] 4 0 4 +[ 0 1 ] 5 0 5 +[ 0 1 ] 6 0 6 +[ 1 0 ] 7 0 7 +[ 1 0 ] 8 0 8 +[ 1 0 ] 9 0 9 +[ 1 1 ] 10 0 10 +[ 1 1 ] 11 0 11 +[ 1 1 ] 12 0 12 +[ 2 0 ] 13 0 13 +[ 2 0 ] 14 0 14 +[ 2 0 ] 15 0 15 +[ 2 1 ] 16 0 16 +[ 2 1 ] 17 0 17 +[ 2 1 ] 18 0 18 +18 differences found +attribute: <array3D of </>> and <array3D of </>> +size: [4x3x2] [4x3x2] +position array3D of </> array3D of </> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 0 ] 2 0 2 +[ 0 0 0 ] 3 0 3 +[ 0 0 1 ] 4 0 4 +[ 0 0 1 ] 5 0 5 +[ 0 0 1 ] 6 0 6 +[ 0 1 0 ] 7 0 7 +[ 0 1 0 ] 8 0 8 +[ 0 1 0 ] 9 0 9 +[ 0 1 1 ] 10 0 10 +[ 0 1 1 ] 11 0 11 +[ 0 1 1 ] 12 0 12 +[ 0 2 0 ] 13 0 13 +[ 0 2 0 ] 14 0 14 +[ 0 2 0 ] 15 0 15 +[ 0 2 1 ] 16 0 16 +[ 0 2 1 ] 17 0 17 +[ 0 2 1 ] 18 0 18 +[ 1 0 0 ] 19 0 19 +[ 1 0 0 ] 20 0 20 +[ 1 0 0 ] 21 0 21 +[ 1 0 1 ] 22 0 22 +[ 1 0 1 ] 23 0 23 +[ 1 0 1 ] 24 0 24 +[ 1 1 0 ] 25 0 25 +[ 1 1 0 ] 26 0 26 +[ 1 1 0 ] 27 0 27 +[ 1 1 1 ] 28 0 28 +[ 1 1 1 ] 29 0 29 +[ 1 1 1 ] 30 0 30 +[ 1 2 0 ] 31 0 31 +[ 1 2 0 ] 32 0 32 +[ 1 2 0 ] 33 0 33 +[ 1 2 1 ] 34 0 34 +[ 1 2 1 ] 35 0 35 +[ 1 2 1 ] 36 0 36 +[ 2 0 0 ] 37 0 37 +[ 2 0 0 ] 38 0 38 +[ 2 0 0 ] 39 0 39 +[ 2 0 1 ] 40 0 40 +[ 2 0 1 ] 41 0 41 +[ 2 0 1 ] 42 0 42 +[ 2 1 0 ] 43 0 43 +[ 2 1 0 ] 44 0 44 +[ 2 1 0 ] 45 0 45 +[ 2 1 1 ] 46 0 46 +[ 2 1 1 ] 47 0 47 +[ 2 1 1 ] 48 0 48 +[ 2 2 0 ] 49 0 49 +[ 2 2 0 ] 50 0 50 +[ 2 2 0 ] 51 0 51 +[ 2 2 1 ] 52 0 52 +[ 2 2 1 ] 53 0 53 +[ 2 2 1 ] 54 0 54 +[ 3 0 0 ] 55 0 55 +[ 3 0 0 ] 56 0 56 +[ 3 0 0 ] 57 0 57 +[ 3 0 1 ] 58 0 58 +[ 3 0 1 ] 59 0 59 +[ 3 0 1 ] 60 0 60 +[ 3 1 0 ] 61 0 61 +[ 3 1 0 ] 62 0 62 +[ 3 1 0 ] 63 0 63 +[ 3 1 1 ] 64 0 64 +[ 3 1 1 ] 65 0 65 +[ 3 1 1 ] 66 0 66 +[ 3 2 0 ] 67 0 67 +[ 3 2 0 ] 68 0 68 +[ 3 2 0 ] 69 0 69 +[ 3 2 1 ] 70 0 70 +[ 3 2 1 ] 71 0 71 +[ 3 2 1 ] 72 0 72 +72 differences found +attribute: <bitfield of </>> and <bitfield of </>> +size: [2] [2] +position bitfield of </> bitfield of </> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <bitfield2D of </>> and <bitfield2D of </>> +size: [3x2] [3x2] +position bitfield2D of </> bitfield2D of </> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <bitfield3D of </>> and <bitfield3D of </>> +size: [4x3x2] [4x3x2] +position bitfield3D of </> bitfield3D of </> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 1 ] 2 0 2 +[ 0 1 0 ] 3 0 3 +[ 0 1 1 ] 4 0 4 +[ 0 2 0 ] 5 0 5 +[ 0 2 1 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 1 0 ] 9 0 9 +[ 1 1 1 ] 10 0 10 +[ 1 2 0 ] 11 0 11 +[ 1 2 1 ] 12 0 12 +[ 2 0 0 ] 13 0 13 +[ 2 0 1 ] 14 0 14 +[ 2 1 0 ] 15 0 15 +[ 2 1 1 ] 16 0 16 +[ 2 2 0 ] 17 0 17 +[ 2 2 1 ] 18 0 18 +[ 3 0 0 ] 19 0 19 +[ 3 0 1 ] 20 0 20 +[ 3 1 0 ] 21 0 21 +[ 3 1 1 ] 22 0 22 +[ 3 2 0 ] 23 0 23 +[ 3 2 1 ] 24 0 24 +24 differences found +attribute: <compound of </>> and <compound of </>> +size: [2] [2] +position compound of </> compound of </> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 0 ] 2 0 2 +[ 1 ] 3 0 3 +[ 1 ] 4 0 4 +4 differences found +attribute: <compound2D of </>> and <compound2D of </>> +size: [3x2] [3x2] +position compound2D of </> compound2D of </> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 0 ] 2 0 2 +[ 0 1 ] 3 0 3 +[ 0 1 ] 4 0 4 +[ 1 0 ] 5 0 5 +[ 1 0 ] 6 0 6 +[ 1 1 ] 7 0 7 +[ 1 1 ] 8 0 8 +[ 2 0 ] 9 0 9 +[ 2 0 ] 10 0 10 +[ 2 1 ] 11 0 11 +[ 2 1 ] 12 0 12 +12 differences found +attribute: <compound3D of </>> and <compound3D of </>> +size: [4x3x2] [4x3x2] +position compound3D of </> compound3D of </> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 0 ] 2 0 2 +[ 0 0 1 ] 3 0 3 +[ 0 0 1 ] 4 0 4 +[ 0 1 0 ] 5 0 5 +[ 0 1 0 ] 6 0 6 +[ 0 1 1 ] 7 0 7 +[ 0 1 1 ] 8 0 8 +[ 0 2 0 ] 9 0 9 +[ 0 2 0 ] 10 0 10 +[ 0 2 1 ] 11 0 11 +[ 0 2 1 ] 12 0 12 +[ 1 0 0 ] 13 0 13 +[ 1 0 0 ] 14 0 14 +[ 1 0 1 ] 15 0 15 +[ 1 0 1 ] 16 0 16 +[ 1 1 0 ] 17 0 17 +[ 1 1 0 ] 18 0 18 +[ 1 1 1 ] 19 0 19 +[ 1 1 1 ] 20 0 20 +[ 1 2 0 ] 21 0 21 +[ 1 2 0 ] 22 0 22 +[ 1 2 1 ] 23 0 23 +[ 1 2 1 ] 24 0 24 +[ 2 0 0 ] 25 0 25 +[ 2 0 0 ] 26 0 26 +[ 2 0 1 ] 27 0 27 +[ 2 0 1 ] 28 0 28 +[ 2 1 0 ] 29 0 29 +[ 2 1 0 ] 30 0 30 +[ 2 1 1 ] 31 0 31 +[ 2 1 1 ] 32 0 32 +[ 2 2 0 ] 33 0 33 +[ 2 2 0 ] 34 0 34 +[ 2 2 1 ] 35 0 35 +[ 2 2 1 ] 36 0 36 +[ 3 0 0 ] 37 0 37 +[ 3 0 0 ] 38 0 38 +[ 3 0 1 ] 39 0 39 +[ 3 0 1 ] 40 0 40 +[ 3 1 0 ] 41 0 41 +[ 3 1 0 ] 42 0 42 +[ 3 1 1 ] 43 0 43 +[ 3 1 1 ] 44 0 44 +[ 3 2 0 ] 45 0 45 +[ 3 2 0 ] 46 0 46 +[ 3 2 1 ] 47 0 47 +[ 3 2 1 ] 48 0 48 +48 differences found +attribute: <enum of </>> and <enum of </>> +size: [2] [2] +position enum of </> enum of </> difference +------------------------------------------------------------ +[ 0 ] RED GREEN +[ 1 ] RED GREEN +2 differences found +attribute: <enum2D of </>> and <enum2D of </>> +size: [3x2] [3x2] +position enum2D of </> enum2D of </> difference +------------------------------------------------------------ +[ 0 0 ] RED GREEN +[ 0 1 ] RED GREEN +[ 1 0 ] RED GREEN +[ 1 1 ] RED GREEN +[ 2 0 ] RED GREEN +[ 2 1 ] RED GREEN +6 differences found +attribute: <enum3D of </>> and <enum3D of </>> +size: [4x3x2] [4x3x2] +position enum3D of </> enum3D of </> difference +------------------------------------------------------------ +[ 0 0 0 ] GREEN RED +[ 0 0 1 ] GREEN RED +[ 0 1 0 ] GREEN RED +[ 0 1 1 ] GREEN RED +[ 0 2 0 ] GREEN RED +[ 0 2 1 ] GREEN RED +[ 1 0 0 ] GREEN RED +[ 1 0 1 ] GREEN RED +[ 1 1 0 ] GREEN RED +[ 1 1 1 ] GREEN RED +[ 1 2 0 ] GREEN RED +[ 1 2 1 ] GREEN RED +[ 2 0 0 ] GREEN RED +[ 2 0 1 ] GREEN RED +[ 2 1 0 ] GREEN RED +[ 2 1 1 ] GREEN RED +[ 2 2 0 ] GREEN RED +[ 2 2 1 ] GREEN RED +[ 3 0 0 ] GREEN RED +[ 3 0 1 ] GREEN RED +[ 3 1 0 ] GREEN RED +[ 3 1 1 ] GREEN RED +[ 3 2 0 ] GREEN RED +[ 3 2 1 ] GREEN RED +24 differences found +attribute: <float of </>> and <float of </>> +size: [2] [2] +position float of </> float of </> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <float2D of </>> and <float2D of </>> +size: [3x2] [3x2] +position float2D of </> float2D of </> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <float3D of </>> and <float3D of </>> +size: [4x3x2] [4x3x2] +position float3D of </> float3D of </> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 1 ] 2 0 2 +[ 0 1 0 ] 3 0 3 +[ 0 1 1 ] 4 0 4 +[ 0 2 0 ] 5 0 5 +[ 0 2 1 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 1 0 ] 9 0 9 +[ 1 1 1 ] 10 0 10 +[ 1 2 0 ] 11 0 11 +[ 1 2 1 ] 12 0 12 +[ 2 0 0 ] 13 0 13 +[ 2 0 1 ] 14 0 14 +[ 2 1 0 ] 15 0 15 +[ 2 1 1 ] 16 0 16 +[ 2 2 0 ] 17 0 17 +[ 2 2 1 ] 18 0 18 +[ 3 0 0 ] 19 0 19 +[ 3 0 1 ] 20 0 20 +[ 3 1 0 ] 21 0 21 +[ 3 1 1 ] 22 0 22 +[ 3 2 0 ] 23 0 23 +[ 3 2 1 ] 24 0 24 +24 differences found +attribute: <integer of </>> and <integer of </>> +size: [2] [2] +position integer of </> integer of </> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <integer2D of </>> and <integer2D of </>> +size: [3x2] [3x2] +position integer2D of </> integer2D of </> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <integer3D of </>> and <integer3D of </>> +size: [4x3x2] [4x3x2] +position integer3D of </> integer3D of </> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 1 ] 2 0 2 +[ 0 1 0 ] 3 0 3 +[ 0 1 1 ] 4 0 4 +[ 0 2 0 ] 5 0 5 +[ 0 2 1 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 1 0 ] 9 0 9 +[ 1 1 1 ] 10 0 10 +[ 1 2 0 ] 11 0 11 +[ 1 2 1 ] 12 0 12 +[ 2 0 0 ] 13 0 13 +[ 2 0 1 ] 14 0 14 +[ 2 1 0 ] 15 0 15 +[ 2 1 1 ] 16 0 16 +[ 2 2 0 ] 17 0 17 +[ 2 2 1 ] 18 0 18 +[ 3 0 0 ] 19 0 19 +[ 3 0 1 ] 20 0 20 +[ 3 1 0 ] 21 0 21 +[ 3 1 1 ] 22 0 22 +[ 3 2 0 ] 23 0 23 +[ 3 2 1 ] 24 0 24 +24 differences found +attribute: <opaque of </>> and <opaque of </>> +size: [2] [2] +position opaque of </> opaque of </> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <opaque2D of </>> and <opaque2D of </>> +size: [3x2] [3x2] +position opaque2D of </> opaque2D of </> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <opaque3D of </>> and <opaque3D of </>> +size: [4x3x2] [4x3x2] +position opaque3D of </> opaque3D of </> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 1 ] 2 0 2 +[ 0 1 0 ] 3 0 3 +[ 0 1 1 ] 4 0 4 +[ 0 2 0 ] 5 0 5 +[ 0 2 1 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 1 0 ] 9 0 9 +[ 1 1 1 ] 10 0 10 +[ 1 2 0 ] 11 0 11 +[ 1 2 1 ] 12 0 12 +[ 2 0 0 ] 13 0 13 +[ 2 0 1 ] 14 0 14 +[ 2 1 0 ] 15 0 15 +[ 2 1 1 ] 16 0 16 +[ 2 2 0 ] 17 0 17 +[ 2 2 1 ] 18 0 18 +[ 3 0 0 ] 19 0 19 +[ 3 0 1 ] 20 0 20 +[ 3 1 0 ] 21 0 21 +[ 3 1 1 ] 22 0 22 +[ 3 2 0 ] 23 0 23 +[ 3 2 1 ] 24 0 24 +24 differences found +attribute: <string of </>> and <string of </>> +size: [2] [2] +position string of </> string of </> difference +------------------------------------------------------------ +[ 0 ] a z +[ 0 ] b z +[ 1 ] d z +[ 1 ] e z +4 differences found +attribute: <string2D of </>> and <string2D of </>> +size: [3x2] [3x2] +position string2D of </> string2D of </> difference +------------------------------------------------------------ +[ 0 0 ] a z +[ 0 0 ] b z +[ 0 1 ] c z +[ 0 1 ] d z +[ 1 0 ] e z +[ 1 0 ] f z +[ 1 1 ] g z +[ 1 1 ] h z +[ 2 0 ] i z +[ 2 0 ] j z +[ 2 1 ] k z +[ 2 1 ] l z +12 differences found +attribute: <string3D of </>> and <string3D of </>> +size: [4x3x2] [4x3x2] +position string3D of </> string3D of </> difference +------------------------------------------------------------ +[ 0 0 0 ] a z +[ 0 0 0 ] b z +[ 0 0 1 ] c z +[ 0 0 1 ] d z +[ 0 1 0 ] e z +[ 0 1 0 ] f z +[ 0 1 1 ] g z +[ 0 1 1 ] h z +[ 0 2 0 ] i z +[ 0 2 0 ] j z +[ 0 2 1 ] k z +[ 0 2 1 ] l z +[ 1 0 0 ] m z +[ 1 0 0 ] n z +[ 1 0 1 ] p z +[ 1 0 1 ] q z +[ 1 1 0 ] r z +[ 1 1 0 ] s z +[ 1 1 1 ] t z +[ 1 1 1 ] u z +[ 1 2 0 ] v z +[ 1 2 0 ] w z +[ 1 2 1 ] x z +[ 2 0 0 ] A z +[ 2 0 0 ] B z +[ 2 0 1 ] C z +[ 2 0 1 ] D z +[ 2 1 0 ] E z +[ 2 1 0 ] F z +[ 2 1 1 ] G z +[ 2 1 1 ] H z +[ 2 2 0 ] I z +[ 2 2 0 ] J z +[ 2 2 1 ] K z +[ 2 2 1 ] L z +[ 3 0 0 ] M z +[ 3 0 0 ] N z +[ 3 0 1 ] P z +[ 3 0 1 ] Q z +[ 3 1 0 ] R z +[ 3 1 0 ] S z +[ 3 1 1 ] T z +[ 3 1 1 ] U z +[ 3 2 0 ] V z +[ 3 2 0 ] W z +[ 3 2 1 ] X z +[ 3 2 1 ] Z z +47 differences found +attribute: <vlen of </>> and <vlen of </>> +size: [2] [2] +position vlen of </> vlen of </> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +[ 1 ] 3 0 3 +3 differences found +attribute: <vlen2D of </>> and <vlen2D of </>> +size: [3x2] [3x2] +position vlen2D of </> vlen2D of </> difference +------------------------------------------------------------ +[ 0 1 ] 1 0 1 +[ 1 0 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 1 1 ] 5 0 5 +[ 2 0 ] 6 0 6 +[ 2 0 ] 7 0 7 +[ 2 0 ] 8 0 8 +[ 2 1 ] 9 0 9 +[ 2 1 ] 10 0 10 +[ 2 1 ] 11 0 11 +11 differences found +attribute: <vlen3D of </>> and <vlen3D of </>> +size: [4x3x2] [4x3x2] +position vlen3D of </> vlen3D of </> difference +------------------------------------------------------------ +[ 0 0 1 ] 1 0 1 +[ 0 1 0 ] 2 0 2 +[ 0 1 1 ] 3 0 3 +[ 0 2 0 ] 4 0 4 +[ 0 2 1 ] 5 0 5 +[ 1 0 0 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 0 1 ] 9 0 9 +[ 1 1 0 ] 10 0 10 +[ 1 1 0 ] 11 0 11 +[ 1 1 1 ] 12 0 12 +[ 1 1 1 ] 13 0 13 +[ 1 2 0 ] 14 0 14 +[ 1 2 0 ] 15 0 15 +[ 1 2 1 ] 16 0 16 +[ 1 2 1 ] 17 0 17 +[ 2 0 0 ] 18 0 18 +[ 2 0 0 ] 19 0 19 +[ 2 0 0 ] 20 0 20 +[ 2 0 1 ] 21 0 21 +[ 2 0 1 ] 22 0 22 +[ 2 0 1 ] 23 0 23 +[ 2 1 0 ] 24 0 24 +[ 2 1 0 ] 25 0 25 +[ 2 1 0 ] 26 0 26 +[ 2 1 1 ] 27 0 27 +[ 2 1 1 ] 28 0 28 +[ 2 1 1 ] 29 0 29 +[ 2 2 0 ] 30 0 30 +[ 2 2 0 ] 31 0 31 +[ 2 2 0 ] 32 0 32 +[ 2 2 1 ] 33 0 33 +[ 2 2 1 ] 34 0 34 +[ 2 2 1 ] 35 0 35 +[ 3 0 0 ] 36 0 36 +[ 3 0 0 ] 37 0 37 +[ 3 0 0 ] 38 0 38 +[ 3 0 0 ] 39 0 39 +[ 3 0 1 ] 40 0 40 +[ 3 0 1 ] 41 0 41 +[ 3 0 1 ] 42 0 42 +[ 3 0 1 ] 43 0 43 +[ 3 1 0 ] 44 0 44 +[ 3 1 0 ] 45 0 45 +[ 3 1 0 ] 46 0 46 +[ 3 1 0 ] 47 0 47 +[ 3 1 1 ] 48 0 48 +[ 3 1 1 ] 49 0 49 +[ 3 1 1 ] 50 0 50 +[ 3 1 1 ] 51 0 51 +[ 3 2 0 ] 52 0 52 +[ 3 2 0 ] 53 0 53 +[ 3 2 0 ] 54 0 54 +[ 3 2 0 ] 55 0 55 +[ 3 2 1 ] 56 0 56 +[ 3 2 1 ] 57 0 57 +[ 3 2 1 ] 58 0 58 +[ 3 2 1 ] 59 0 59 +59 differences found + +dataset: </dset> and </dset> +Not comparable: </dset> or </dset> is an empty dataset +Attributes status: 33 common, 0 only in obj1, 0 only in obj2 +attribute: <VLstring of </dset>> and <VLstring of </dset>> +size: [2] [2] +position VLstring of </dset> VLstring of </dset> difference +------------------------------------------------------------ +[ 0 ] a z +[ 0 ] b z +[ 1 ] d z +[ 1 ] e z +4 differences found +attribute: <VLstring2D of </dset>> and <VLstring2D of </dset>> +size: [3x2] [3x2] +position VLstring2D of </dset> VLstring2D of </dset> difference +------------------------------------------------------------ +[ 0 0 ] a z +[ 0 0 ] b z +[ 0 1 ] c z +[ 0 1 ] d z +[ 1 0 ] e z +[ 1 0 ] f z +[ 1 1 ] g z +[ 1 1 ] h z +[ 2 0 ] i z +[ 2 0 ] j z +[ 2 1 ] k z +[ 2 1 ] l z +12 differences found +attribute: <VLstring3D of </dset>> and <VLstring3D of </dset>> +size: [4x3x2] [4x3x2] +position VLstring3D of </dset> VLstring3D of </dset> difference +------------------------------------------------------------ +[ 0 0 0 ] a z +[ 0 0 0 ] b z +[ 0 0 1 ] c z +[ 0 0 1 ] d z +[ 0 1 0 ] e z +[ 0 1 0 ] f z +[ 0 1 1 ] g z +[ 0 1 1 ] h z +[ 0 2 0 ] i z +[ 0 2 0 ] j z +[ 0 2 1 ] k z +[ 0 2 1 ] l z +[ 1 0 0 ] m z +[ 1 0 0 ] n z +[ 1 0 1 ] p z +[ 1 0 1 ] q z +[ 1 1 0 ] r z +[ 1 1 0 ] s z +[ 1 1 1 ] t z +[ 1 1 1 ] u z +[ 1 2 0 ] v z +[ 1 2 0 ] w z +[ 1 2 1 ] x z +[ 2 0 0 ] A z +[ 2 0 0 ] B z +[ 2 0 1 ] C z +[ 2 0 1 ] D z +[ 2 1 0 ] E z +[ 2 1 0 ] F z +[ 2 1 1 ] G z +[ 2 1 1 ] H z +[ 2 2 0 ] I z +[ 2 2 0 ] J z +[ 2 2 1 ] K z +[ 2 2 1 ] L z +[ 3 0 0 ] M z +[ 3 0 0 ] N z +[ 3 0 1 ] P z +[ 3 0 1 ] Q z +[ 3 1 0 ] R z +[ 3 1 0 ] S z +[ 3 1 1 ] T z +[ 3 1 1 ] U z +[ 3 2 0 ] V z +[ 3 2 0 ] W z +[ 3 2 1 ] X z +[ 3 2 1 ] Z z +47 differences found +attribute: <array of </dset>> and <array of </dset>> +size: [2] [2] +position array of </dset> array of </dset> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 0 ] 2 0 2 +[ 0 ] 3 0 3 +[ 1 ] 4 0 4 +[ 1 ] 5 0 5 +[ 1 ] 6 0 6 +6 differences found +attribute: <array2D of </dset>> and <array2D of </dset>> +size: [3x2] [3x2] +position array2D of </dset> array2D of </dset> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 0 ] 2 0 2 +[ 0 0 ] 3 0 3 +[ 0 1 ] 4 0 4 +[ 0 1 ] 5 0 5 +[ 0 1 ] 6 0 6 +[ 1 0 ] 7 0 7 +[ 1 0 ] 8 0 8 +[ 1 0 ] 9 0 9 +[ 1 1 ] 10 0 10 +[ 1 1 ] 11 0 11 +[ 1 1 ] 12 0 12 +[ 2 0 ] 13 0 13 +[ 2 0 ] 14 0 14 +[ 2 0 ] 15 0 15 +[ 2 1 ] 16 0 16 +[ 2 1 ] 17 0 17 +[ 2 1 ] 18 0 18 +18 differences found +attribute: <array3D of </dset>> and <array3D of </dset>> +size: [4x3x2] [4x3x2] +position array3D of </dset> array3D of </dset> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 0 ] 2 0 2 +[ 0 0 0 ] 3 0 3 +[ 0 0 1 ] 4 0 4 +[ 0 0 1 ] 5 0 5 +[ 0 0 1 ] 6 0 6 +[ 0 1 0 ] 7 0 7 +[ 0 1 0 ] 8 0 8 +[ 0 1 0 ] 9 0 9 +[ 0 1 1 ] 10 0 10 +[ 0 1 1 ] 11 0 11 +[ 0 1 1 ] 12 0 12 +[ 0 2 0 ] 13 0 13 +[ 0 2 0 ] 14 0 14 +[ 0 2 0 ] 15 0 15 +[ 0 2 1 ] 16 0 16 +[ 0 2 1 ] 17 0 17 +[ 0 2 1 ] 18 0 18 +[ 1 0 0 ] 19 0 19 +[ 1 0 0 ] 20 0 20 +[ 1 0 0 ] 21 0 21 +[ 1 0 1 ] 22 0 22 +[ 1 0 1 ] 23 0 23 +[ 1 0 1 ] 24 0 24 +[ 1 1 0 ] 25 0 25 +[ 1 1 0 ] 26 0 26 +[ 1 1 0 ] 27 0 27 +[ 1 1 1 ] 28 0 28 +[ 1 1 1 ] 29 0 29 +[ 1 1 1 ] 30 0 30 +[ 1 2 0 ] 31 0 31 +[ 1 2 0 ] 32 0 32 +[ 1 2 0 ] 33 0 33 +[ 1 2 1 ] 34 0 34 +[ 1 2 1 ] 35 0 35 +[ 1 2 1 ] 36 0 36 +[ 2 0 0 ] 37 0 37 +[ 2 0 0 ] 38 0 38 +[ 2 0 0 ] 39 0 39 +[ 2 0 1 ] 40 0 40 +[ 2 0 1 ] 41 0 41 +[ 2 0 1 ] 42 0 42 +[ 2 1 0 ] 43 0 43 +[ 2 1 0 ] 44 0 44 +[ 2 1 0 ] 45 0 45 +[ 2 1 1 ] 46 0 46 +[ 2 1 1 ] 47 0 47 +[ 2 1 1 ] 48 0 48 +[ 2 2 0 ] 49 0 49 +[ 2 2 0 ] 50 0 50 +[ 2 2 0 ] 51 0 51 +[ 2 2 1 ] 52 0 52 +[ 2 2 1 ] 53 0 53 +[ 2 2 1 ] 54 0 54 +[ 3 0 0 ] 55 0 55 +[ 3 0 0 ] 56 0 56 +[ 3 0 0 ] 57 0 57 +[ 3 0 1 ] 58 0 58 +[ 3 0 1 ] 59 0 59 +[ 3 0 1 ] 60 0 60 +[ 3 1 0 ] 61 0 61 +[ 3 1 0 ] 62 0 62 +[ 3 1 0 ] 63 0 63 +[ 3 1 1 ] 64 0 64 +[ 3 1 1 ] 65 0 65 +[ 3 1 1 ] 66 0 66 +[ 3 2 0 ] 67 0 67 +[ 3 2 0 ] 68 0 68 +[ 3 2 0 ] 69 0 69 +[ 3 2 1 ] 70 0 70 +[ 3 2 1 ] 71 0 71 +[ 3 2 1 ] 72 0 72 +72 differences found +attribute: <bitfield of </dset>> and <bitfield of </dset>> +size: [2] [2] +position bitfield of </dset> bitfield of </dset> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <bitfield2D of </dset>> and <bitfield2D of </dset>> +size: [3x2] [3x2] +position bitfield2D of </dset> bitfield2D of </dset> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <bitfield3D of </dset>> and <bitfield3D of </dset>> +size: [4x3x2] [4x3x2] +position bitfield3D of </dset> bitfield3D of </dset> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 1 ] 2 0 2 +[ 0 1 0 ] 3 0 3 +[ 0 1 1 ] 4 0 4 +[ 0 2 0 ] 5 0 5 +[ 0 2 1 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 1 0 ] 9 0 9 +[ 1 1 1 ] 10 0 10 +[ 1 2 0 ] 11 0 11 +[ 1 2 1 ] 12 0 12 +[ 2 0 0 ] 13 0 13 +[ 2 0 1 ] 14 0 14 +[ 2 1 0 ] 15 0 15 +[ 2 1 1 ] 16 0 16 +[ 2 2 0 ] 17 0 17 +[ 2 2 1 ] 18 0 18 +[ 3 0 0 ] 19 0 19 +[ 3 0 1 ] 20 0 20 +[ 3 1 0 ] 21 0 21 +[ 3 1 1 ] 22 0 22 +[ 3 2 0 ] 23 0 23 +[ 3 2 1 ] 24 0 24 +24 differences found +attribute: <compound of </dset>> and <compound of </dset>> +size: [2] [2] +position compound of </dset> compound of </dset> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 0 ] 2 0 2 +[ 1 ] 3 0 3 +[ 1 ] 4 0 4 +4 differences found +attribute: <compound2D of </dset>> and <compound2D of </dset>> +size: [3x2] [3x2] +position compound2D of </dset> compound2D of </dset> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 0 ] 2 0 2 +[ 0 1 ] 3 0 3 +[ 0 1 ] 4 0 4 +[ 1 0 ] 5 0 5 +[ 1 0 ] 6 0 6 +[ 1 1 ] 7 0 7 +[ 1 1 ] 8 0 8 +[ 2 0 ] 9 0 9 +[ 2 0 ] 10 0 10 +[ 2 1 ] 11 0 11 +[ 2 1 ] 12 0 12 +12 differences found +attribute: <compound3D of </dset>> and <compound3D of </dset>> +size: [4x3x2] [4x3x2] +position compound3D of </dset> compound3D of </dset> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 0 ] 2 0 2 +[ 0 0 1 ] 3 0 3 +[ 0 0 1 ] 4 0 4 +[ 0 1 0 ] 5 0 5 +[ 0 1 0 ] 6 0 6 +[ 0 1 1 ] 7 0 7 +[ 0 1 1 ] 8 0 8 +[ 0 2 0 ] 9 0 9 +[ 0 2 0 ] 10 0 10 +[ 0 2 1 ] 11 0 11 +[ 0 2 1 ] 12 0 12 +[ 1 0 0 ] 13 0 13 +[ 1 0 0 ] 14 0 14 +[ 1 0 1 ] 15 0 15 +[ 1 0 1 ] 16 0 16 +[ 1 1 0 ] 17 0 17 +[ 1 1 0 ] 18 0 18 +[ 1 1 1 ] 19 0 19 +[ 1 1 1 ] 20 0 20 +[ 1 2 0 ] 21 0 21 +[ 1 2 0 ] 22 0 22 +[ 1 2 1 ] 23 0 23 +[ 1 2 1 ] 24 0 24 +[ 2 0 0 ] 25 0 25 +[ 2 0 0 ] 26 0 26 +[ 2 0 1 ] 27 0 27 +[ 2 0 1 ] 28 0 28 +[ 2 1 0 ] 29 0 29 +[ 2 1 0 ] 30 0 30 +[ 2 1 1 ] 31 0 31 +[ 2 1 1 ] 32 0 32 +[ 2 2 0 ] 33 0 33 +[ 2 2 0 ] 34 0 34 +[ 2 2 1 ] 35 0 35 +[ 2 2 1 ] 36 0 36 +[ 3 0 0 ] 37 0 37 +[ 3 0 0 ] 38 0 38 +[ 3 0 1 ] 39 0 39 +[ 3 0 1 ] 40 0 40 +[ 3 1 0 ] 41 0 41 +[ 3 1 0 ] 42 0 42 +[ 3 1 1 ] 43 0 43 +[ 3 1 1 ] 44 0 44 +[ 3 2 0 ] 45 0 45 +[ 3 2 0 ] 46 0 46 +[ 3 2 1 ] 47 0 47 +[ 3 2 1 ] 48 0 48 +48 differences found +attribute: <enum of </dset>> and <enum of </dset>> +size: [2] [2] +position enum of </dset> enum of </dset> difference +------------------------------------------------------------ +[ 0 ] RED GREEN +[ 1 ] RED GREEN +2 differences found +attribute: <enum2D of </dset>> and <enum2D of </dset>> +size: [3x2] [3x2] +position enum2D of </dset> enum2D of </dset> difference +------------------------------------------------------------ +[ 0 0 ] RED GREEN +[ 0 1 ] RED GREEN +[ 1 0 ] RED GREEN +[ 1 1 ] RED GREEN +[ 2 0 ] RED GREEN +[ 2 1 ] RED GREEN +6 differences found +attribute: <enum3D of </dset>> and <enum3D of </dset>> +size: [4x3x2] [4x3x2] +position enum3D of </dset> enum3D of </dset> difference +------------------------------------------------------------ +[ 0 0 0 ] GREEN RED +[ 0 0 1 ] GREEN RED +[ 0 1 0 ] GREEN RED +[ 0 1 1 ] GREEN RED +[ 0 2 0 ] GREEN RED +[ 0 2 1 ] GREEN RED +[ 1 0 0 ] GREEN RED +[ 1 0 1 ] GREEN RED +[ 1 1 0 ] GREEN RED +[ 1 1 1 ] GREEN RED +[ 1 2 0 ] GREEN RED +[ 1 2 1 ] GREEN RED +[ 2 0 0 ] GREEN RED +[ 2 0 1 ] GREEN RED +[ 2 1 0 ] GREEN RED +[ 2 1 1 ] GREEN RED +[ 2 2 0 ] GREEN RED +[ 2 2 1 ] GREEN RED +[ 3 0 0 ] GREEN RED +[ 3 0 1 ] GREEN RED +[ 3 1 0 ] GREEN RED +[ 3 1 1 ] GREEN RED +[ 3 2 0 ] GREEN RED +[ 3 2 1 ] GREEN RED +24 differences found +attribute: <float of </dset>> and <float of </dset>> +size: [2] [2] +position float of </dset> float of </dset> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <float2D of </dset>> and <float2D of </dset>> +size: [3x2] [3x2] +position float2D of </dset> float2D of </dset> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <float3D of </dset>> and <float3D of </dset>> +size: [4x3x2] [4x3x2] +position float3D of </dset> float3D of </dset> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 1 ] 2 0 2 +[ 0 1 0 ] 3 0 3 +[ 0 1 1 ] 4 0 4 +[ 0 2 0 ] 5 0 5 +[ 0 2 1 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 1 0 ] 9 0 9 +[ 1 1 1 ] 10 0 10 +[ 1 2 0 ] 11 0 11 +[ 1 2 1 ] 12 0 12 +[ 2 0 0 ] 13 0 13 +[ 2 0 1 ] 14 0 14 +[ 2 1 0 ] 15 0 15 +[ 2 1 1 ] 16 0 16 +[ 2 2 0 ] 17 0 17 +[ 2 2 1 ] 18 0 18 +[ 3 0 0 ] 19 0 19 +[ 3 0 1 ] 20 0 20 +[ 3 1 0 ] 21 0 21 +[ 3 1 1 ] 22 0 22 +[ 3 2 0 ] 23 0 23 +[ 3 2 1 ] 24 0 24 +24 differences found +attribute: <integer of </dset>> and <integer of </dset>> +size: [2] [2] +position integer of </dset> integer of </dset> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <integer2D of </dset>> and <integer2D of </dset>> +size: [3x2] [3x2] +position integer2D of </dset> integer2D of </dset> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <integer3D of </dset>> and <integer3D of </dset>> +size: [4x3x2] [4x3x2] +position integer3D of </dset> integer3D of </dset> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 1 ] 2 0 2 +[ 0 1 0 ] 3 0 3 +[ 0 1 1 ] 4 0 4 +[ 0 2 0 ] 5 0 5 +[ 0 2 1 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 1 0 ] 9 0 9 +[ 1 1 1 ] 10 0 10 +[ 1 2 0 ] 11 0 11 +[ 1 2 1 ] 12 0 12 +[ 2 0 0 ] 13 0 13 +[ 2 0 1 ] 14 0 14 +[ 2 1 0 ] 15 0 15 +[ 2 1 1 ] 16 0 16 +[ 2 2 0 ] 17 0 17 +[ 2 2 1 ] 18 0 18 +[ 3 0 0 ] 19 0 19 +[ 3 0 1 ] 20 0 20 +[ 3 1 0 ] 21 0 21 +[ 3 1 1 ] 22 0 22 +[ 3 2 0 ] 23 0 23 +[ 3 2 1 ] 24 0 24 +24 differences found +attribute: <opaque of </dset>> and <opaque of </dset>> +size: [2] [2] +position opaque of </dset> opaque of </dset> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <opaque2D of </dset>> and <opaque2D of </dset>> +size: [3x2] [3x2] +position opaque2D of </dset> opaque2D of </dset> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <opaque3D of </dset>> and <opaque3D of </dset>> +size: [4x3x2] [4x3x2] +position opaque3D of </dset> opaque3D of </dset> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 1 ] 2 0 2 +[ 0 1 0 ] 3 0 3 +[ 0 1 1 ] 4 0 4 +[ 0 2 0 ] 5 0 5 +[ 0 2 1 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 1 0 ] 9 0 9 +[ 1 1 1 ] 10 0 10 +[ 1 2 0 ] 11 0 11 +[ 1 2 1 ] 12 0 12 +[ 2 0 0 ] 13 0 13 +[ 2 0 1 ] 14 0 14 +[ 2 1 0 ] 15 0 15 +[ 2 1 1 ] 16 0 16 +[ 2 2 0 ] 17 0 17 +[ 2 2 1 ] 18 0 18 +[ 3 0 0 ] 19 0 19 +[ 3 0 1 ] 20 0 20 +[ 3 1 0 ] 21 0 21 +[ 3 1 1 ] 22 0 22 +[ 3 2 0 ] 23 0 23 +[ 3 2 1 ] 24 0 24 +24 differences found +attribute: <reference of </dset>> and <reference of </dset>> +0 differences found +attribute: <reference2D of </dset>> and <reference2D of </dset>> +0 differences found +attribute: <reference3D of </dset>> and <reference3D of </dset>> +0 differences found +attribute: <string of </dset>> and <string of </dset>> +size: [2] [2] +position string of </dset> string of </dset> difference +------------------------------------------------------------ +[ 0 ] a z +[ 0 ] b z +[ 1 ] d z +[ 1 ] e z +4 differences found +attribute: <string2D of </dset>> and <string2D of </dset>> +size: [3x2] [3x2] +position string2D of </dset> string2D of </dset> difference +------------------------------------------------------------ +[ 0 0 ] a z +[ 0 0 ] b z +[ 0 1 ] c z +[ 0 1 ] d z +[ 1 0 ] e z +[ 1 0 ] f z +[ 1 1 ] g z +[ 1 1 ] h z +[ 2 0 ] i z +[ 2 0 ] j z +[ 2 1 ] k z +[ 2 1 ] l z +12 differences found +attribute: <string3D of </dset>> and <string3D of </dset>> +size: [4x3x2] [4x3x2] +position string3D of </dset> string3D of </dset> difference +------------------------------------------------------------ +[ 0 0 0 ] a z +[ 0 0 0 ] b z +[ 0 0 1 ] c z +[ 0 0 1 ] d z +[ 0 1 0 ] e z +[ 0 1 0 ] f z +[ 0 1 1 ] g z +[ 0 1 1 ] h z +[ 0 2 0 ] i z +[ 0 2 0 ] j z +[ 0 2 1 ] k z +[ 0 2 1 ] l z +[ 1 0 0 ] m z +[ 1 0 0 ] n z +[ 1 0 1 ] p z +[ 1 0 1 ] q z +[ 1 1 0 ] r z +[ 1 1 0 ] s z +[ 1 1 1 ] t z +[ 1 1 1 ] u z +[ 1 2 0 ] v z +[ 1 2 0 ] w z +[ 1 2 1 ] x z +[ 2 0 0 ] A z +[ 2 0 0 ] B z +[ 2 0 1 ] C z +[ 2 0 1 ] D z +[ 2 1 0 ] E z +[ 2 1 0 ] F z +[ 2 1 1 ] G z +[ 2 1 1 ] H z +[ 2 2 0 ] I z +[ 2 2 0 ] J z +[ 2 2 1 ] K z +[ 2 2 1 ] L z +[ 3 0 0 ] M z +[ 3 0 0 ] N z +[ 3 0 1 ] P z +[ 3 0 1 ] Q z +[ 3 1 0 ] R z +[ 3 1 0 ] S z +[ 3 1 1 ] T z +[ 3 1 1 ] U z +[ 3 2 0 ] V z +[ 3 2 0 ] W z +[ 3 2 1 ] X z +[ 3 2 1 ] Z z +47 differences found +attribute: <vlen of </dset>> and <vlen of </dset>> +size: [2] [2] +position vlen of </dset> vlen of </dset> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +[ 1 ] 3 0 3 +3 differences found +attribute: <vlen2D of </dset>> and <vlen2D of </dset>> +size: [3x2] [3x2] +position vlen2D of </dset> vlen2D of </dset> difference +------------------------------------------------------------ +[ 0 1 ] 1 0 1 +[ 1 0 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 1 1 ] 5 0 5 +[ 2 0 ] 6 0 6 +[ 2 0 ] 7 0 7 +[ 2 0 ] 8 0 8 +[ 2 1 ] 9 0 9 +[ 2 1 ] 10 0 10 +[ 2 1 ] 11 0 11 +11 differences found +attribute: <vlen3D of </dset>> and <vlen3D of </dset>> +size: [4x3x2] [4x3x2] +position vlen3D of </dset> vlen3D of </dset> difference +------------------------------------------------------------ +[ 0 0 1 ] 1 0 1 +[ 0 1 0 ] 2 0 2 +[ 0 1 1 ] 3 0 3 +[ 0 2 0 ] 4 0 4 +[ 0 2 1 ] 5 0 5 +[ 1 0 0 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 0 1 ] 9 0 9 +[ 1 1 0 ] 10 0 10 +[ 1 1 0 ] 11 0 11 +[ 1 1 1 ] 12 0 12 +[ 1 1 1 ] 13 0 13 +[ 1 2 0 ] 14 0 14 +[ 1 2 0 ] 15 0 15 +[ 1 2 1 ] 16 0 16 +[ 1 2 1 ] 17 0 17 +[ 2 0 0 ] 18 0 18 +[ 2 0 0 ] 19 0 19 +[ 2 0 0 ] 20 0 20 +[ 2 0 1 ] 21 0 21 +[ 2 0 1 ] 22 0 22 +[ 2 0 1 ] 23 0 23 +[ 2 1 0 ] 24 0 24 +[ 2 1 0 ] 25 0 25 +[ 2 1 0 ] 26 0 26 +[ 2 1 1 ] 27 0 27 +[ 2 1 1 ] 28 0 28 +[ 2 1 1 ] 29 0 29 +[ 2 2 0 ] 30 0 30 +[ 2 2 0 ] 31 0 31 +[ 2 2 0 ] 32 0 32 +[ 2 2 1 ] 33 0 33 +[ 2 2 1 ] 34 0 34 +[ 2 2 1 ] 35 0 35 +[ 3 0 0 ] 36 0 36 +[ 3 0 0 ] 37 0 37 +[ 3 0 0 ] 38 0 38 +[ 3 0 0 ] 39 0 39 +[ 3 0 1 ] 40 0 40 +[ 3 0 1 ] 41 0 41 +[ 3 0 1 ] 42 0 42 +[ 3 0 1 ] 43 0 43 +[ 3 1 0 ] 44 0 44 +[ 3 1 0 ] 45 0 45 +[ 3 1 0 ] 46 0 46 +[ 3 1 0 ] 47 0 47 +[ 3 1 1 ] 48 0 48 +[ 3 1 1 ] 49 0 49 +[ 3 1 1 ] 50 0 50 +[ 3 1 1 ] 51 0 51 +[ 3 2 0 ] 52 0 52 +[ 3 2 0 ] 53 0 53 +[ 3 2 0 ] 54 0 54 +[ 3 2 0 ] 55 0 55 +[ 3 2 1 ] 56 0 56 +[ 3 2 1 ] 57 0 57 +[ 3 2 1 ] 58 0 58 +[ 3 2 1 ] 59 0 59 +59 differences found +519 differences found + +group : </g1> and </g1> +0 differences found +Attributes status: 30 common, 0 only in obj1, 0 only in obj2 +attribute: <VLstring of </g1>> and <VLstring of </g1>> +size: [2] [2] +position VLstring of </g1> VLstring of </g1> difference +------------------------------------------------------------ +[ 0 ] a z +[ 0 ] b z +[ 1 ] d z +[ 1 ] e z +4 differences found +attribute: <VLstring2D of </g1>> and <VLstring2D of </g1>> +size: [3x2] [3x2] +position VLstring2D of </g1> VLstring2D of </g1> difference +------------------------------------------------------------ +[ 0 0 ] a z +[ 0 0 ] b z +[ 0 1 ] c z +[ 0 1 ] d z +[ 1 0 ] e z +[ 1 0 ] f z +[ 1 1 ] g z +[ 1 1 ] h z +[ 2 0 ] i z +[ 2 0 ] j z +[ 2 1 ] k z +[ 2 1 ] l z +12 differences found +attribute: <VLstring3D of </g1>> and <VLstring3D of </g1>> +size: [4x3x2] [4x3x2] +position VLstring3D of </g1> VLstring3D of </g1> difference +------------------------------------------------------------ +[ 0 0 0 ] a z +[ 0 0 0 ] b z +[ 0 0 1 ] c z +[ 0 0 1 ] d z +[ 0 1 0 ] e z +[ 0 1 0 ] f z +[ 0 1 1 ] g z +[ 0 1 1 ] h z +[ 0 2 0 ] i z +[ 0 2 0 ] j z +[ 0 2 1 ] k z +[ 0 2 1 ] l z +[ 1 0 0 ] m z +[ 1 0 0 ] n z +[ 1 0 1 ] p z +[ 1 0 1 ] q z +[ 1 1 0 ] r z +[ 1 1 0 ] s z +[ 1 1 1 ] t z +[ 1 1 1 ] u z +[ 1 2 0 ] v z +[ 1 2 0 ] w z +[ 1 2 1 ] x z +[ 2 0 0 ] A z +[ 2 0 0 ] B z +[ 2 0 1 ] C z +[ 2 0 1 ] D z +[ 2 1 0 ] E z +[ 2 1 0 ] F z +[ 2 1 1 ] G z +[ 2 1 1 ] H z +[ 2 2 0 ] I z +[ 2 2 0 ] J z +[ 2 2 1 ] K z +[ 2 2 1 ] L z +[ 3 0 0 ] M z +[ 3 0 0 ] N z +[ 3 0 1 ] P z +[ 3 0 1 ] Q z +[ 3 1 0 ] R z +[ 3 1 0 ] S z +[ 3 1 1 ] T z +[ 3 1 1 ] U z +[ 3 2 0 ] V z +[ 3 2 0 ] W z +[ 3 2 1 ] X z +[ 3 2 1 ] Z z +47 differences found +attribute: <array of </g1>> and <array of </g1>> +size: [2] [2] +position array of </g1> array of </g1> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 0 ] 2 0 2 +[ 0 ] 3 0 3 +[ 1 ] 4 0 4 +[ 1 ] 5 0 5 +[ 1 ] 6 0 6 +6 differences found +attribute: <array2D of </g1>> and <array2D of </g1>> +size: [3x2] [3x2] +position array2D of </g1> array2D of </g1> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 0 ] 2 0 2 +[ 0 0 ] 3 0 3 +[ 0 1 ] 4 0 4 +[ 0 1 ] 5 0 5 +[ 0 1 ] 6 0 6 +[ 1 0 ] 7 0 7 +[ 1 0 ] 8 0 8 +[ 1 0 ] 9 0 9 +[ 1 1 ] 10 0 10 +[ 1 1 ] 11 0 11 +[ 1 1 ] 12 0 12 +[ 2 0 ] 13 0 13 +[ 2 0 ] 14 0 14 +[ 2 0 ] 15 0 15 +[ 2 1 ] 16 0 16 +[ 2 1 ] 17 0 17 +[ 2 1 ] 18 0 18 +18 differences found +attribute: <array3D of </g1>> and <array3D of </g1>> +size: [4x3x2] [4x3x2] +position array3D of </g1> array3D of </g1> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 0 ] 2 0 2 +[ 0 0 0 ] 3 0 3 +[ 0 0 1 ] 4 0 4 +[ 0 0 1 ] 5 0 5 +[ 0 0 1 ] 6 0 6 +[ 0 1 0 ] 7 0 7 +[ 0 1 0 ] 8 0 8 +[ 0 1 0 ] 9 0 9 +[ 0 1 1 ] 10 0 10 +[ 0 1 1 ] 11 0 11 +[ 0 1 1 ] 12 0 12 +[ 0 2 0 ] 13 0 13 +[ 0 2 0 ] 14 0 14 +[ 0 2 0 ] 15 0 15 +[ 0 2 1 ] 16 0 16 +[ 0 2 1 ] 17 0 17 +[ 0 2 1 ] 18 0 18 +[ 1 0 0 ] 19 0 19 +[ 1 0 0 ] 20 0 20 +[ 1 0 0 ] 21 0 21 +[ 1 0 1 ] 22 0 22 +[ 1 0 1 ] 23 0 23 +[ 1 0 1 ] 24 0 24 +[ 1 1 0 ] 25 0 25 +[ 1 1 0 ] 26 0 26 +[ 1 1 0 ] 27 0 27 +[ 1 1 1 ] 28 0 28 +[ 1 1 1 ] 29 0 29 +[ 1 1 1 ] 30 0 30 +[ 1 2 0 ] 31 0 31 +[ 1 2 0 ] 32 0 32 +[ 1 2 0 ] 33 0 33 +[ 1 2 1 ] 34 0 34 +[ 1 2 1 ] 35 0 35 +[ 1 2 1 ] 36 0 36 +[ 2 0 0 ] 37 0 37 +[ 2 0 0 ] 38 0 38 +[ 2 0 0 ] 39 0 39 +[ 2 0 1 ] 40 0 40 +[ 2 0 1 ] 41 0 41 +[ 2 0 1 ] 42 0 42 +[ 2 1 0 ] 43 0 43 +[ 2 1 0 ] 44 0 44 +[ 2 1 0 ] 45 0 45 +[ 2 1 1 ] 46 0 46 +[ 2 1 1 ] 47 0 47 +[ 2 1 1 ] 48 0 48 +[ 2 2 0 ] 49 0 49 +[ 2 2 0 ] 50 0 50 +[ 2 2 0 ] 51 0 51 +[ 2 2 1 ] 52 0 52 +[ 2 2 1 ] 53 0 53 +[ 2 2 1 ] 54 0 54 +[ 3 0 0 ] 55 0 55 +[ 3 0 0 ] 56 0 56 +[ 3 0 0 ] 57 0 57 +[ 3 0 1 ] 58 0 58 +[ 3 0 1 ] 59 0 59 +[ 3 0 1 ] 60 0 60 +[ 3 1 0 ] 61 0 61 +[ 3 1 0 ] 62 0 62 +[ 3 1 0 ] 63 0 63 +[ 3 1 1 ] 64 0 64 +[ 3 1 1 ] 65 0 65 +[ 3 1 1 ] 66 0 66 +[ 3 2 0 ] 67 0 67 +[ 3 2 0 ] 68 0 68 +[ 3 2 0 ] 69 0 69 +[ 3 2 1 ] 70 0 70 +[ 3 2 1 ] 71 0 71 +[ 3 2 1 ] 72 0 72 +72 differences found +attribute: <bitfield of </g1>> and <bitfield of </g1>> +size: [2] [2] +position bitfield of </g1> bitfield of </g1> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <bitfield2D of </g1>> and <bitfield2D of </g1>> +size: [3x2] [3x2] +position bitfield2D of </g1> bitfield2D of </g1> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <bitfield3D of </g1>> and <bitfield3D of </g1>> +size: [4x3x2] [4x3x2] +position bitfield3D of </g1> bitfield3D of </g1> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 1 ] 2 0 2 +[ 0 1 0 ] 3 0 3 +[ 0 1 1 ] 4 0 4 +[ 0 2 0 ] 5 0 5 +[ 0 2 1 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 1 0 ] 9 0 9 +[ 1 1 1 ] 10 0 10 +[ 1 2 0 ] 11 0 11 +[ 1 2 1 ] 12 0 12 +[ 2 0 0 ] 13 0 13 +[ 2 0 1 ] 14 0 14 +[ 2 1 0 ] 15 0 15 +[ 2 1 1 ] 16 0 16 +[ 2 2 0 ] 17 0 17 +[ 2 2 1 ] 18 0 18 +[ 3 0 0 ] 19 0 19 +[ 3 0 1 ] 20 0 20 +[ 3 1 0 ] 21 0 21 +[ 3 1 1 ] 22 0 22 +[ 3 2 0 ] 23 0 23 +[ 3 2 1 ] 24 0 24 +24 differences found +attribute: <compound of </g1>> and <compound of </g1>> +size: [2] [2] +position compound of </g1> compound of </g1> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 0 ] 2 0 2 +[ 1 ] 3 0 3 +[ 1 ] 4 0 4 +4 differences found +attribute: <compound2D of </g1>> and <compound2D of </g1>> +size: [3x2] [3x2] +position compound2D of </g1> compound2D of </g1> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 0 ] 2 0 2 +[ 0 1 ] 3 0 3 +[ 0 1 ] 4 0 4 +[ 1 0 ] 5 0 5 +[ 1 0 ] 6 0 6 +[ 1 1 ] 7 0 7 +[ 1 1 ] 8 0 8 +[ 2 0 ] 9 0 9 +[ 2 0 ] 10 0 10 +[ 2 1 ] 11 0 11 +[ 2 1 ] 12 0 12 +12 differences found +attribute: <compound3D of </g1>> and <compound3D of </g1>> +size: [4x3x2] [4x3x2] +position compound3D of </g1> compound3D of </g1> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 0 ] 2 0 2 +[ 0 0 1 ] 3 0 3 +[ 0 0 1 ] 4 0 4 +[ 0 1 0 ] 5 0 5 +[ 0 1 0 ] 6 0 6 +[ 0 1 1 ] 7 0 7 +[ 0 1 1 ] 8 0 8 +[ 0 2 0 ] 9 0 9 +[ 0 2 0 ] 10 0 10 +[ 0 2 1 ] 11 0 11 +[ 0 2 1 ] 12 0 12 +[ 1 0 0 ] 13 0 13 +[ 1 0 0 ] 14 0 14 +[ 1 0 1 ] 15 0 15 +[ 1 0 1 ] 16 0 16 +[ 1 1 0 ] 17 0 17 +[ 1 1 0 ] 18 0 18 +[ 1 1 1 ] 19 0 19 +[ 1 1 1 ] 20 0 20 +[ 1 2 0 ] 21 0 21 +[ 1 2 0 ] 22 0 22 +[ 1 2 1 ] 23 0 23 +[ 1 2 1 ] 24 0 24 +[ 2 0 0 ] 25 0 25 +[ 2 0 0 ] 26 0 26 +[ 2 0 1 ] 27 0 27 +[ 2 0 1 ] 28 0 28 +[ 2 1 0 ] 29 0 29 +[ 2 1 0 ] 30 0 30 +[ 2 1 1 ] 31 0 31 +[ 2 1 1 ] 32 0 32 +[ 2 2 0 ] 33 0 33 +[ 2 2 0 ] 34 0 34 +[ 2 2 1 ] 35 0 35 +[ 2 2 1 ] 36 0 36 +[ 3 0 0 ] 37 0 37 +[ 3 0 0 ] 38 0 38 +[ 3 0 1 ] 39 0 39 +[ 3 0 1 ] 40 0 40 +[ 3 1 0 ] 41 0 41 +[ 3 1 0 ] 42 0 42 +[ 3 1 1 ] 43 0 43 +[ 3 1 1 ] 44 0 44 +[ 3 2 0 ] 45 0 45 +[ 3 2 0 ] 46 0 46 +[ 3 2 1 ] 47 0 47 +[ 3 2 1 ] 48 0 48 +48 differences found +attribute: <enum of </g1>> and <enum of </g1>> +size: [2] [2] +position enum of </g1> enum of </g1> difference +------------------------------------------------------------ +[ 0 ] RED GREEN +[ 1 ] RED GREEN +2 differences found +attribute: <enum2D of </g1>> and <enum2D of </g1>> +size: [3x2] [3x2] +position enum2D of </g1> enum2D of </g1> difference +------------------------------------------------------------ +[ 0 0 ] RED GREEN +[ 0 1 ] RED GREEN +[ 1 0 ] RED GREEN +[ 1 1 ] RED GREEN +[ 2 0 ] RED GREEN +[ 2 1 ] RED GREEN +6 differences found +attribute: <enum3D of </g1>> and <enum3D of </g1>> +size: [4x3x2] [4x3x2] +position enum3D of </g1> enum3D of </g1> difference +------------------------------------------------------------ +[ 0 0 0 ] GREEN RED +[ 0 0 1 ] GREEN RED +[ 0 1 0 ] GREEN RED +[ 0 1 1 ] GREEN RED +[ 0 2 0 ] GREEN RED +[ 0 2 1 ] GREEN RED +[ 1 0 0 ] GREEN RED +[ 1 0 1 ] GREEN RED +[ 1 1 0 ] GREEN RED +[ 1 1 1 ] GREEN RED +[ 1 2 0 ] GREEN RED +[ 1 2 1 ] GREEN RED +[ 2 0 0 ] GREEN RED +[ 2 0 1 ] GREEN RED +[ 2 1 0 ] GREEN RED +[ 2 1 1 ] GREEN RED +[ 2 2 0 ] GREEN RED +[ 2 2 1 ] GREEN RED +[ 3 0 0 ] GREEN RED +[ 3 0 1 ] GREEN RED +[ 3 1 0 ] GREEN RED +[ 3 1 1 ] GREEN RED +[ 3 2 0 ] GREEN RED +[ 3 2 1 ] GREEN RED +24 differences found +attribute: <float of </g1>> and <float of </g1>> +size: [2] [2] +position float of </g1> float of </g1> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <float2D of </g1>> and <float2D of </g1>> +size: [3x2] [3x2] +position float2D of </g1> float2D of </g1> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <float3D of </g1>> and <float3D of </g1>> +size: [4x3x2] [4x3x2] +position float3D of </g1> float3D of </g1> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 1 ] 2 0 2 +[ 0 1 0 ] 3 0 3 +[ 0 1 1 ] 4 0 4 +[ 0 2 0 ] 5 0 5 +[ 0 2 1 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 1 0 ] 9 0 9 +[ 1 1 1 ] 10 0 10 +[ 1 2 0 ] 11 0 11 +[ 1 2 1 ] 12 0 12 +[ 2 0 0 ] 13 0 13 +[ 2 0 1 ] 14 0 14 +[ 2 1 0 ] 15 0 15 +[ 2 1 1 ] 16 0 16 +[ 2 2 0 ] 17 0 17 +[ 2 2 1 ] 18 0 18 +[ 3 0 0 ] 19 0 19 +[ 3 0 1 ] 20 0 20 +[ 3 1 0 ] 21 0 21 +[ 3 1 1 ] 22 0 22 +[ 3 2 0 ] 23 0 23 +[ 3 2 1 ] 24 0 24 +24 differences found +attribute: <integer of </g1>> and <integer of </g1>> +size: [2] [2] +position integer of </g1> integer of </g1> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <integer2D of </g1>> and <integer2D of </g1>> +size: [3x2] [3x2] +position integer2D of </g1> integer2D of </g1> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <integer3D of </g1>> and <integer3D of </g1>> +size: [4x3x2] [4x3x2] +position integer3D of </g1> integer3D of </g1> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 1 ] 2 0 2 +[ 0 1 0 ] 3 0 3 +[ 0 1 1 ] 4 0 4 +[ 0 2 0 ] 5 0 5 +[ 0 2 1 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 1 0 ] 9 0 9 +[ 1 1 1 ] 10 0 10 +[ 1 2 0 ] 11 0 11 +[ 1 2 1 ] 12 0 12 +[ 2 0 0 ] 13 0 13 +[ 2 0 1 ] 14 0 14 +[ 2 1 0 ] 15 0 15 +[ 2 1 1 ] 16 0 16 +[ 2 2 0 ] 17 0 17 +[ 2 2 1 ] 18 0 18 +[ 3 0 0 ] 19 0 19 +[ 3 0 1 ] 20 0 20 +[ 3 1 0 ] 21 0 21 +[ 3 1 1 ] 22 0 22 +[ 3 2 0 ] 23 0 23 +[ 3 2 1 ] 24 0 24 +24 differences found +attribute: <opaque of </g1>> and <opaque of </g1>> +size: [2] [2] +position opaque of </g1> opaque of </g1> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <opaque2D of </g1>> and <opaque2D of </g1>> +size: [3x2] [3x2] +position opaque2D of </g1> opaque2D of </g1> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <opaque3D of </g1>> and <opaque3D of </g1>> +size: [4x3x2] [4x3x2] +position opaque3D of </g1> opaque3D of </g1> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 1 ] 2 0 2 +[ 0 1 0 ] 3 0 3 +[ 0 1 1 ] 4 0 4 +[ 0 2 0 ] 5 0 5 +[ 0 2 1 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 1 0 ] 9 0 9 +[ 1 1 1 ] 10 0 10 +[ 1 2 0 ] 11 0 11 +[ 1 2 1 ] 12 0 12 +[ 2 0 0 ] 13 0 13 +[ 2 0 1 ] 14 0 14 +[ 2 1 0 ] 15 0 15 +[ 2 1 1 ] 16 0 16 +[ 2 2 0 ] 17 0 17 +[ 2 2 1 ] 18 0 18 +[ 3 0 0 ] 19 0 19 +[ 3 0 1 ] 20 0 20 +[ 3 1 0 ] 21 0 21 +[ 3 1 1 ] 22 0 22 +[ 3 2 0 ] 23 0 23 +[ 3 2 1 ] 24 0 24 +24 differences found +attribute: <string of </g1>> and <string of </g1>> +size: [2] [2] +position string of </g1> string of </g1> difference +------------------------------------------------------------ +[ 0 ] a z +[ 0 ] b z +[ 1 ] d z +[ 1 ] e z +4 differences found +attribute: <string2D of </g1>> and <string2D of </g1>> +size: [3x2] [3x2] +position string2D of </g1> string2D of </g1> difference +------------------------------------------------------------ +[ 0 0 ] a z +[ 0 0 ] b z +[ 0 1 ] c z +[ 0 1 ] d z +[ 1 0 ] e z +[ 1 0 ] f z +[ 1 1 ] g z +[ 1 1 ] h z +[ 2 0 ] i z +[ 2 0 ] j z +[ 2 1 ] k z +[ 2 1 ] l z +12 differences found +attribute: <string3D of </g1>> and <string3D of </g1>> +size: [4x3x2] [4x3x2] +position string3D of </g1> string3D of </g1> difference +------------------------------------------------------------ +[ 0 0 0 ] a z +[ 0 0 0 ] b z +[ 0 0 1 ] c z +[ 0 0 1 ] d z +[ 0 1 0 ] e z +[ 0 1 0 ] f z +[ 0 1 1 ] g z +[ 0 1 1 ] h z +[ 0 2 0 ] i z +[ 0 2 0 ] j z +[ 0 2 1 ] k z +[ 0 2 1 ] l z +[ 1 0 0 ] m z +[ 1 0 0 ] n z +[ 1 0 1 ] p z +[ 1 0 1 ] q z +[ 1 1 0 ] r z +[ 1 1 0 ] s z +[ 1 1 1 ] t z +[ 1 1 1 ] u z +[ 1 2 0 ] v z +[ 1 2 0 ] w z +[ 1 2 1 ] x z +[ 2 0 0 ] A z +[ 2 0 0 ] B z +[ 2 0 1 ] C z +[ 2 0 1 ] D z +[ 2 1 0 ] E z +[ 2 1 0 ] F z +[ 2 1 1 ] G z +[ 2 1 1 ] H z +[ 2 2 0 ] I z +[ 2 2 0 ] J z +[ 2 2 1 ] K z +[ 2 2 1 ] L z +[ 3 0 0 ] M z +[ 3 0 0 ] N z +[ 3 0 1 ] P z +[ 3 0 1 ] Q z +[ 3 1 0 ] R z +[ 3 1 0 ] S z +[ 3 1 1 ] T z +[ 3 1 1 ] U z +[ 3 2 0 ] V z +[ 3 2 0 ] W z +[ 3 2 1 ] X z +[ 3 2 1 ] Z z +47 differences found +attribute: <vlen of </g1>> and <vlen of </g1>> +size: [2] [2] +position vlen of </g1> vlen of </g1> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +[ 1 ] 3 0 3 +3 differences found +attribute: <vlen2D of </g1>> and <vlen2D of </g1>> +size: [3x2] [3x2] +position vlen2D of </g1> vlen2D of </g1> difference +------------------------------------------------------------ +[ 0 1 ] 1 0 1 +[ 1 0 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 1 1 ] 5 0 5 +[ 2 0 ] 6 0 6 +[ 2 0 ] 7 0 7 +[ 2 0 ] 8 0 8 +[ 2 1 ] 9 0 9 +[ 2 1 ] 10 0 10 +[ 2 1 ] 11 0 11 +11 differences found +attribute: <vlen3D of </g1>> and <vlen3D of </g1>> +size: [4x3x2] [4x3x2] +position vlen3D of </g1> vlen3D of </g1> difference +------------------------------------------------------------ +[ 0 0 1 ] 1 0 1 +[ 0 1 0 ] 2 0 2 +[ 0 1 1 ] 3 0 3 +[ 0 2 0 ] 4 0 4 +[ 0 2 1 ] 5 0 5 +[ 1 0 0 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 0 1 ] 9 0 9 +[ 1 1 0 ] 10 0 10 +[ 1 1 0 ] 11 0 11 +[ 1 1 1 ] 12 0 12 +[ 1 1 1 ] 13 0 13 +[ 1 2 0 ] 14 0 14 +[ 1 2 0 ] 15 0 15 +[ 1 2 1 ] 16 0 16 +[ 1 2 1 ] 17 0 17 +[ 2 0 0 ] 18 0 18 +[ 2 0 0 ] 19 0 19 +[ 2 0 0 ] 20 0 20 +[ 2 0 1 ] 21 0 21 +[ 2 0 1 ] 22 0 22 +[ 2 0 1 ] 23 0 23 +[ 2 1 0 ] 24 0 24 +[ 2 1 0 ] 25 0 25 +[ 2 1 0 ] 26 0 26 +[ 2 1 1 ] 27 0 27 +[ 2 1 1 ] 28 0 28 +[ 2 1 1 ] 29 0 29 +[ 2 2 0 ] 30 0 30 +[ 2 2 0 ] 31 0 31 +[ 2 2 0 ] 32 0 32 +[ 2 2 1 ] 33 0 33 +[ 2 2 1 ] 34 0 34 +[ 2 2 1 ] 35 0 35 +[ 3 0 0 ] 36 0 36 +[ 3 0 0 ] 37 0 37 +[ 3 0 0 ] 38 0 38 +[ 3 0 0 ] 39 0 39 +[ 3 0 1 ] 40 0 40 +[ 3 0 1 ] 41 0 41 +[ 3 0 1 ] 42 0 42 +[ 3 0 1 ] 43 0 43 +[ 3 1 0 ] 44 0 44 +[ 3 1 0 ] 45 0 45 +[ 3 1 0 ] 46 0 46 +[ 3 1 0 ] 47 0 47 +[ 3 1 1 ] 48 0 48 +[ 3 1 1 ] 49 0 49 +[ 3 1 1 ] 50 0 50 +[ 3 1 1 ] 51 0 51 +[ 3 2 0 ] 52 0 52 +[ 3 2 0 ] 53 0 53 +[ 3 2 0 ] 54 0 54 +[ 3 2 0 ] 55 0 55 +[ 3 2 1 ] 56 0 56 +[ 3 2 1 ] 57 0 57 +[ 3 2 1 ] 58 0 58 +[ 3 2 1 ] 59 0 59 +59 differences found +-------------------------------- +Some objects are not comparable +-------------------------------- +Use -c for a list of objects. +EXIT CODE: 1 diff --git a/tools/h5diff/testfiles/h5diff_701.txt b/tools/h5diff/testfiles/h5diff_701.txt new file mode 100644 index 0000000..3b3e5b6 --- /dev/null +++ b/tools/h5diff/testfiles/h5diff_701.txt @@ -0,0 +1,2137 @@ + +file1 file2 +--------------------------------------- + x x / + x x /dset + x x /g1 + + +group : </> and </> +0 differences found + obj1 obj2 + -------------------------------------- + x x VLstring + x x VLstring2D + x x VLstring3D + x x array + x x array2D + x x array3D + x x bitfield + x x bitfield2D + x x bitfield3D + x x compound + x x compound2D + x x compound3D + x x enum + x x enum2D + x x enum3D + x x float + x x float2D + x x float3D + x x integer + x x integer2D + x x integer3D + x x opaque + x x opaque2D + x x opaque3D + x x string + x x string2D + x x string3D + x x vlen + x x vlen2D + x x vlen3D +Attributes status: 30 common, 0 only in obj1, 0 only in obj2 +attribute: <VLstring of </>> and <VLstring of </>> +size: [2] [2] +position VLstring of </> VLstring of </> difference +------------------------------------------------------------ +[ 0 ] a z +[ 0 ] b z +[ 1 ] d z +[ 1 ] e z +4 differences found +attribute: <VLstring2D of </>> and <VLstring2D of </>> +size: [3x2] [3x2] +position VLstring2D of </> VLstring2D of </> difference +------------------------------------------------------------ +[ 0 0 ] a z +[ 0 0 ] b z +[ 0 1 ] c z +[ 0 1 ] d z +[ 1 0 ] e z +[ 1 0 ] f z +[ 1 1 ] g z +[ 1 1 ] h z +[ 2 0 ] i z +[ 2 0 ] j z +[ 2 1 ] k z +[ 2 1 ] l z +12 differences found +attribute: <VLstring3D of </>> and <VLstring3D of </>> +size: [4x3x2] [4x3x2] +position VLstring3D of </> VLstring3D of </> difference +------------------------------------------------------------ +[ 0 0 0 ] a z +[ 0 0 0 ] b z +[ 0 0 1 ] c z +[ 0 0 1 ] d z +[ 0 1 0 ] e z +[ 0 1 0 ] f z +[ 0 1 1 ] g z +[ 0 1 1 ] h z +[ 0 2 0 ] i z +[ 0 2 0 ] j z +[ 0 2 1 ] k z +[ 0 2 1 ] l z +[ 1 0 0 ] m z +[ 1 0 0 ] n z +[ 1 0 1 ] p z +[ 1 0 1 ] q z +[ 1 1 0 ] r z +[ 1 1 0 ] s z +[ 1 1 1 ] t z +[ 1 1 1 ] u z +[ 1 2 0 ] v z +[ 1 2 0 ] w z +[ 1 2 1 ] x z +[ 2 0 0 ] A z +[ 2 0 0 ] B z +[ 2 0 1 ] C z +[ 2 0 1 ] D z +[ 2 1 0 ] E z +[ 2 1 0 ] F z +[ 2 1 1 ] G z +[ 2 1 1 ] H z +[ 2 2 0 ] I z +[ 2 2 0 ] J z +[ 2 2 1 ] K z +[ 2 2 1 ] L z +[ 3 0 0 ] M z +[ 3 0 0 ] N z +[ 3 0 1 ] P z +[ 3 0 1 ] Q z +[ 3 1 0 ] R z +[ 3 1 0 ] S z +[ 3 1 1 ] T z +[ 3 1 1 ] U z +[ 3 2 0 ] V z +[ 3 2 0 ] W z +[ 3 2 1 ] X z +[ 3 2 1 ] Z z +47 differences found +attribute: <array of </>> and <array of </>> +size: [2] [2] +position array of </> array of </> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 0 ] 2 0 2 +[ 0 ] 3 0 3 +[ 1 ] 4 0 4 +[ 1 ] 5 0 5 +[ 1 ] 6 0 6 +6 differences found +attribute: <array2D of </>> and <array2D of </>> +size: [3x2] [3x2] +position array2D of </> array2D of </> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 0 ] 2 0 2 +[ 0 0 ] 3 0 3 +[ 0 1 ] 4 0 4 +[ 0 1 ] 5 0 5 +[ 0 1 ] 6 0 6 +[ 1 0 ] 7 0 7 +[ 1 0 ] 8 0 8 +[ 1 0 ] 9 0 9 +[ 1 1 ] 10 0 10 +[ 1 1 ] 11 0 11 +[ 1 1 ] 12 0 12 +[ 2 0 ] 13 0 13 +[ 2 0 ] 14 0 14 +[ 2 0 ] 15 0 15 +[ 2 1 ] 16 0 16 +[ 2 1 ] 17 0 17 +[ 2 1 ] 18 0 18 +18 differences found +attribute: <array3D of </>> and <array3D of </>> +size: [4x3x2] [4x3x2] +position array3D of </> array3D of </> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 0 ] 2 0 2 +[ 0 0 0 ] 3 0 3 +[ 0 0 1 ] 4 0 4 +[ 0 0 1 ] 5 0 5 +[ 0 0 1 ] 6 0 6 +[ 0 1 0 ] 7 0 7 +[ 0 1 0 ] 8 0 8 +[ 0 1 0 ] 9 0 9 +[ 0 1 1 ] 10 0 10 +[ 0 1 1 ] 11 0 11 +[ 0 1 1 ] 12 0 12 +[ 0 2 0 ] 13 0 13 +[ 0 2 0 ] 14 0 14 +[ 0 2 0 ] 15 0 15 +[ 0 2 1 ] 16 0 16 +[ 0 2 1 ] 17 0 17 +[ 0 2 1 ] 18 0 18 +[ 1 0 0 ] 19 0 19 +[ 1 0 0 ] 20 0 20 +[ 1 0 0 ] 21 0 21 +[ 1 0 1 ] 22 0 22 +[ 1 0 1 ] 23 0 23 +[ 1 0 1 ] 24 0 24 +[ 1 1 0 ] 25 0 25 +[ 1 1 0 ] 26 0 26 +[ 1 1 0 ] 27 0 27 +[ 1 1 1 ] 28 0 28 +[ 1 1 1 ] 29 0 29 +[ 1 1 1 ] 30 0 30 +[ 1 2 0 ] 31 0 31 +[ 1 2 0 ] 32 0 32 +[ 1 2 0 ] 33 0 33 +[ 1 2 1 ] 34 0 34 +[ 1 2 1 ] 35 0 35 +[ 1 2 1 ] 36 0 36 +[ 2 0 0 ] 37 0 37 +[ 2 0 0 ] 38 0 38 +[ 2 0 0 ] 39 0 39 +[ 2 0 1 ] 40 0 40 +[ 2 0 1 ] 41 0 41 +[ 2 0 1 ] 42 0 42 +[ 2 1 0 ] 43 0 43 +[ 2 1 0 ] 44 0 44 +[ 2 1 0 ] 45 0 45 +[ 2 1 1 ] 46 0 46 +[ 2 1 1 ] 47 0 47 +[ 2 1 1 ] 48 0 48 +[ 2 2 0 ] 49 0 49 +[ 2 2 0 ] 50 0 50 +[ 2 2 0 ] 51 0 51 +[ 2 2 1 ] 52 0 52 +[ 2 2 1 ] 53 0 53 +[ 2 2 1 ] 54 0 54 +[ 3 0 0 ] 55 0 55 +[ 3 0 0 ] 56 0 56 +[ 3 0 0 ] 57 0 57 +[ 3 0 1 ] 58 0 58 +[ 3 0 1 ] 59 0 59 +[ 3 0 1 ] 60 0 60 +[ 3 1 0 ] 61 0 61 +[ 3 1 0 ] 62 0 62 +[ 3 1 0 ] 63 0 63 +[ 3 1 1 ] 64 0 64 +[ 3 1 1 ] 65 0 65 +[ 3 1 1 ] 66 0 66 +[ 3 2 0 ] 67 0 67 +[ 3 2 0 ] 68 0 68 +[ 3 2 0 ] 69 0 69 +[ 3 2 1 ] 70 0 70 +[ 3 2 1 ] 71 0 71 +[ 3 2 1 ] 72 0 72 +72 differences found +attribute: <bitfield of </>> and <bitfield of </>> +size: [2] [2] +position bitfield of </> bitfield of </> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <bitfield2D of </>> and <bitfield2D of </>> +size: [3x2] [3x2] +position bitfield2D of </> bitfield2D of </> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <bitfield3D of </>> and <bitfield3D of </>> +size: [4x3x2] [4x3x2] +position bitfield3D of </> bitfield3D of </> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 1 ] 2 0 2 +[ 0 1 0 ] 3 0 3 +[ 0 1 1 ] 4 0 4 +[ 0 2 0 ] 5 0 5 +[ 0 2 1 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 1 0 ] 9 0 9 +[ 1 1 1 ] 10 0 10 +[ 1 2 0 ] 11 0 11 +[ 1 2 1 ] 12 0 12 +[ 2 0 0 ] 13 0 13 +[ 2 0 1 ] 14 0 14 +[ 2 1 0 ] 15 0 15 +[ 2 1 1 ] 16 0 16 +[ 2 2 0 ] 17 0 17 +[ 2 2 1 ] 18 0 18 +[ 3 0 0 ] 19 0 19 +[ 3 0 1 ] 20 0 20 +[ 3 1 0 ] 21 0 21 +[ 3 1 1 ] 22 0 22 +[ 3 2 0 ] 23 0 23 +[ 3 2 1 ] 24 0 24 +24 differences found +attribute: <compound of </>> and <compound of </>> +size: [2] [2] +position compound of </> compound of </> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 0 ] 2 0 2 +[ 1 ] 3 0 3 +[ 1 ] 4 0 4 +4 differences found +attribute: <compound2D of </>> and <compound2D of </>> +size: [3x2] [3x2] +position compound2D of </> compound2D of </> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 0 ] 2 0 2 +[ 0 1 ] 3 0 3 +[ 0 1 ] 4 0 4 +[ 1 0 ] 5 0 5 +[ 1 0 ] 6 0 6 +[ 1 1 ] 7 0 7 +[ 1 1 ] 8 0 8 +[ 2 0 ] 9 0 9 +[ 2 0 ] 10 0 10 +[ 2 1 ] 11 0 11 +[ 2 1 ] 12 0 12 +12 differences found +attribute: <compound3D of </>> and <compound3D of </>> +size: [4x3x2] [4x3x2] +position compound3D of </> compound3D of </> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 0 ] 2 0 2 +[ 0 0 1 ] 3 0 3 +[ 0 0 1 ] 4 0 4 +[ 0 1 0 ] 5 0 5 +[ 0 1 0 ] 6 0 6 +[ 0 1 1 ] 7 0 7 +[ 0 1 1 ] 8 0 8 +[ 0 2 0 ] 9 0 9 +[ 0 2 0 ] 10 0 10 +[ 0 2 1 ] 11 0 11 +[ 0 2 1 ] 12 0 12 +[ 1 0 0 ] 13 0 13 +[ 1 0 0 ] 14 0 14 +[ 1 0 1 ] 15 0 15 +[ 1 0 1 ] 16 0 16 +[ 1 1 0 ] 17 0 17 +[ 1 1 0 ] 18 0 18 +[ 1 1 1 ] 19 0 19 +[ 1 1 1 ] 20 0 20 +[ 1 2 0 ] 21 0 21 +[ 1 2 0 ] 22 0 22 +[ 1 2 1 ] 23 0 23 +[ 1 2 1 ] 24 0 24 +[ 2 0 0 ] 25 0 25 +[ 2 0 0 ] 26 0 26 +[ 2 0 1 ] 27 0 27 +[ 2 0 1 ] 28 0 28 +[ 2 1 0 ] 29 0 29 +[ 2 1 0 ] 30 0 30 +[ 2 1 1 ] 31 0 31 +[ 2 1 1 ] 32 0 32 +[ 2 2 0 ] 33 0 33 +[ 2 2 0 ] 34 0 34 +[ 2 2 1 ] 35 0 35 +[ 2 2 1 ] 36 0 36 +[ 3 0 0 ] 37 0 37 +[ 3 0 0 ] 38 0 38 +[ 3 0 1 ] 39 0 39 +[ 3 0 1 ] 40 0 40 +[ 3 1 0 ] 41 0 41 +[ 3 1 0 ] 42 0 42 +[ 3 1 1 ] 43 0 43 +[ 3 1 1 ] 44 0 44 +[ 3 2 0 ] 45 0 45 +[ 3 2 0 ] 46 0 46 +[ 3 2 1 ] 47 0 47 +[ 3 2 1 ] 48 0 48 +48 differences found +attribute: <enum of </>> and <enum of </>> +size: [2] [2] +position enum of </> enum of </> difference +------------------------------------------------------------ +[ 0 ] RED GREEN +[ 1 ] RED GREEN +2 differences found +attribute: <enum2D of </>> and <enum2D of </>> +size: [3x2] [3x2] +position enum2D of </> enum2D of </> difference +------------------------------------------------------------ +[ 0 0 ] RED GREEN +[ 0 1 ] RED GREEN +[ 1 0 ] RED GREEN +[ 1 1 ] RED GREEN +[ 2 0 ] RED GREEN +[ 2 1 ] RED GREEN +6 differences found +attribute: <enum3D of </>> and <enum3D of </>> +size: [4x3x2] [4x3x2] +position enum3D of </> enum3D of </> difference +------------------------------------------------------------ +[ 0 0 0 ] GREEN RED +[ 0 0 1 ] GREEN RED +[ 0 1 0 ] GREEN RED +[ 0 1 1 ] GREEN RED +[ 0 2 0 ] GREEN RED +[ 0 2 1 ] GREEN RED +[ 1 0 0 ] GREEN RED +[ 1 0 1 ] GREEN RED +[ 1 1 0 ] GREEN RED +[ 1 1 1 ] GREEN RED +[ 1 2 0 ] GREEN RED +[ 1 2 1 ] GREEN RED +[ 2 0 0 ] GREEN RED +[ 2 0 1 ] GREEN RED +[ 2 1 0 ] GREEN RED +[ 2 1 1 ] GREEN RED +[ 2 2 0 ] GREEN RED +[ 2 2 1 ] GREEN RED +[ 3 0 0 ] GREEN RED +[ 3 0 1 ] GREEN RED +[ 3 1 0 ] GREEN RED +[ 3 1 1 ] GREEN RED +[ 3 2 0 ] GREEN RED +[ 3 2 1 ] GREEN RED +24 differences found +attribute: <float of </>> and <float of </>> +size: [2] [2] +position float of </> float of </> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <float2D of </>> and <float2D of </>> +size: [3x2] [3x2] +position float2D of </> float2D of </> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <float3D of </>> and <float3D of </>> +size: [4x3x2] [4x3x2] +position float3D of </> float3D of </> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 1 ] 2 0 2 +[ 0 1 0 ] 3 0 3 +[ 0 1 1 ] 4 0 4 +[ 0 2 0 ] 5 0 5 +[ 0 2 1 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 1 0 ] 9 0 9 +[ 1 1 1 ] 10 0 10 +[ 1 2 0 ] 11 0 11 +[ 1 2 1 ] 12 0 12 +[ 2 0 0 ] 13 0 13 +[ 2 0 1 ] 14 0 14 +[ 2 1 0 ] 15 0 15 +[ 2 1 1 ] 16 0 16 +[ 2 2 0 ] 17 0 17 +[ 2 2 1 ] 18 0 18 +[ 3 0 0 ] 19 0 19 +[ 3 0 1 ] 20 0 20 +[ 3 1 0 ] 21 0 21 +[ 3 1 1 ] 22 0 22 +[ 3 2 0 ] 23 0 23 +[ 3 2 1 ] 24 0 24 +24 differences found +attribute: <integer of </>> and <integer of </>> +size: [2] [2] +position integer of </> integer of </> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <integer2D of </>> and <integer2D of </>> +size: [3x2] [3x2] +position integer2D of </> integer2D of </> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <integer3D of </>> and <integer3D of </>> +size: [4x3x2] [4x3x2] +position integer3D of </> integer3D of </> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 1 ] 2 0 2 +[ 0 1 0 ] 3 0 3 +[ 0 1 1 ] 4 0 4 +[ 0 2 0 ] 5 0 5 +[ 0 2 1 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 1 0 ] 9 0 9 +[ 1 1 1 ] 10 0 10 +[ 1 2 0 ] 11 0 11 +[ 1 2 1 ] 12 0 12 +[ 2 0 0 ] 13 0 13 +[ 2 0 1 ] 14 0 14 +[ 2 1 0 ] 15 0 15 +[ 2 1 1 ] 16 0 16 +[ 2 2 0 ] 17 0 17 +[ 2 2 1 ] 18 0 18 +[ 3 0 0 ] 19 0 19 +[ 3 0 1 ] 20 0 20 +[ 3 1 0 ] 21 0 21 +[ 3 1 1 ] 22 0 22 +[ 3 2 0 ] 23 0 23 +[ 3 2 1 ] 24 0 24 +24 differences found +attribute: <opaque of </>> and <opaque of </>> +size: [2] [2] +position opaque of </> opaque of </> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <opaque2D of </>> and <opaque2D of </>> +size: [3x2] [3x2] +position opaque2D of </> opaque2D of </> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <opaque3D of </>> and <opaque3D of </>> +size: [4x3x2] [4x3x2] +position opaque3D of </> opaque3D of </> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 1 ] 2 0 2 +[ 0 1 0 ] 3 0 3 +[ 0 1 1 ] 4 0 4 +[ 0 2 0 ] 5 0 5 +[ 0 2 1 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 1 0 ] 9 0 9 +[ 1 1 1 ] 10 0 10 +[ 1 2 0 ] 11 0 11 +[ 1 2 1 ] 12 0 12 +[ 2 0 0 ] 13 0 13 +[ 2 0 1 ] 14 0 14 +[ 2 1 0 ] 15 0 15 +[ 2 1 1 ] 16 0 16 +[ 2 2 0 ] 17 0 17 +[ 2 2 1 ] 18 0 18 +[ 3 0 0 ] 19 0 19 +[ 3 0 1 ] 20 0 20 +[ 3 1 0 ] 21 0 21 +[ 3 1 1 ] 22 0 22 +[ 3 2 0 ] 23 0 23 +[ 3 2 1 ] 24 0 24 +24 differences found +attribute: <string of </>> and <string of </>> +size: [2] [2] +position string of </> string of </> difference +------------------------------------------------------------ +[ 0 ] a z +[ 0 ] b z +[ 1 ] d z +[ 1 ] e z +4 differences found +attribute: <string2D of </>> and <string2D of </>> +size: [3x2] [3x2] +position string2D of </> string2D of </> difference +------------------------------------------------------------ +[ 0 0 ] a z +[ 0 0 ] b z +[ 0 1 ] c z +[ 0 1 ] d z +[ 1 0 ] e z +[ 1 0 ] f z +[ 1 1 ] g z +[ 1 1 ] h z +[ 2 0 ] i z +[ 2 0 ] j z +[ 2 1 ] k z +[ 2 1 ] l z +12 differences found +attribute: <string3D of </>> and <string3D of </>> +size: [4x3x2] [4x3x2] +position string3D of </> string3D of </> difference +------------------------------------------------------------ +[ 0 0 0 ] a z +[ 0 0 0 ] b z +[ 0 0 1 ] c z +[ 0 0 1 ] d z +[ 0 1 0 ] e z +[ 0 1 0 ] f z +[ 0 1 1 ] g z +[ 0 1 1 ] h z +[ 0 2 0 ] i z +[ 0 2 0 ] j z +[ 0 2 1 ] k z +[ 0 2 1 ] l z +[ 1 0 0 ] m z +[ 1 0 0 ] n z +[ 1 0 1 ] p z +[ 1 0 1 ] q z +[ 1 1 0 ] r z +[ 1 1 0 ] s z +[ 1 1 1 ] t z +[ 1 1 1 ] u z +[ 1 2 0 ] v z +[ 1 2 0 ] w z +[ 1 2 1 ] x z +[ 2 0 0 ] A z +[ 2 0 0 ] B z +[ 2 0 1 ] C z +[ 2 0 1 ] D z +[ 2 1 0 ] E z +[ 2 1 0 ] F z +[ 2 1 1 ] G z +[ 2 1 1 ] H z +[ 2 2 0 ] I z +[ 2 2 0 ] J z +[ 2 2 1 ] K z +[ 2 2 1 ] L z +[ 3 0 0 ] M z +[ 3 0 0 ] N z +[ 3 0 1 ] P z +[ 3 0 1 ] Q z +[ 3 1 0 ] R z +[ 3 1 0 ] S z +[ 3 1 1 ] T z +[ 3 1 1 ] U z +[ 3 2 0 ] V z +[ 3 2 0 ] W z +[ 3 2 1 ] X z +[ 3 2 1 ] Z z +47 differences found +attribute: <vlen of </>> and <vlen of </>> +size: [2] [2] +position vlen of </> vlen of </> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +[ 1 ] 3 0 3 +3 differences found +attribute: <vlen2D of </>> and <vlen2D of </>> +size: [3x2] [3x2] +position vlen2D of </> vlen2D of </> difference +------------------------------------------------------------ +[ 0 1 ] 1 0 1 +[ 1 0 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 1 1 ] 5 0 5 +[ 2 0 ] 6 0 6 +[ 2 0 ] 7 0 7 +[ 2 0 ] 8 0 8 +[ 2 1 ] 9 0 9 +[ 2 1 ] 10 0 10 +[ 2 1 ] 11 0 11 +11 differences found +attribute: <vlen3D of </>> and <vlen3D of </>> +size: [4x3x2] [4x3x2] +position vlen3D of </> vlen3D of </> difference +------------------------------------------------------------ +[ 0 0 1 ] 1 0 1 +[ 0 1 0 ] 2 0 2 +[ 0 1 1 ] 3 0 3 +[ 0 2 0 ] 4 0 4 +[ 0 2 1 ] 5 0 5 +[ 1 0 0 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 0 1 ] 9 0 9 +[ 1 1 0 ] 10 0 10 +[ 1 1 0 ] 11 0 11 +[ 1 1 1 ] 12 0 12 +[ 1 1 1 ] 13 0 13 +[ 1 2 0 ] 14 0 14 +[ 1 2 0 ] 15 0 15 +[ 1 2 1 ] 16 0 16 +[ 1 2 1 ] 17 0 17 +[ 2 0 0 ] 18 0 18 +[ 2 0 0 ] 19 0 19 +[ 2 0 0 ] 20 0 20 +[ 2 0 1 ] 21 0 21 +[ 2 0 1 ] 22 0 22 +[ 2 0 1 ] 23 0 23 +[ 2 1 0 ] 24 0 24 +[ 2 1 0 ] 25 0 25 +[ 2 1 0 ] 26 0 26 +[ 2 1 1 ] 27 0 27 +[ 2 1 1 ] 28 0 28 +[ 2 1 1 ] 29 0 29 +[ 2 2 0 ] 30 0 30 +[ 2 2 0 ] 31 0 31 +[ 2 2 0 ] 32 0 32 +[ 2 2 1 ] 33 0 33 +[ 2 2 1 ] 34 0 34 +[ 2 2 1 ] 35 0 35 +[ 3 0 0 ] 36 0 36 +[ 3 0 0 ] 37 0 37 +[ 3 0 0 ] 38 0 38 +[ 3 0 0 ] 39 0 39 +[ 3 0 1 ] 40 0 40 +[ 3 0 1 ] 41 0 41 +[ 3 0 1 ] 42 0 42 +[ 3 0 1 ] 43 0 43 +[ 3 1 0 ] 44 0 44 +[ 3 1 0 ] 45 0 45 +[ 3 1 0 ] 46 0 46 +[ 3 1 0 ] 47 0 47 +[ 3 1 1 ] 48 0 48 +[ 3 1 1 ] 49 0 49 +[ 3 1 1 ] 50 0 50 +[ 3 1 1 ] 51 0 51 +[ 3 2 0 ] 52 0 52 +[ 3 2 0 ] 53 0 53 +[ 3 2 0 ] 54 0 54 +[ 3 2 0 ] 55 0 55 +[ 3 2 1 ] 56 0 56 +[ 3 2 1 ] 57 0 57 +[ 3 2 1 ] 58 0 58 +[ 3 2 1 ] 59 0 59 +59 differences found + +dataset: </dset> and </dset> +Not comparable: </dset> or </dset> is an empty dataset + obj1 obj2 + -------------------------------------- + x x VLstring + x x VLstring2D + x x VLstring3D + x x array + x x array2D + x x array3D + x x bitfield + x x bitfield2D + x x bitfield3D + x x compound + x x compound2D + x x compound3D + x x enum + x x enum2D + x x enum3D + x x float + x x float2D + x x float3D + x x integer + x x integer2D + x x integer3D + x x opaque + x x opaque2D + x x opaque3D + x x reference + x x reference2D + x x reference3D + x x string + x x string2D + x x string3D + x x vlen + x x vlen2D + x x vlen3D +Attributes status: 33 common, 0 only in obj1, 0 only in obj2 +attribute: <VLstring of </dset>> and <VLstring of </dset>> +size: [2] [2] +position VLstring of </dset> VLstring of </dset> difference +------------------------------------------------------------ +[ 0 ] a z +[ 0 ] b z +[ 1 ] d z +[ 1 ] e z +4 differences found +attribute: <VLstring2D of </dset>> and <VLstring2D of </dset>> +size: [3x2] [3x2] +position VLstring2D of </dset> VLstring2D of </dset> difference +------------------------------------------------------------ +[ 0 0 ] a z +[ 0 0 ] b z +[ 0 1 ] c z +[ 0 1 ] d z +[ 1 0 ] e z +[ 1 0 ] f z +[ 1 1 ] g z +[ 1 1 ] h z +[ 2 0 ] i z +[ 2 0 ] j z +[ 2 1 ] k z +[ 2 1 ] l z +12 differences found +attribute: <VLstring3D of </dset>> and <VLstring3D of </dset>> +size: [4x3x2] [4x3x2] +position VLstring3D of </dset> VLstring3D of </dset> difference +------------------------------------------------------------ +[ 0 0 0 ] a z +[ 0 0 0 ] b z +[ 0 0 1 ] c z +[ 0 0 1 ] d z +[ 0 1 0 ] e z +[ 0 1 0 ] f z +[ 0 1 1 ] g z +[ 0 1 1 ] h z +[ 0 2 0 ] i z +[ 0 2 0 ] j z +[ 0 2 1 ] k z +[ 0 2 1 ] l z +[ 1 0 0 ] m z +[ 1 0 0 ] n z +[ 1 0 1 ] p z +[ 1 0 1 ] q z +[ 1 1 0 ] r z +[ 1 1 0 ] s z +[ 1 1 1 ] t z +[ 1 1 1 ] u z +[ 1 2 0 ] v z +[ 1 2 0 ] w z +[ 1 2 1 ] x z +[ 2 0 0 ] A z +[ 2 0 0 ] B z +[ 2 0 1 ] C z +[ 2 0 1 ] D z +[ 2 1 0 ] E z +[ 2 1 0 ] F z +[ 2 1 1 ] G z +[ 2 1 1 ] H z +[ 2 2 0 ] I z +[ 2 2 0 ] J z +[ 2 2 1 ] K z +[ 2 2 1 ] L z +[ 3 0 0 ] M z +[ 3 0 0 ] N z +[ 3 0 1 ] P z +[ 3 0 1 ] Q z +[ 3 1 0 ] R z +[ 3 1 0 ] S z +[ 3 1 1 ] T z +[ 3 1 1 ] U z +[ 3 2 0 ] V z +[ 3 2 0 ] W z +[ 3 2 1 ] X z +[ 3 2 1 ] Z z +47 differences found +attribute: <array of </dset>> and <array of </dset>> +size: [2] [2] +position array of </dset> array of </dset> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 0 ] 2 0 2 +[ 0 ] 3 0 3 +[ 1 ] 4 0 4 +[ 1 ] 5 0 5 +[ 1 ] 6 0 6 +6 differences found +attribute: <array2D of </dset>> and <array2D of </dset>> +size: [3x2] [3x2] +position array2D of </dset> array2D of </dset> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 0 ] 2 0 2 +[ 0 0 ] 3 0 3 +[ 0 1 ] 4 0 4 +[ 0 1 ] 5 0 5 +[ 0 1 ] 6 0 6 +[ 1 0 ] 7 0 7 +[ 1 0 ] 8 0 8 +[ 1 0 ] 9 0 9 +[ 1 1 ] 10 0 10 +[ 1 1 ] 11 0 11 +[ 1 1 ] 12 0 12 +[ 2 0 ] 13 0 13 +[ 2 0 ] 14 0 14 +[ 2 0 ] 15 0 15 +[ 2 1 ] 16 0 16 +[ 2 1 ] 17 0 17 +[ 2 1 ] 18 0 18 +18 differences found +attribute: <array3D of </dset>> and <array3D of </dset>> +size: [4x3x2] [4x3x2] +position array3D of </dset> array3D of </dset> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 0 ] 2 0 2 +[ 0 0 0 ] 3 0 3 +[ 0 0 1 ] 4 0 4 +[ 0 0 1 ] 5 0 5 +[ 0 0 1 ] 6 0 6 +[ 0 1 0 ] 7 0 7 +[ 0 1 0 ] 8 0 8 +[ 0 1 0 ] 9 0 9 +[ 0 1 1 ] 10 0 10 +[ 0 1 1 ] 11 0 11 +[ 0 1 1 ] 12 0 12 +[ 0 2 0 ] 13 0 13 +[ 0 2 0 ] 14 0 14 +[ 0 2 0 ] 15 0 15 +[ 0 2 1 ] 16 0 16 +[ 0 2 1 ] 17 0 17 +[ 0 2 1 ] 18 0 18 +[ 1 0 0 ] 19 0 19 +[ 1 0 0 ] 20 0 20 +[ 1 0 0 ] 21 0 21 +[ 1 0 1 ] 22 0 22 +[ 1 0 1 ] 23 0 23 +[ 1 0 1 ] 24 0 24 +[ 1 1 0 ] 25 0 25 +[ 1 1 0 ] 26 0 26 +[ 1 1 0 ] 27 0 27 +[ 1 1 1 ] 28 0 28 +[ 1 1 1 ] 29 0 29 +[ 1 1 1 ] 30 0 30 +[ 1 2 0 ] 31 0 31 +[ 1 2 0 ] 32 0 32 +[ 1 2 0 ] 33 0 33 +[ 1 2 1 ] 34 0 34 +[ 1 2 1 ] 35 0 35 +[ 1 2 1 ] 36 0 36 +[ 2 0 0 ] 37 0 37 +[ 2 0 0 ] 38 0 38 +[ 2 0 0 ] 39 0 39 +[ 2 0 1 ] 40 0 40 +[ 2 0 1 ] 41 0 41 +[ 2 0 1 ] 42 0 42 +[ 2 1 0 ] 43 0 43 +[ 2 1 0 ] 44 0 44 +[ 2 1 0 ] 45 0 45 +[ 2 1 1 ] 46 0 46 +[ 2 1 1 ] 47 0 47 +[ 2 1 1 ] 48 0 48 +[ 2 2 0 ] 49 0 49 +[ 2 2 0 ] 50 0 50 +[ 2 2 0 ] 51 0 51 +[ 2 2 1 ] 52 0 52 +[ 2 2 1 ] 53 0 53 +[ 2 2 1 ] 54 0 54 +[ 3 0 0 ] 55 0 55 +[ 3 0 0 ] 56 0 56 +[ 3 0 0 ] 57 0 57 +[ 3 0 1 ] 58 0 58 +[ 3 0 1 ] 59 0 59 +[ 3 0 1 ] 60 0 60 +[ 3 1 0 ] 61 0 61 +[ 3 1 0 ] 62 0 62 +[ 3 1 0 ] 63 0 63 +[ 3 1 1 ] 64 0 64 +[ 3 1 1 ] 65 0 65 +[ 3 1 1 ] 66 0 66 +[ 3 2 0 ] 67 0 67 +[ 3 2 0 ] 68 0 68 +[ 3 2 0 ] 69 0 69 +[ 3 2 1 ] 70 0 70 +[ 3 2 1 ] 71 0 71 +[ 3 2 1 ] 72 0 72 +72 differences found +attribute: <bitfield of </dset>> and <bitfield of </dset>> +size: [2] [2] +position bitfield of </dset> bitfield of </dset> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <bitfield2D of </dset>> and <bitfield2D of </dset>> +size: [3x2] [3x2] +position bitfield2D of </dset> bitfield2D of </dset> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <bitfield3D of </dset>> and <bitfield3D of </dset>> +size: [4x3x2] [4x3x2] +position bitfield3D of </dset> bitfield3D of </dset> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 1 ] 2 0 2 +[ 0 1 0 ] 3 0 3 +[ 0 1 1 ] 4 0 4 +[ 0 2 0 ] 5 0 5 +[ 0 2 1 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 1 0 ] 9 0 9 +[ 1 1 1 ] 10 0 10 +[ 1 2 0 ] 11 0 11 +[ 1 2 1 ] 12 0 12 +[ 2 0 0 ] 13 0 13 +[ 2 0 1 ] 14 0 14 +[ 2 1 0 ] 15 0 15 +[ 2 1 1 ] 16 0 16 +[ 2 2 0 ] 17 0 17 +[ 2 2 1 ] 18 0 18 +[ 3 0 0 ] 19 0 19 +[ 3 0 1 ] 20 0 20 +[ 3 1 0 ] 21 0 21 +[ 3 1 1 ] 22 0 22 +[ 3 2 0 ] 23 0 23 +[ 3 2 1 ] 24 0 24 +24 differences found +attribute: <compound of </dset>> and <compound of </dset>> +size: [2] [2] +position compound of </dset> compound of </dset> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 0 ] 2 0 2 +[ 1 ] 3 0 3 +[ 1 ] 4 0 4 +4 differences found +attribute: <compound2D of </dset>> and <compound2D of </dset>> +size: [3x2] [3x2] +position compound2D of </dset> compound2D of </dset> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 0 ] 2 0 2 +[ 0 1 ] 3 0 3 +[ 0 1 ] 4 0 4 +[ 1 0 ] 5 0 5 +[ 1 0 ] 6 0 6 +[ 1 1 ] 7 0 7 +[ 1 1 ] 8 0 8 +[ 2 0 ] 9 0 9 +[ 2 0 ] 10 0 10 +[ 2 1 ] 11 0 11 +[ 2 1 ] 12 0 12 +12 differences found +attribute: <compound3D of </dset>> and <compound3D of </dset>> +size: [4x3x2] [4x3x2] +position compound3D of </dset> compound3D of </dset> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 0 ] 2 0 2 +[ 0 0 1 ] 3 0 3 +[ 0 0 1 ] 4 0 4 +[ 0 1 0 ] 5 0 5 +[ 0 1 0 ] 6 0 6 +[ 0 1 1 ] 7 0 7 +[ 0 1 1 ] 8 0 8 +[ 0 2 0 ] 9 0 9 +[ 0 2 0 ] 10 0 10 +[ 0 2 1 ] 11 0 11 +[ 0 2 1 ] 12 0 12 +[ 1 0 0 ] 13 0 13 +[ 1 0 0 ] 14 0 14 +[ 1 0 1 ] 15 0 15 +[ 1 0 1 ] 16 0 16 +[ 1 1 0 ] 17 0 17 +[ 1 1 0 ] 18 0 18 +[ 1 1 1 ] 19 0 19 +[ 1 1 1 ] 20 0 20 +[ 1 2 0 ] 21 0 21 +[ 1 2 0 ] 22 0 22 +[ 1 2 1 ] 23 0 23 +[ 1 2 1 ] 24 0 24 +[ 2 0 0 ] 25 0 25 +[ 2 0 0 ] 26 0 26 +[ 2 0 1 ] 27 0 27 +[ 2 0 1 ] 28 0 28 +[ 2 1 0 ] 29 0 29 +[ 2 1 0 ] 30 0 30 +[ 2 1 1 ] 31 0 31 +[ 2 1 1 ] 32 0 32 +[ 2 2 0 ] 33 0 33 +[ 2 2 0 ] 34 0 34 +[ 2 2 1 ] 35 0 35 +[ 2 2 1 ] 36 0 36 +[ 3 0 0 ] 37 0 37 +[ 3 0 0 ] 38 0 38 +[ 3 0 1 ] 39 0 39 +[ 3 0 1 ] 40 0 40 +[ 3 1 0 ] 41 0 41 +[ 3 1 0 ] 42 0 42 +[ 3 1 1 ] 43 0 43 +[ 3 1 1 ] 44 0 44 +[ 3 2 0 ] 45 0 45 +[ 3 2 0 ] 46 0 46 +[ 3 2 1 ] 47 0 47 +[ 3 2 1 ] 48 0 48 +48 differences found +attribute: <enum of </dset>> and <enum of </dset>> +size: [2] [2] +position enum of </dset> enum of </dset> difference +------------------------------------------------------------ +[ 0 ] RED GREEN +[ 1 ] RED GREEN +2 differences found +attribute: <enum2D of </dset>> and <enum2D of </dset>> +size: [3x2] [3x2] +position enum2D of </dset> enum2D of </dset> difference +------------------------------------------------------------ +[ 0 0 ] RED GREEN +[ 0 1 ] RED GREEN +[ 1 0 ] RED GREEN +[ 1 1 ] RED GREEN +[ 2 0 ] RED GREEN +[ 2 1 ] RED GREEN +6 differences found +attribute: <enum3D of </dset>> and <enum3D of </dset>> +size: [4x3x2] [4x3x2] +position enum3D of </dset> enum3D of </dset> difference +------------------------------------------------------------ +[ 0 0 0 ] GREEN RED +[ 0 0 1 ] GREEN RED +[ 0 1 0 ] GREEN RED +[ 0 1 1 ] GREEN RED +[ 0 2 0 ] GREEN RED +[ 0 2 1 ] GREEN RED +[ 1 0 0 ] GREEN RED +[ 1 0 1 ] GREEN RED +[ 1 1 0 ] GREEN RED +[ 1 1 1 ] GREEN RED +[ 1 2 0 ] GREEN RED +[ 1 2 1 ] GREEN RED +[ 2 0 0 ] GREEN RED +[ 2 0 1 ] GREEN RED +[ 2 1 0 ] GREEN RED +[ 2 1 1 ] GREEN RED +[ 2 2 0 ] GREEN RED +[ 2 2 1 ] GREEN RED +[ 3 0 0 ] GREEN RED +[ 3 0 1 ] GREEN RED +[ 3 1 0 ] GREEN RED +[ 3 1 1 ] GREEN RED +[ 3 2 0 ] GREEN RED +[ 3 2 1 ] GREEN RED +24 differences found +attribute: <float of </dset>> and <float of </dset>> +size: [2] [2] +position float of </dset> float of </dset> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <float2D of </dset>> and <float2D of </dset>> +size: [3x2] [3x2] +position float2D of </dset> float2D of </dset> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <float3D of </dset>> and <float3D of </dset>> +size: [4x3x2] [4x3x2] +position float3D of </dset> float3D of </dset> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 1 ] 2 0 2 +[ 0 1 0 ] 3 0 3 +[ 0 1 1 ] 4 0 4 +[ 0 2 0 ] 5 0 5 +[ 0 2 1 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 1 0 ] 9 0 9 +[ 1 1 1 ] 10 0 10 +[ 1 2 0 ] 11 0 11 +[ 1 2 1 ] 12 0 12 +[ 2 0 0 ] 13 0 13 +[ 2 0 1 ] 14 0 14 +[ 2 1 0 ] 15 0 15 +[ 2 1 1 ] 16 0 16 +[ 2 2 0 ] 17 0 17 +[ 2 2 1 ] 18 0 18 +[ 3 0 0 ] 19 0 19 +[ 3 0 1 ] 20 0 20 +[ 3 1 0 ] 21 0 21 +[ 3 1 1 ] 22 0 22 +[ 3 2 0 ] 23 0 23 +[ 3 2 1 ] 24 0 24 +24 differences found +attribute: <integer of </dset>> and <integer of </dset>> +size: [2] [2] +position integer of </dset> integer of </dset> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <integer2D of </dset>> and <integer2D of </dset>> +size: [3x2] [3x2] +position integer2D of </dset> integer2D of </dset> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <integer3D of </dset>> and <integer3D of </dset>> +size: [4x3x2] [4x3x2] +position integer3D of </dset> integer3D of </dset> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 1 ] 2 0 2 +[ 0 1 0 ] 3 0 3 +[ 0 1 1 ] 4 0 4 +[ 0 2 0 ] 5 0 5 +[ 0 2 1 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 1 0 ] 9 0 9 +[ 1 1 1 ] 10 0 10 +[ 1 2 0 ] 11 0 11 +[ 1 2 1 ] 12 0 12 +[ 2 0 0 ] 13 0 13 +[ 2 0 1 ] 14 0 14 +[ 2 1 0 ] 15 0 15 +[ 2 1 1 ] 16 0 16 +[ 2 2 0 ] 17 0 17 +[ 2 2 1 ] 18 0 18 +[ 3 0 0 ] 19 0 19 +[ 3 0 1 ] 20 0 20 +[ 3 1 0 ] 21 0 21 +[ 3 1 1 ] 22 0 22 +[ 3 2 0 ] 23 0 23 +[ 3 2 1 ] 24 0 24 +24 differences found +attribute: <opaque of </dset>> and <opaque of </dset>> +size: [2] [2] +position opaque of </dset> opaque of </dset> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <opaque2D of </dset>> and <opaque2D of </dset>> +size: [3x2] [3x2] +position opaque2D of </dset> opaque2D of </dset> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <opaque3D of </dset>> and <opaque3D of </dset>> +size: [4x3x2] [4x3x2] +position opaque3D of </dset> opaque3D of </dset> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 1 ] 2 0 2 +[ 0 1 0 ] 3 0 3 +[ 0 1 1 ] 4 0 4 +[ 0 2 0 ] 5 0 5 +[ 0 2 1 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 1 0 ] 9 0 9 +[ 1 1 1 ] 10 0 10 +[ 1 2 0 ] 11 0 11 +[ 1 2 1 ] 12 0 12 +[ 2 0 0 ] 13 0 13 +[ 2 0 1 ] 14 0 14 +[ 2 1 0 ] 15 0 15 +[ 2 1 1 ] 16 0 16 +[ 2 2 0 ] 17 0 17 +[ 2 2 1 ] 18 0 18 +[ 3 0 0 ] 19 0 19 +[ 3 0 1 ] 20 0 20 +[ 3 1 0 ] 21 0 21 +[ 3 1 1 ] 22 0 22 +[ 3 2 0 ] 23 0 23 +[ 3 2 1 ] 24 0 24 +24 differences found +attribute: <reference of </dset>> and <reference of </dset>> +0 differences found +attribute: <reference2D of </dset>> and <reference2D of </dset>> +0 differences found +attribute: <reference3D of </dset>> and <reference3D of </dset>> +0 differences found +attribute: <string of </dset>> and <string of </dset>> +size: [2] [2] +position string of </dset> string of </dset> difference +------------------------------------------------------------ +[ 0 ] a z +[ 0 ] b z +[ 1 ] d z +[ 1 ] e z +4 differences found +attribute: <string2D of </dset>> and <string2D of </dset>> +size: [3x2] [3x2] +position string2D of </dset> string2D of </dset> difference +------------------------------------------------------------ +[ 0 0 ] a z +[ 0 0 ] b z +[ 0 1 ] c z +[ 0 1 ] d z +[ 1 0 ] e z +[ 1 0 ] f z +[ 1 1 ] g z +[ 1 1 ] h z +[ 2 0 ] i z +[ 2 0 ] j z +[ 2 1 ] k z +[ 2 1 ] l z +12 differences found +attribute: <string3D of </dset>> and <string3D of </dset>> +size: [4x3x2] [4x3x2] +position string3D of </dset> string3D of </dset> difference +------------------------------------------------------------ +[ 0 0 0 ] a z +[ 0 0 0 ] b z +[ 0 0 1 ] c z +[ 0 0 1 ] d z +[ 0 1 0 ] e z +[ 0 1 0 ] f z +[ 0 1 1 ] g z +[ 0 1 1 ] h z +[ 0 2 0 ] i z +[ 0 2 0 ] j z +[ 0 2 1 ] k z +[ 0 2 1 ] l z +[ 1 0 0 ] m z +[ 1 0 0 ] n z +[ 1 0 1 ] p z +[ 1 0 1 ] q z +[ 1 1 0 ] r z +[ 1 1 0 ] s z +[ 1 1 1 ] t z +[ 1 1 1 ] u z +[ 1 2 0 ] v z +[ 1 2 0 ] w z +[ 1 2 1 ] x z +[ 2 0 0 ] A z +[ 2 0 0 ] B z +[ 2 0 1 ] C z +[ 2 0 1 ] D z +[ 2 1 0 ] E z +[ 2 1 0 ] F z +[ 2 1 1 ] G z +[ 2 1 1 ] H z +[ 2 2 0 ] I z +[ 2 2 0 ] J z +[ 2 2 1 ] K z +[ 2 2 1 ] L z +[ 3 0 0 ] M z +[ 3 0 0 ] N z +[ 3 0 1 ] P z +[ 3 0 1 ] Q z +[ 3 1 0 ] R z +[ 3 1 0 ] S z +[ 3 1 1 ] T z +[ 3 1 1 ] U z +[ 3 2 0 ] V z +[ 3 2 0 ] W z +[ 3 2 1 ] X z +[ 3 2 1 ] Z z +47 differences found +attribute: <vlen of </dset>> and <vlen of </dset>> +size: [2] [2] +position vlen of </dset> vlen of </dset> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +[ 1 ] 3 0 3 +3 differences found +attribute: <vlen2D of </dset>> and <vlen2D of </dset>> +size: [3x2] [3x2] +position vlen2D of </dset> vlen2D of </dset> difference +------------------------------------------------------------ +[ 0 1 ] 1 0 1 +[ 1 0 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 1 1 ] 5 0 5 +[ 2 0 ] 6 0 6 +[ 2 0 ] 7 0 7 +[ 2 0 ] 8 0 8 +[ 2 1 ] 9 0 9 +[ 2 1 ] 10 0 10 +[ 2 1 ] 11 0 11 +11 differences found +attribute: <vlen3D of </dset>> and <vlen3D of </dset>> +size: [4x3x2] [4x3x2] +position vlen3D of </dset> vlen3D of </dset> difference +------------------------------------------------------------ +[ 0 0 1 ] 1 0 1 +[ 0 1 0 ] 2 0 2 +[ 0 1 1 ] 3 0 3 +[ 0 2 0 ] 4 0 4 +[ 0 2 1 ] 5 0 5 +[ 1 0 0 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 0 1 ] 9 0 9 +[ 1 1 0 ] 10 0 10 +[ 1 1 0 ] 11 0 11 +[ 1 1 1 ] 12 0 12 +[ 1 1 1 ] 13 0 13 +[ 1 2 0 ] 14 0 14 +[ 1 2 0 ] 15 0 15 +[ 1 2 1 ] 16 0 16 +[ 1 2 1 ] 17 0 17 +[ 2 0 0 ] 18 0 18 +[ 2 0 0 ] 19 0 19 +[ 2 0 0 ] 20 0 20 +[ 2 0 1 ] 21 0 21 +[ 2 0 1 ] 22 0 22 +[ 2 0 1 ] 23 0 23 +[ 2 1 0 ] 24 0 24 +[ 2 1 0 ] 25 0 25 +[ 2 1 0 ] 26 0 26 +[ 2 1 1 ] 27 0 27 +[ 2 1 1 ] 28 0 28 +[ 2 1 1 ] 29 0 29 +[ 2 2 0 ] 30 0 30 +[ 2 2 0 ] 31 0 31 +[ 2 2 0 ] 32 0 32 +[ 2 2 1 ] 33 0 33 +[ 2 2 1 ] 34 0 34 +[ 2 2 1 ] 35 0 35 +[ 3 0 0 ] 36 0 36 +[ 3 0 0 ] 37 0 37 +[ 3 0 0 ] 38 0 38 +[ 3 0 0 ] 39 0 39 +[ 3 0 1 ] 40 0 40 +[ 3 0 1 ] 41 0 41 +[ 3 0 1 ] 42 0 42 +[ 3 0 1 ] 43 0 43 +[ 3 1 0 ] 44 0 44 +[ 3 1 0 ] 45 0 45 +[ 3 1 0 ] 46 0 46 +[ 3 1 0 ] 47 0 47 +[ 3 1 1 ] 48 0 48 +[ 3 1 1 ] 49 0 49 +[ 3 1 1 ] 50 0 50 +[ 3 1 1 ] 51 0 51 +[ 3 2 0 ] 52 0 52 +[ 3 2 0 ] 53 0 53 +[ 3 2 0 ] 54 0 54 +[ 3 2 0 ] 55 0 55 +[ 3 2 1 ] 56 0 56 +[ 3 2 1 ] 57 0 57 +[ 3 2 1 ] 58 0 58 +[ 3 2 1 ] 59 0 59 +59 differences found +519 differences found + +group : </g1> and </g1> +0 differences found + obj1 obj2 + -------------------------------------- + x x VLstring + x x VLstring2D + x x VLstring3D + x x array + x x array2D + x x array3D + x x bitfield + x x bitfield2D + x x bitfield3D + x x compound + x x compound2D + x x compound3D + x x enum + x x enum2D + x x enum3D + x x float + x x float2D + x x float3D + x x integer + x x integer2D + x x integer3D + x x opaque + x x opaque2D + x x opaque3D + x x string + x x string2D + x x string3D + x x vlen + x x vlen2D + x x vlen3D +Attributes status: 30 common, 0 only in obj1, 0 only in obj2 +attribute: <VLstring of </g1>> and <VLstring of </g1>> +size: [2] [2] +position VLstring of </g1> VLstring of </g1> difference +------------------------------------------------------------ +[ 0 ] a z +[ 0 ] b z +[ 1 ] d z +[ 1 ] e z +4 differences found +attribute: <VLstring2D of </g1>> and <VLstring2D of </g1>> +size: [3x2] [3x2] +position VLstring2D of </g1> VLstring2D of </g1> difference +------------------------------------------------------------ +[ 0 0 ] a z +[ 0 0 ] b z +[ 0 1 ] c z +[ 0 1 ] d z +[ 1 0 ] e z +[ 1 0 ] f z +[ 1 1 ] g z +[ 1 1 ] h z +[ 2 0 ] i z +[ 2 0 ] j z +[ 2 1 ] k z +[ 2 1 ] l z +12 differences found +attribute: <VLstring3D of </g1>> and <VLstring3D of </g1>> +size: [4x3x2] [4x3x2] +position VLstring3D of </g1> VLstring3D of </g1> difference +------------------------------------------------------------ +[ 0 0 0 ] a z +[ 0 0 0 ] b z +[ 0 0 1 ] c z +[ 0 0 1 ] d z +[ 0 1 0 ] e z +[ 0 1 0 ] f z +[ 0 1 1 ] g z +[ 0 1 1 ] h z +[ 0 2 0 ] i z +[ 0 2 0 ] j z +[ 0 2 1 ] k z +[ 0 2 1 ] l z +[ 1 0 0 ] m z +[ 1 0 0 ] n z +[ 1 0 1 ] p z +[ 1 0 1 ] q z +[ 1 1 0 ] r z +[ 1 1 0 ] s z +[ 1 1 1 ] t z +[ 1 1 1 ] u z +[ 1 2 0 ] v z +[ 1 2 0 ] w z +[ 1 2 1 ] x z +[ 2 0 0 ] A z +[ 2 0 0 ] B z +[ 2 0 1 ] C z +[ 2 0 1 ] D z +[ 2 1 0 ] E z +[ 2 1 0 ] F z +[ 2 1 1 ] G z +[ 2 1 1 ] H z +[ 2 2 0 ] I z +[ 2 2 0 ] J z +[ 2 2 1 ] K z +[ 2 2 1 ] L z +[ 3 0 0 ] M z +[ 3 0 0 ] N z +[ 3 0 1 ] P z +[ 3 0 1 ] Q z +[ 3 1 0 ] R z +[ 3 1 0 ] S z +[ 3 1 1 ] T z +[ 3 1 1 ] U z +[ 3 2 0 ] V z +[ 3 2 0 ] W z +[ 3 2 1 ] X z +[ 3 2 1 ] Z z +47 differences found +attribute: <array of </g1>> and <array of </g1>> +size: [2] [2] +position array of </g1> array of </g1> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 0 ] 2 0 2 +[ 0 ] 3 0 3 +[ 1 ] 4 0 4 +[ 1 ] 5 0 5 +[ 1 ] 6 0 6 +6 differences found +attribute: <array2D of </g1>> and <array2D of </g1>> +size: [3x2] [3x2] +position array2D of </g1> array2D of </g1> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 0 ] 2 0 2 +[ 0 0 ] 3 0 3 +[ 0 1 ] 4 0 4 +[ 0 1 ] 5 0 5 +[ 0 1 ] 6 0 6 +[ 1 0 ] 7 0 7 +[ 1 0 ] 8 0 8 +[ 1 0 ] 9 0 9 +[ 1 1 ] 10 0 10 +[ 1 1 ] 11 0 11 +[ 1 1 ] 12 0 12 +[ 2 0 ] 13 0 13 +[ 2 0 ] 14 0 14 +[ 2 0 ] 15 0 15 +[ 2 1 ] 16 0 16 +[ 2 1 ] 17 0 17 +[ 2 1 ] 18 0 18 +18 differences found +attribute: <array3D of </g1>> and <array3D of </g1>> +size: [4x3x2] [4x3x2] +position array3D of </g1> array3D of </g1> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 0 ] 2 0 2 +[ 0 0 0 ] 3 0 3 +[ 0 0 1 ] 4 0 4 +[ 0 0 1 ] 5 0 5 +[ 0 0 1 ] 6 0 6 +[ 0 1 0 ] 7 0 7 +[ 0 1 0 ] 8 0 8 +[ 0 1 0 ] 9 0 9 +[ 0 1 1 ] 10 0 10 +[ 0 1 1 ] 11 0 11 +[ 0 1 1 ] 12 0 12 +[ 0 2 0 ] 13 0 13 +[ 0 2 0 ] 14 0 14 +[ 0 2 0 ] 15 0 15 +[ 0 2 1 ] 16 0 16 +[ 0 2 1 ] 17 0 17 +[ 0 2 1 ] 18 0 18 +[ 1 0 0 ] 19 0 19 +[ 1 0 0 ] 20 0 20 +[ 1 0 0 ] 21 0 21 +[ 1 0 1 ] 22 0 22 +[ 1 0 1 ] 23 0 23 +[ 1 0 1 ] 24 0 24 +[ 1 1 0 ] 25 0 25 +[ 1 1 0 ] 26 0 26 +[ 1 1 0 ] 27 0 27 +[ 1 1 1 ] 28 0 28 +[ 1 1 1 ] 29 0 29 +[ 1 1 1 ] 30 0 30 +[ 1 2 0 ] 31 0 31 +[ 1 2 0 ] 32 0 32 +[ 1 2 0 ] 33 0 33 +[ 1 2 1 ] 34 0 34 +[ 1 2 1 ] 35 0 35 +[ 1 2 1 ] 36 0 36 +[ 2 0 0 ] 37 0 37 +[ 2 0 0 ] 38 0 38 +[ 2 0 0 ] 39 0 39 +[ 2 0 1 ] 40 0 40 +[ 2 0 1 ] 41 0 41 +[ 2 0 1 ] 42 0 42 +[ 2 1 0 ] 43 0 43 +[ 2 1 0 ] 44 0 44 +[ 2 1 0 ] 45 0 45 +[ 2 1 1 ] 46 0 46 +[ 2 1 1 ] 47 0 47 +[ 2 1 1 ] 48 0 48 +[ 2 2 0 ] 49 0 49 +[ 2 2 0 ] 50 0 50 +[ 2 2 0 ] 51 0 51 +[ 2 2 1 ] 52 0 52 +[ 2 2 1 ] 53 0 53 +[ 2 2 1 ] 54 0 54 +[ 3 0 0 ] 55 0 55 +[ 3 0 0 ] 56 0 56 +[ 3 0 0 ] 57 0 57 +[ 3 0 1 ] 58 0 58 +[ 3 0 1 ] 59 0 59 +[ 3 0 1 ] 60 0 60 +[ 3 1 0 ] 61 0 61 +[ 3 1 0 ] 62 0 62 +[ 3 1 0 ] 63 0 63 +[ 3 1 1 ] 64 0 64 +[ 3 1 1 ] 65 0 65 +[ 3 1 1 ] 66 0 66 +[ 3 2 0 ] 67 0 67 +[ 3 2 0 ] 68 0 68 +[ 3 2 0 ] 69 0 69 +[ 3 2 1 ] 70 0 70 +[ 3 2 1 ] 71 0 71 +[ 3 2 1 ] 72 0 72 +72 differences found +attribute: <bitfield of </g1>> and <bitfield of </g1>> +size: [2] [2] +position bitfield of </g1> bitfield of </g1> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <bitfield2D of </g1>> and <bitfield2D of </g1>> +size: [3x2] [3x2] +position bitfield2D of </g1> bitfield2D of </g1> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <bitfield3D of </g1>> and <bitfield3D of </g1>> +size: [4x3x2] [4x3x2] +position bitfield3D of </g1> bitfield3D of </g1> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 1 ] 2 0 2 +[ 0 1 0 ] 3 0 3 +[ 0 1 1 ] 4 0 4 +[ 0 2 0 ] 5 0 5 +[ 0 2 1 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 1 0 ] 9 0 9 +[ 1 1 1 ] 10 0 10 +[ 1 2 0 ] 11 0 11 +[ 1 2 1 ] 12 0 12 +[ 2 0 0 ] 13 0 13 +[ 2 0 1 ] 14 0 14 +[ 2 1 0 ] 15 0 15 +[ 2 1 1 ] 16 0 16 +[ 2 2 0 ] 17 0 17 +[ 2 2 1 ] 18 0 18 +[ 3 0 0 ] 19 0 19 +[ 3 0 1 ] 20 0 20 +[ 3 1 0 ] 21 0 21 +[ 3 1 1 ] 22 0 22 +[ 3 2 0 ] 23 0 23 +[ 3 2 1 ] 24 0 24 +24 differences found +attribute: <compound of </g1>> and <compound of </g1>> +size: [2] [2] +position compound of </g1> compound of </g1> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 0 ] 2 0 2 +[ 1 ] 3 0 3 +[ 1 ] 4 0 4 +4 differences found +attribute: <compound2D of </g1>> and <compound2D of </g1>> +size: [3x2] [3x2] +position compound2D of </g1> compound2D of </g1> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 0 ] 2 0 2 +[ 0 1 ] 3 0 3 +[ 0 1 ] 4 0 4 +[ 1 0 ] 5 0 5 +[ 1 0 ] 6 0 6 +[ 1 1 ] 7 0 7 +[ 1 1 ] 8 0 8 +[ 2 0 ] 9 0 9 +[ 2 0 ] 10 0 10 +[ 2 1 ] 11 0 11 +[ 2 1 ] 12 0 12 +12 differences found +attribute: <compound3D of </g1>> and <compound3D of </g1>> +size: [4x3x2] [4x3x2] +position compound3D of </g1> compound3D of </g1> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 0 ] 2 0 2 +[ 0 0 1 ] 3 0 3 +[ 0 0 1 ] 4 0 4 +[ 0 1 0 ] 5 0 5 +[ 0 1 0 ] 6 0 6 +[ 0 1 1 ] 7 0 7 +[ 0 1 1 ] 8 0 8 +[ 0 2 0 ] 9 0 9 +[ 0 2 0 ] 10 0 10 +[ 0 2 1 ] 11 0 11 +[ 0 2 1 ] 12 0 12 +[ 1 0 0 ] 13 0 13 +[ 1 0 0 ] 14 0 14 +[ 1 0 1 ] 15 0 15 +[ 1 0 1 ] 16 0 16 +[ 1 1 0 ] 17 0 17 +[ 1 1 0 ] 18 0 18 +[ 1 1 1 ] 19 0 19 +[ 1 1 1 ] 20 0 20 +[ 1 2 0 ] 21 0 21 +[ 1 2 0 ] 22 0 22 +[ 1 2 1 ] 23 0 23 +[ 1 2 1 ] 24 0 24 +[ 2 0 0 ] 25 0 25 +[ 2 0 0 ] 26 0 26 +[ 2 0 1 ] 27 0 27 +[ 2 0 1 ] 28 0 28 +[ 2 1 0 ] 29 0 29 +[ 2 1 0 ] 30 0 30 +[ 2 1 1 ] 31 0 31 +[ 2 1 1 ] 32 0 32 +[ 2 2 0 ] 33 0 33 +[ 2 2 0 ] 34 0 34 +[ 2 2 1 ] 35 0 35 +[ 2 2 1 ] 36 0 36 +[ 3 0 0 ] 37 0 37 +[ 3 0 0 ] 38 0 38 +[ 3 0 1 ] 39 0 39 +[ 3 0 1 ] 40 0 40 +[ 3 1 0 ] 41 0 41 +[ 3 1 0 ] 42 0 42 +[ 3 1 1 ] 43 0 43 +[ 3 1 1 ] 44 0 44 +[ 3 2 0 ] 45 0 45 +[ 3 2 0 ] 46 0 46 +[ 3 2 1 ] 47 0 47 +[ 3 2 1 ] 48 0 48 +48 differences found +attribute: <enum of </g1>> and <enum of </g1>> +size: [2] [2] +position enum of </g1> enum of </g1> difference +------------------------------------------------------------ +[ 0 ] RED GREEN +[ 1 ] RED GREEN +2 differences found +attribute: <enum2D of </g1>> and <enum2D of </g1>> +size: [3x2] [3x2] +position enum2D of </g1> enum2D of </g1> difference +------------------------------------------------------------ +[ 0 0 ] RED GREEN +[ 0 1 ] RED GREEN +[ 1 0 ] RED GREEN +[ 1 1 ] RED GREEN +[ 2 0 ] RED GREEN +[ 2 1 ] RED GREEN +6 differences found +attribute: <enum3D of </g1>> and <enum3D of </g1>> +size: [4x3x2] [4x3x2] +position enum3D of </g1> enum3D of </g1> difference +------------------------------------------------------------ +[ 0 0 0 ] GREEN RED +[ 0 0 1 ] GREEN RED +[ 0 1 0 ] GREEN RED +[ 0 1 1 ] GREEN RED +[ 0 2 0 ] GREEN RED +[ 0 2 1 ] GREEN RED +[ 1 0 0 ] GREEN RED +[ 1 0 1 ] GREEN RED +[ 1 1 0 ] GREEN RED +[ 1 1 1 ] GREEN RED +[ 1 2 0 ] GREEN RED +[ 1 2 1 ] GREEN RED +[ 2 0 0 ] GREEN RED +[ 2 0 1 ] GREEN RED +[ 2 1 0 ] GREEN RED +[ 2 1 1 ] GREEN RED +[ 2 2 0 ] GREEN RED +[ 2 2 1 ] GREEN RED +[ 3 0 0 ] GREEN RED +[ 3 0 1 ] GREEN RED +[ 3 1 0 ] GREEN RED +[ 3 1 1 ] GREEN RED +[ 3 2 0 ] GREEN RED +[ 3 2 1 ] GREEN RED +24 differences found +attribute: <float of </g1>> and <float of </g1>> +size: [2] [2] +position float of </g1> float of </g1> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <float2D of </g1>> and <float2D of </g1>> +size: [3x2] [3x2] +position float2D of </g1> float2D of </g1> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <float3D of </g1>> and <float3D of </g1>> +size: [4x3x2] [4x3x2] +position float3D of </g1> float3D of </g1> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 1 ] 2 0 2 +[ 0 1 0 ] 3 0 3 +[ 0 1 1 ] 4 0 4 +[ 0 2 0 ] 5 0 5 +[ 0 2 1 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 1 0 ] 9 0 9 +[ 1 1 1 ] 10 0 10 +[ 1 2 0 ] 11 0 11 +[ 1 2 1 ] 12 0 12 +[ 2 0 0 ] 13 0 13 +[ 2 0 1 ] 14 0 14 +[ 2 1 0 ] 15 0 15 +[ 2 1 1 ] 16 0 16 +[ 2 2 0 ] 17 0 17 +[ 2 2 1 ] 18 0 18 +[ 3 0 0 ] 19 0 19 +[ 3 0 1 ] 20 0 20 +[ 3 1 0 ] 21 0 21 +[ 3 1 1 ] 22 0 22 +[ 3 2 0 ] 23 0 23 +[ 3 2 1 ] 24 0 24 +24 differences found +attribute: <integer of </g1>> and <integer of </g1>> +size: [2] [2] +position integer of </g1> integer of </g1> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <integer2D of </g1>> and <integer2D of </g1>> +size: [3x2] [3x2] +position integer2D of </g1> integer2D of </g1> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <integer3D of </g1>> and <integer3D of </g1>> +size: [4x3x2] [4x3x2] +position integer3D of </g1> integer3D of </g1> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 1 ] 2 0 2 +[ 0 1 0 ] 3 0 3 +[ 0 1 1 ] 4 0 4 +[ 0 2 0 ] 5 0 5 +[ 0 2 1 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 1 0 ] 9 0 9 +[ 1 1 1 ] 10 0 10 +[ 1 2 0 ] 11 0 11 +[ 1 2 1 ] 12 0 12 +[ 2 0 0 ] 13 0 13 +[ 2 0 1 ] 14 0 14 +[ 2 1 0 ] 15 0 15 +[ 2 1 1 ] 16 0 16 +[ 2 2 0 ] 17 0 17 +[ 2 2 1 ] 18 0 18 +[ 3 0 0 ] 19 0 19 +[ 3 0 1 ] 20 0 20 +[ 3 1 0 ] 21 0 21 +[ 3 1 1 ] 22 0 22 +[ 3 2 0 ] 23 0 23 +[ 3 2 1 ] 24 0 24 +24 differences found +attribute: <opaque of </g1>> and <opaque of </g1>> +size: [2] [2] +position opaque of </g1> opaque of </g1> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <opaque2D of </g1>> and <opaque2D of </g1>> +size: [3x2] [3x2] +position opaque2D of </g1> opaque2D of </g1> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <opaque3D of </g1>> and <opaque3D of </g1>> +size: [4x3x2] [4x3x2] +position opaque3D of </g1> opaque3D of </g1> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 1 ] 2 0 2 +[ 0 1 0 ] 3 0 3 +[ 0 1 1 ] 4 0 4 +[ 0 2 0 ] 5 0 5 +[ 0 2 1 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 1 0 ] 9 0 9 +[ 1 1 1 ] 10 0 10 +[ 1 2 0 ] 11 0 11 +[ 1 2 1 ] 12 0 12 +[ 2 0 0 ] 13 0 13 +[ 2 0 1 ] 14 0 14 +[ 2 1 0 ] 15 0 15 +[ 2 1 1 ] 16 0 16 +[ 2 2 0 ] 17 0 17 +[ 2 2 1 ] 18 0 18 +[ 3 0 0 ] 19 0 19 +[ 3 0 1 ] 20 0 20 +[ 3 1 0 ] 21 0 21 +[ 3 1 1 ] 22 0 22 +[ 3 2 0 ] 23 0 23 +[ 3 2 1 ] 24 0 24 +24 differences found +attribute: <string of </g1>> and <string of </g1>> +size: [2] [2] +position string of </g1> string of </g1> difference +------------------------------------------------------------ +[ 0 ] a z +[ 0 ] b z +[ 1 ] d z +[ 1 ] e z +4 differences found +attribute: <string2D of </g1>> and <string2D of </g1>> +size: [3x2] [3x2] +position string2D of </g1> string2D of </g1> difference +------------------------------------------------------------ +[ 0 0 ] a z +[ 0 0 ] b z +[ 0 1 ] c z +[ 0 1 ] d z +[ 1 0 ] e z +[ 1 0 ] f z +[ 1 1 ] g z +[ 1 1 ] h z +[ 2 0 ] i z +[ 2 0 ] j z +[ 2 1 ] k z +[ 2 1 ] l z +12 differences found +attribute: <string3D of </g1>> and <string3D of </g1>> +size: [4x3x2] [4x3x2] +position string3D of </g1> string3D of </g1> difference +------------------------------------------------------------ +[ 0 0 0 ] a z +[ 0 0 0 ] b z +[ 0 0 1 ] c z +[ 0 0 1 ] d z +[ 0 1 0 ] e z +[ 0 1 0 ] f z +[ 0 1 1 ] g z +[ 0 1 1 ] h z +[ 0 2 0 ] i z +[ 0 2 0 ] j z +[ 0 2 1 ] k z +[ 0 2 1 ] l z +[ 1 0 0 ] m z +[ 1 0 0 ] n z +[ 1 0 1 ] p z +[ 1 0 1 ] q z +[ 1 1 0 ] r z +[ 1 1 0 ] s z +[ 1 1 1 ] t z +[ 1 1 1 ] u z +[ 1 2 0 ] v z +[ 1 2 0 ] w z +[ 1 2 1 ] x z +[ 2 0 0 ] A z +[ 2 0 0 ] B z +[ 2 0 1 ] C z +[ 2 0 1 ] D z +[ 2 1 0 ] E z +[ 2 1 0 ] F z +[ 2 1 1 ] G z +[ 2 1 1 ] H z +[ 2 2 0 ] I z +[ 2 2 0 ] J z +[ 2 2 1 ] K z +[ 2 2 1 ] L z +[ 3 0 0 ] M z +[ 3 0 0 ] N z +[ 3 0 1 ] P z +[ 3 0 1 ] Q z +[ 3 1 0 ] R z +[ 3 1 0 ] S z +[ 3 1 1 ] T z +[ 3 1 1 ] U z +[ 3 2 0 ] V z +[ 3 2 0 ] W z +[ 3 2 1 ] X z +[ 3 2 1 ] Z z +47 differences found +attribute: <vlen of </g1>> and <vlen of </g1>> +size: [2] [2] +position vlen of </g1> vlen of </g1> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +[ 1 ] 3 0 3 +3 differences found +attribute: <vlen2D of </g1>> and <vlen2D of </g1>> +size: [3x2] [3x2] +position vlen2D of </g1> vlen2D of </g1> difference +------------------------------------------------------------ +[ 0 1 ] 1 0 1 +[ 1 0 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 1 1 ] 5 0 5 +[ 2 0 ] 6 0 6 +[ 2 0 ] 7 0 7 +[ 2 0 ] 8 0 8 +[ 2 1 ] 9 0 9 +[ 2 1 ] 10 0 10 +[ 2 1 ] 11 0 11 +11 differences found +attribute: <vlen3D of </g1>> and <vlen3D of </g1>> +size: [4x3x2] [4x3x2] +position vlen3D of </g1> vlen3D of </g1> difference +------------------------------------------------------------ +[ 0 0 1 ] 1 0 1 +[ 0 1 0 ] 2 0 2 +[ 0 1 1 ] 3 0 3 +[ 0 2 0 ] 4 0 4 +[ 0 2 1 ] 5 0 5 +[ 1 0 0 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 0 1 ] 9 0 9 +[ 1 1 0 ] 10 0 10 +[ 1 1 0 ] 11 0 11 +[ 1 1 1 ] 12 0 12 +[ 1 1 1 ] 13 0 13 +[ 1 2 0 ] 14 0 14 +[ 1 2 0 ] 15 0 15 +[ 1 2 1 ] 16 0 16 +[ 1 2 1 ] 17 0 17 +[ 2 0 0 ] 18 0 18 +[ 2 0 0 ] 19 0 19 +[ 2 0 0 ] 20 0 20 +[ 2 0 1 ] 21 0 21 +[ 2 0 1 ] 22 0 22 +[ 2 0 1 ] 23 0 23 +[ 2 1 0 ] 24 0 24 +[ 2 1 0 ] 25 0 25 +[ 2 1 0 ] 26 0 26 +[ 2 1 1 ] 27 0 27 +[ 2 1 1 ] 28 0 28 +[ 2 1 1 ] 29 0 29 +[ 2 2 0 ] 30 0 30 +[ 2 2 0 ] 31 0 31 +[ 2 2 0 ] 32 0 32 +[ 2 2 1 ] 33 0 33 +[ 2 2 1 ] 34 0 34 +[ 2 2 1 ] 35 0 35 +[ 3 0 0 ] 36 0 36 +[ 3 0 0 ] 37 0 37 +[ 3 0 0 ] 38 0 38 +[ 3 0 0 ] 39 0 39 +[ 3 0 1 ] 40 0 40 +[ 3 0 1 ] 41 0 41 +[ 3 0 1 ] 42 0 42 +[ 3 0 1 ] 43 0 43 +[ 3 1 0 ] 44 0 44 +[ 3 1 0 ] 45 0 45 +[ 3 1 0 ] 46 0 46 +[ 3 1 0 ] 47 0 47 +[ 3 1 1 ] 48 0 48 +[ 3 1 1 ] 49 0 49 +[ 3 1 1 ] 50 0 50 +[ 3 1 1 ] 51 0 51 +[ 3 2 0 ] 52 0 52 +[ 3 2 0 ] 53 0 53 +[ 3 2 0 ] 54 0 54 +[ 3 2 0 ] 55 0 55 +[ 3 2 1 ] 56 0 56 +[ 3 2 1 ] 57 0 57 +[ 3 2 1 ] 58 0 58 +[ 3 2 1 ] 59 0 59 +59 differences found +-------------------------------- +Some objects are not comparable +-------------------------------- +Use -c for a list of objects. +EXIT CODE: 1 diff --git a/tools/h5diff/testfiles/h5diff_702.txt b/tools/h5diff/testfiles/h5diff_702.txt new file mode 100644 index 0000000..99398a9 --- /dev/null +++ b/tools/h5diff/testfiles/h5diff_702.txt @@ -0,0 +1,2038 @@ + +file1 file2 +--------------------------------------- + x x / + x x /dset + x x /g1 + + +group : </> and </> +0 differences found +Attributes status: 30 common, 0 only in obj1, 0 only in obj2 +attribute: <VLstring of </>> and <VLstring of </>> +size: [2] [2] +position VLstring of </> VLstring of </> difference +------------------------------------------------------------ +[ 0 ] a z +[ 0 ] b z +[ 1 ] d z +[ 1 ] e z +4 differences found +attribute: <VLstring2D of </>> and <VLstring2D of </>> +size: [3x2] [3x2] +position VLstring2D of </> VLstring2D of </> difference +------------------------------------------------------------ +[ 0 0 ] a z +[ 0 0 ] b z +[ 0 1 ] c z +[ 0 1 ] d z +[ 1 0 ] e z +[ 1 0 ] f z +[ 1 1 ] g z +[ 1 1 ] h z +[ 2 0 ] i z +[ 2 0 ] j z +[ 2 1 ] k z +[ 2 1 ] l z +12 differences found +attribute: <VLstring3D of </>> and <VLstring3D of </>> +size: [4x3x2] [4x3x2] +position VLstring3D of </> VLstring3D of </> difference +------------------------------------------------------------ +[ 0 0 0 ] a z +[ 0 0 0 ] b z +[ 0 0 1 ] c z +[ 0 0 1 ] d z +[ 0 1 0 ] e z +[ 0 1 0 ] f z +[ 0 1 1 ] g z +[ 0 1 1 ] h z +[ 0 2 0 ] i z +[ 0 2 0 ] j z +[ 0 2 1 ] k z +[ 0 2 1 ] l z +[ 1 0 0 ] m z +[ 1 0 0 ] n z +[ 1 0 1 ] p z +[ 1 0 1 ] q z +[ 1 1 0 ] r z +[ 1 1 0 ] s z +[ 1 1 1 ] t z +[ 1 1 1 ] u z +[ 1 2 0 ] v z +[ 1 2 0 ] w z +[ 1 2 1 ] x z +[ 2 0 0 ] A z +[ 2 0 0 ] B z +[ 2 0 1 ] C z +[ 2 0 1 ] D z +[ 2 1 0 ] E z +[ 2 1 0 ] F z +[ 2 1 1 ] G z +[ 2 1 1 ] H z +[ 2 2 0 ] I z +[ 2 2 0 ] J z +[ 2 2 1 ] K z +[ 2 2 1 ] L z +[ 3 0 0 ] M z +[ 3 0 0 ] N z +[ 3 0 1 ] P z +[ 3 0 1 ] Q z +[ 3 1 0 ] R z +[ 3 1 0 ] S z +[ 3 1 1 ] T z +[ 3 1 1 ] U z +[ 3 2 0 ] V z +[ 3 2 0 ] W z +[ 3 2 1 ] X z +[ 3 2 1 ] Z z +47 differences found +attribute: <array of </>> and <array of </>> +size: [2] [2] +position array of </> array of </> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 0 ] 2 0 2 +[ 0 ] 3 0 3 +[ 1 ] 4 0 4 +[ 1 ] 5 0 5 +[ 1 ] 6 0 6 +6 differences found +attribute: <array2D of </>> and <array2D of </>> +size: [3x2] [3x2] +position array2D of </> array2D of </> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 0 ] 2 0 2 +[ 0 0 ] 3 0 3 +[ 0 1 ] 4 0 4 +[ 0 1 ] 5 0 5 +[ 0 1 ] 6 0 6 +[ 1 0 ] 7 0 7 +[ 1 0 ] 8 0 8 +[ 1 0 ] 9 0 9 +[ 1 1 ] 10 0 10 +[ 1 1 ] 11 0 11 +[ 1 1 ] 12 0 12 +[ 2 0 ] 13 0 13 +[ 2 0 ] 14 0 14 +[ 2 0 ] 15 0 15 +[ 2 1 ] 16 0 16 +[ 2 1 ] 17 0 17 +[ 2 1 ] 18 0 18 +18 differences found +attribute: <array3D of </>> and <array3D of </>> +size: [4x3x2] [4x3x2] +position array3D of </> array3D of </> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 0 ] 2 0 2 +[ 0 0 0 ] 3 0 3 +[ 0 0 1 ] 4 0 4 +[ 0 0 1 ] 5 0 5 +[ 0 0 1 ] 6 0 6 +[ 0 1 0 ] 7 0 7 +[ 0 1 0 ] 8 0 8 +[ 0 1 0 ] 9 0 9 +[ 0 1 1 ] 10 0 10 +[ 0 1 1 ] 11 0 11 +[ 0 1 1 ] 12 0 12 +[ 0 2 0 ] 13 0 13 +[ 0 2 0 ] 14 0 14 +[ 0 2 0 ] 15 0 15 +[ 0 2 1 ] 16 0 16 +[ 0 2 1 ] 17 0 17 +[ 0 2 1 ] 18 0 18 +[ 1 0 0 ] 19 0 19 +[ 1 0 0 ] 20 0 20 +[ 1 0 0 ] 21 0 21 +[ 1 0 1 ] 22 0 22 +[ 1 0 1 ] 23 0 23 +[ 1 0 1 ] 24 0 24 +[ 1 1 0 ] 25 0 25 +[ 1 1 0 ] 26 0 26 +[ 1 1 0 ] 27 0 27 +[ 1 1 1 ] 28 0 28 +[ 1 1 1 ] 29 0 29 +[ 1 1 1 ] 30 0 30 +[ 1 2 0 ] 31 0 31 +[ 1 2 0 ] 32 0 32 +[ 1 2 0 ] 33 0 33 +[ 1 2 1 ] 34 0 34 +[ 1 2 1 ] 35 0 35 +[ 1 2 1 ] 36 0 36 +[ 2 0 0 ] 37 0 37 +[ 2 0 0 ] 38 0 38 +[ 2 0 0 ] 39 0 39 +[ 2 0 1 ] 40 0 40 +[ 2 0 1 ] 41 0 41 +[ 2 0 1 ] 42 0 42 +[ 2 1 0 ] 43 0 43 +[ 2 1 0 ] 44 0 44 +[ 2 1 0 ] 45 0 45 +[ 2 1 1 ] 46 0 46 +[ 2 1 1 ] 47 0 47 +[ 2 1 1 ] 48 0 48 +[ 2 2 0 ] 49 0 49 +[ 2 2 0 ] 50 0 50 +[ 2 2 0 ] 51 0 51 +[ 2 2 1 ] 52 0 52 +[ 2 2 1 ] 53 0 53 +[ 2 2 1 ] 54 0 54 +[ 3 0 0 ] 55 0 55 +[ 3 0 0 ] 56 0 56 +[ 3 0 0 ] 57 0 57 +[ 3 0 1 ] 58 0 58 +[ 3 0 1 ] 59 0 59 +[ 3 0 1 ] 60 0 60 +[ 3 1 0 ] 61 0 61 +[ 3 1 0 ] 62 0 62 +[ 3 1 0 ] 63 0 63 +[ 3 1 1 ] 64 0 64 +[ 3 1 1 ] 65 0 65 +[ 3 1 1 ] 66 0 66 +[ 3 2 0 ] 67 0 67 +[ 3 2 0 ] 68 0 68 +[ 3 2 0 ] 69 0 69 +[ 3 2 1 ] 70 0 70 +[ 3 2 1 ] 71 0 71 +[ 3 2 1 ] 72 0 72 +72 differences found +attribute: <bitfield of </>> and <bitfield of </>> +size: [2] [2] +position bitfield of </> bitfield of </> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <bitfield2D of </>> and <bitfield2D of </>> +size: [3x2] [3x2] +position bitfield2D of </> bitfield2D of </> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <bitfield3D of </>> and <bitfield3D of </>> +size: [4x3x2] [4x3x2] +position bitfield3D of </> bitfield3D of </> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 1 ] 2 0 2 +[ 0 1 0 ] 3 0 3 +[ 0 1 1 ] 4 0 4 +[ 0 2 0 ] 5 0 5 +[ 0 2 1 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 1 0 ] 9 0 9 +[ 1 1 1 ] 10 0 10 +[ 1 2 0 ] 11 0 11 +[ 1 2 1 ] 12 0 12 +[ 2 0 0 ] 13 0 13 +[ 2 0 1 ] 14 0 14 +[ 2 1 0 ] 15 0 15 +[ 2 1 1 ] 16 0 16 +[ 2 2 0 ] 17 0 17 +[ 2 2 1 ] 18 0 18 +[ 3 0 0 ] 19 0 19 +[ 3 0 1 ] 20 0 20 +[ 3 1 0 ] 21 0 21 +[ 3 1 1 ] 22 0 22 +[ 3 2 0 ] 23 0 23 +[ 3 2 1 ] 24 0 24 +24 differences found +attribute: <compound of </>> and <compound of </>> +size: [2] [2] +position compound of </> compound of </> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 0 ] 2 0 2 +[ 1 ] 3 0 3 +[ 1 ] 4 0 4 +4 differences found +attribute: <compound2D of </>> and <compound2D of </>> +size: [3x2] [3x2] +position compound2D of </> compound2D of </> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 0 ] 2 0 2 +[ 0 1 ] 3 0 3 +[ 0 1 ] 4 0 4 +[ 1 0 ] 5 0 5 +[ 1 0 ] 6 0 6 +[ 1 1 ] 7 0 7 +[ 1 1 ] 8 0 8 +[ 2 0 ] 9 0 9 +[ 2 0 ] 10 0 10 +[ 2 1 ] 11 0 11 +[ 2 1 ] 12 0 12 +12 differences found +attribute: <compound3D of </>> and <compound3D of </>> +size: [4x3x2] [4x3x2] +position compound3D of </> compound3D of </> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 0 ] 2 0 2 +[ 0 0 1 ] 3 0 3 +[ 0 0 1 ] 4 0 4 +[ 0 1 0 ] 5 0 5 +[ 0 1 0 ] 6 0 6 +[ 0 1 1 ] 7 0 7 +[ 0 1 1 ] 8 0 8 +[ 0 2 0 ] 9 0 9 +[ 0 2 0 ] 10 0 10 +[ 0 2 1 ] 11 0 11 +[ 0 2 1 ] 12 0 12 +[ 1 0 0 ] 13 0 13 +[ 1 0 0 ] 14 0 14 +[ 1 0 1 ] 15 0 15 +[ 1 0 1 ] 16 0 16 +[ 1 1 0 ] 17 0 17 +[ 1 1 0 ] 18 0 18 +[ 1 1 1 ] 19 0 19 +[ 1 1 1 ] 20 0 20 +[ 1 2 0 ] 21 0 21 +[ 1 2 0 ] 22 0 22 +[ 1 2 1 ] 23 0 23 +[ 1 2 1 ] 24 0 24 +[ 2 0 0 ] 25 0 25 +[ 2 0 0 ] 26 0 26 +[ 2 0 1 ] 27 0 27 +[ 2 0 1 ] 28 0 28 +[ 2 1 0 ] 29 0 29 +[ 2 1 0 ] 30 0 30 +[ 2 1 1 ] 31 0 31 +[ 2 1 1 ] 32 0 32 +[ 2 2 0 ] 33 0 33 +[ 2 2 0 ] 34 0 34 +[ 2 2 1 ] 35 0 35 +[ 2 2 1 ] 36 0 36 +[ 3 0 0 ] 37 0 37 +[ 3 0 0 ] 38 0 38 +[ 3 0 1 ] 39 0 39 +[ 3 0 1 ] 40 0 40 +[ 3 1 0 ] 41 0 41 +[ 3 1 0 ] 42 0 42 +[ 3 1 1 ] 43 0 43 +[ 3 1 1 ] 44 0 44 +[ 3 2 0 ] 45 0 45 +[ 3 2 0 ] 46 0 46 +[ 3 2 1 ] 47 0 47 +[ 3 2 1 ] 48 0 48 +48 differences found +attribute: <enum of </>> and <enum of </>> +size: [2] [2] +position enum of </> enum of </> difference +------------------------------------------------------------ +[ 0 ] RED GREEN +[ 1 ] RED GREEN +2 differences found +attribute: <enum2D of </>> and <enum2D of </>> +size: [3x2] [3x2] +position enum2D of </> enum2D of </> difference +------------------------------------------------------------ +[ 0 0 ] RED GREEN +[ 0 1 ] RED GREEN +[ 1 0 ] RED GREEN +[ 1 1 ] RED GREEN +[ 2 0 ] RED GREEN +[ 2 1 ] RED GREEN +6 differences found +attribute: <enum3D of </>> and <enum3D of </>> +size: [4x3x2] [4x3x2] +position enum3D of </> enum3D of </> difference +------------------------------------------------------------ +[ 0 0 0 ] GREEN RED +[ 0 0 1 ] GREEN RED +[ 0 1 0 ] GREEN RED +[ 0 1 1 ] GREEN RED +[ 0 2 0 ] GREEN RED +[ 0 2 1 ] GREEN RED +[ 1 0 0 ] GREEN RED +[ 1 0 1 ] GREEN RED +[ 1 1 0 ] GREEN RED +[ 1 1 1 ] GREEN RED +[ 1 2 0 ] GREEN RED +[ 1 2 1 ] GREEN RED +[ 2 0 0 ] GREEN RED +[ 2 0 1 ] GREEN RED +[ 2 1 0 ] GREEN RED +[ 2 1 1 ] GREEN RED +[ 2 2 0 ] GREEN RED +[ 2 2 1 ] GREEN RED +[ 3 0 0 ] GREEN RED +[ 3 0 1 ] GREEN RED +[ 3 1 0 ] GREEN RED +[ 3 1 1 ] GREEN RED +[ 3 2 0 ] GREEN RED +[ 3 2 1 ] GREEN RED +24 differences found +attribute: <float of </>> and <float of </>> +size: [2] [2] +position float of </> float of </> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <float2D of </>> and <float2D of </>> +size: [3x2] [3x2] +position float2D of </> float2D of </> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <float3D of </>> and <float3D of </>> +size: [4x3x2] [4x3x2] +position float3D of </> float3D of </> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 1 ] 2 0 2 +[ 0 1 0 ] 3 0 3 +[ 0 1 1 ] 4 0 4 +[ 0 2 0 ] 5 0 5 +[ 0 2 1 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 1 0 ] 9 0 9 +[ 1 1 1 ] 10 0 10 +[ 1 2 0 ] 11 0 11 +[ 1 2 1 ] 12 0 12 +[ 2 0 0 ] 13 0 13 +[ 2 0 1 ] 14 0 14 +[ 2 1 0 ] 15 0 15 +[ 2 1 1 ] 16 0 16 +[ 2 2 0 ] 17 0 17 +[ 2 2 1 ] 18 0 18 +[ 3 0 0 ] 19 0 19 +[ 3 0 1 ] 20 0 20 +[ 3 1 0 ] 21 0 21 +[ 3 1 1 ] 22 0 22 +[ 3 2 0 ] 23 0 23 +[ 3 2 1 ] 24 0 24 +24 differences found +attribute: <integer of </>> and <integer of </>> +size: [2] [2] +position integer of </> integer of </> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <integer2D of </>> and <integer2D of </>> +size: [3x2] [3x2] +position integer2D of </> integer2D of </> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <integer3D of </>> and <integer3D of </>> +size: [4x3x2] [4x3x2] +position integer3D of </> integer3D of </> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 1 ] 2 0 2 +[ 0 1 0 ] 3 0 3 +[ 0 1 1 ] 4 0 4 +[ 0 2 0 ] 5 0 5 +[ 0 2 1 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 1 0 ] 9 0 9 +[ 1 1 1 ] 10 0 10 +[ 1 2 0 ] 11 0 11 +[ 1 2 1 ] 12 0 12 +[ 2 0 0 ] 13 0 13 +[ 2 0 1 ] 14 0 14 +[ 2 1 0 ] 15 0 15 +[ 2 1 1 ] 16 0 16 +[ 2 2 0 ] 17 0 17 +[ 2 2 1 ] 18 0 18 +[ 3 0 0 ] 19 0 19 +[ 3 0 1 ] 20 0 20 +[ 3 1 0 ] 21 0 21 +[ 3 1 1 ] 22 0 22 +[ 3 2 0 ] 23 0 23 +[ 3 2 1 ] 24 0 24 +24 differences found +attribute: <opaque of </>> and <opaque of </>> +size: [2] [2] +position opaque of </> opaque of </> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <opaque2D of </>> and <opaque2D of </>> +size: [3x2] [3x2] +position opaque2D of </> opaque2D of </> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <opaque3D of </>> and <opaque3D of </>> +size: [4x3x2] [4x3x2] +position opaque3D of </> opaque3D of </> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 1 ] 2 0 2 +[ 0 1 0 ] 3 0 3 +[ 0 1 1 ] 4 0 4 +[ 0 2 0 ] 5 0 5 +[ 0 2 1 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 1 0 ] 9 0 9 +[ 1 1 1 ] 10 0 10 +[ 1 2 0 ] 11 0 11 +[ 1 2 1 ] 12 0 12 +[ 2 0 0 ] 13 0 13 +[ 2 0 1 ] 14 0 14 +[ 2 1 0 ] 15 0 15 +[ 2 1 1 ] 16 0 16 +[ 2 2 0 ] 17 0 17 +[ 2 2 1 ] 18 0 18 +[ 3 0 0 ] 19 0 19 +[ 3 0 1 ] 20 0 20 +[ 3 1 0 ] 21 0 21 +[ 3 1 1 ] 22 0 22 +[ 3 2 0 ] 23 0 23 +[ 3 2 1 ] 24 0 24 +24 differences found +attribute: <string of </>> and <string of </>> +size: [2] [2] +position string of </> string of </> difference +------------------------------------------------------------ +[ 0 ] a z +[ 0 ] b z +[ 1 ] d z +[ 1 ] e z +4 differences found +attribute: <string2D of </>> and <string2D of </>> +size: [3x2] [3x2] +position string2D of </> string2D of </> difference +------------------------------------------------------------ +[ 0 0 ] a z +[ 0 0 ] b z +[ 0 1 ] c z +[ 0 1 ] d z +[ 1 0 ] e z +[ 1 0 ] f z +[ 1 1 ] g z +[ 1 1 ] h z +[ 2 0 ] i z +[ 2 0 ] j z +[ 2 1 ] k z +[ 2 1 ] l z +12 differences found +attribute: <string3D of </>> and <string3D of </>> +size: [4x3x2] [4x3x2] +position string3D of </> string3D of </> difference +------------------------------------------------------------ +[ 0 0 0 ] a z +[ 0 0 0 ] b z +[ 0 0 1 ] c z +[ 0 0 1 ] d z +[ 0 1 0 ] e z +[ 0 1 0 ] f z +[ 0 1 1 ] g z +[ 0 1 1 ] h z +[ 0 2 0 ] i z +[ 0 2 0 ] j z +[ 0 2 1 ] k z +[ 0 2 1 ] l z +[ 1 0 0 ] m z +[ 1 0 0 ] n z +[ 1 0 1 ] p z +[ 1 0 1 ] q z +[ 1 1 0 ] r z +[ 1 1 0 ] s z +[ 1 1 1 ] t z +[ 1 1 1 ] u z +[ 1 2 0 ] v z +[ 1 2 0 ] w z +[ 1 2 1 ] x z +[ 2 0 0 ] A z +[ 2 0 0 ] B z +[ 2 0 1 ] C z +[ 2 0 1 ] D z +[ 2 1 0 ] E z +[ 2 1 0 ] F z +[ 2 1 1 ] G z +[ 2 1 1 ] H z +[ 2 2 0 ] I z +[ 2 2 0 ] J z +[ 2 2 1 ] K z +[ 2 2 1 ] L z +[ 3 0 0 ] M z +[ 3 0 0 ] N z +[ 3 0 1 ] P z +[ 3 0 1 ] Q z +[ 3 1 0 ] R z +[ 3 1 0 ] S z +[ 3 1 1 ] T z +[ 3 1 1 ] U z +[ 3 2 0 ] V z +[ 3 2 0 ] W z +[ 3 2 1 ] X z +[ 3 2 1 ] Z z +47 differences found +attribute: <vlen of </>> and <vlen of </>> +size: [2] [2] +position vlen of </> vlen of </> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +[ 1 ] 3 0 3 +3 differences found +attribute: <vlen2D of </>> and <vlen2D of </>> +size: [3x2] [3x2] +position vlen2D of </> vlen2D of </> difference +------------------------------------------------------------ +[ 0 1 ] 1 0 1 +[ 1 0 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 1 1 ] 5 0 5 +[ 2 0 ] 6 0 6 +[ 2 0 ] 7 0 7 +[ 2 0 ] 8 0 8 +[ 2 1 ] 9 0 9 +[ 2 1 ] 10 0 10 +[ 2 1 ] 11 0 11 +11 differences found +attribute: <vlen3D of </>> and <vlen3D of </>> +size: [4x3x2] [4x3x2] +position vlen3D of </> vlen3D of </> difference +------------------------------------------------------------ +[ 0 0 1 ] 1 0 1 +[ 0 1 0 ] 2 0 2 +[ 0 1 1 ] 3 0 3 +[ 0 2 0 ] 4 0 4 +[ 0 2 1 ] 5 0 5 +[ 1 0 0 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 0 1 ] 9 0 9 +[ 1 1 0 ] 10 0 10 +[ 1 1 0 ] 11 0 11 +[ 1 1 1 ] 12 0 12 +[ 1 1 1 ] 13 0 13 +[ 1 2 0 ] 14 0 14 +[ 1 2 0 ] 15 0 15 +[ 1 2 1 ] 16 0 16 +[ 1 2 1 ] 17 0 17 +[ 2 0 0 ] 18 0 18 +[ 2 0 0 ] 19 0 19 +[ 2 0 0 ] 20 0 20 +[ 2 0 1 ] 21 0 21 +[ 2 0 1 ] 22 0 22 +[ 2 0 1 ] 23 0 23 +[ 2 1 0 ] 24 0 24 +[ 2 1 0 ] 25 0 25 +[ 2 1 0 ] 26 0 26 +[ 2 1 1 ] 27 0 27 +[ 2 1 1 ] 28 0 28 +[ 2 1 1 ] 29 0 29 +[ 2 2 0 ] 30 0 30 +[ 2 2 0 ] 31 0 31 +[ 2 2 0 ] 32 0 32 +[ 2 2 1 ] 33 0 33 +[ 2 2 1 ] 34 0 34 +[ 2 2 1 ] 35 0 35 +[ 3 0 0 ] 36 0 36 +[ 3 0 0 ] 37 0 37 +[ 3 0 0 ] 38 0 38 +[ 3 0 0 ] 39 0 39 +[ 3 0 1 ] 40 0 40 +[ 3 0 1 ] 41 0 41 +[ 3 0 1 ] 42 0 42 +[ 3 0 1 ] 43 0 43 +[ 3 1 0 ] 44 0 44 +[ 3 1 0 ] 45 0 45 +[ 3 1 0 ] 46 0 46 +[ 3 1 0 ] 47 0 47 +[ 3 1 1 ] 48 0 48 +[ 3 1 1 ] 49 0 49 +[ 3 1 1 ] 50 0 50 +[ 3 1 1 ] 51 0 51 +[ 3 2 0 ] 52 0 52 +[ 3 2 0 ] 53 0 53 +[ 3 2 0 ] 54 0 54 +[ 3 2 0 ] 55 0 55 +[ 3 2 1 ] 56 0 56 +[ 3 2 1 ] 57 0 57 +[ 3 2 1 ] 58 0 58 +[ 3 2 1 ] 59 0 59 +59 differences found + +dataset: </dset> and </dset> +Not comparable: </dset> or </dset> is an empty dataset +Attributes status: 33 common, 0 only in obj1, 0 only in obj2 +attribute: <VLstring of </dset>> and <VLstring of </dset>> +size: [2] [2] +position VLstring of </dset> VLstring of </dset> difference +------------------------------------------------------------ +[ 0 ] a z +[ 0 ] b z +[ 1 ] d z +[ 1 ] e z +4 differences found +attribute: <VLstring2D of </dset>> and <VLstring2D of </dset>> +size: [3x2] [3x2] +position VLstring2D of </dset> VLstring2D of </dset> difference +------------------------------------------------------------ +[ 0 0 ] a z +[ 0 0 ] b z +[ 0 1 ] c z +[ 0 1 ] d z +[ 1 0 ] e z +[ 1 0 ] f z +[ 1 1 ] g z +[ 1 1 ] h z +[ 2 0 ] i z +[ 2 0 ] j z +[ 2 1 ] k z +[ 2 1 ] l z +12 differences found +attribute: <VLstring3D of </dset>> and <VLstring3D of </dset>> +size: [4x3x2] [4x3x2] +position VLstring3D of </dset> VLstring3D of </dset> difference +------------------------------------------------------------ +[ 0 0 0 ] a z +[ 0 0 0 ] b z +[ 0 0 1 ] c z +[ 0 0 1 ] d z +[ 0 1 0 ] e z +[ 0 1 0 ] f z +[ 0 1 1 ] g z +[ 0 1 1 ] h z +[ 0 2 0 ] i z +[ 0 2 0 ] j z +[ 0 2 1 ] k z +[ 0 2 1 ] l z +[ 1 0 0 ] m z +[ 1 0 0 ] n z +[ 1 0 1 ] p z +[ 1 0 1 ] q z +[ 1 1 0 ] r z +[ 1 1 0 ] s z +[ 1 1 1 ] t z +[ 1 1 1 ] u z +[ 1 2 0 ] v z +[ 1 2 0 ] w z +[ 1 2 1 ] x z +[ 2 0 0 ] A z +[ 2 0 0 ] B z +[ 2 0 1 ] C z +[ 2 0 1 ] D z +[ 2 1 0 ] E z +[ 2 1 0 ] F z +[ 2 1 1 ] G z +[ 2 1 1 ] H z +[ 2 2 0 ] I z +[ 2 2 0 ] J z +[ 2 2 1 ] K z +[ 2 2 1 ] L z +[ 3 0 0 ] M z +[ 3 0 0 ] N z +[ 3 0 1 ] P z +[ 3 0 1 ] Q z +[ 3 1 0 ] R z +[ 3 1 0 ] S z +[ 3 1 1 ] T z +[ 3 1 1 ] U z +[ 3 2 0 ] V z +[ 3 2 0 ] W z +[ 3 2 1 ] X z +[ 3 2 1 ] Z z +47 differences found +attribute: <array of </dset>> and <array of </dset>> +size: [2] [2] +position array of </dset> array of </dset> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 0 ] 2 0 2 +[ 0 ] 3 0 3 +[ 1 ] 4 0 4 +[ 1 ] 5 0 5 +[ 1 ] 6 0 6 +6 differences found +attribute: <array2D of </dset>> and <array2D of </dset>> +size: [3x2] [3x2] +position array2D of </dset> array2D of </dset> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 0 ] 2 0 2 +[ 0 0 ] 3 0 3 +[ 0 1 ] 4 0 4 +[ 0 1 ] 5 0 5 +[ 0 1 ] 6 0 6 +[ 1 0 ] 7 0 7 +[ 1 0 ] 8 0 8 +[ 1 0 ] 9 0 9 +[ 1 1 ] 10 0 10 +[ 1 1 ] 11 0 11 +[ 1 1 ] 12 0 12 +[ 2 0 ] 13 0 13 +[ 2 0 ] 14 0 14 +[ 2 0 ] 15 0 15 +[ 2 1 ] 16 0 16 +[ 2 1 ] 17 0 17 +[ 2 1 ] 18 0 18 +18 differences found +attribute: <array3D of </dset>> and <array3D of </dset>> +size: [4x3x2] [4x3x2] +position array3D of </dset> array3D of </dset> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 0 ] 2 0 2 +[ 0 0 0 ] 3 0 3 +[ 0 0 1 ] 4 0 4 +[ 0 0 1 ] 5 0 5 +[ 0 0 1 ] 6 0 6 +[ 0 1 0 ] 7 0 7 +[ 0 1 0 ] 8 0 8 +[ 0 1 0 ] 9 0 9 +[ 0 1 1 ] 10 0 10 +[ 0 1 1 ] 11 0 11 +[ 0 1 1 ] 12 0 12 +[ 0 2 0 ] 13 0 13 +[ 0 2 0 ] 14 0 14 +[ 0 2 0 ] 15 0 15 +[ 0 2 1 ] 16 0 16 +[ 0 2 1 ] 17 0 17 +[ 0 2 1 ] 18 0 18 +[ 1 0 0 ] 19 0 19 +[ 1 0 0 ] 20 0 20 +[ 1 0 0 ] 21 0 21 +[ 1 0 1 ] 22 0 22 +[ 1 0 1 ] 23 0 23 +[ 1 0 1 ] 24 0 24 +[ 1 1 0 ] 25 0 25 +[ 1 1 0 ] 26 0 26 +[ 1 1 0 ] 27 0 27 +[ 1 1 1 ] 28 0 28 +[ 1 1 1 ] 29 0 29 +[ 1 1 1 ] 30 0 30 +[ 1 2 0 ] 31 0 31 +[ 1 2 0 ] 32 0 32 +[ 1 2 0 ] 33 0 33 +[ 1 2 1 ] 34 0 34 +[ 1 2 1 ] 35 0 35 +[ 1 2 1 ] 36 0 36 +[ 2 0 0 ] 37 0 37 +[ 2 0 0 ] 38 0 38 +[ 2 0 0 ] 39 0 39 +[ 2 0 1 ] 40 0 40 +[ 2 0 1 ] 41 0 41 +[ 2 0 1 ] 42 0 42 +[ 2 1 0 ] 43 0 43 +[ 2 1 0 ] 44 0 44 +[ 2 1 0 ] 45 0 45 +[ 2 1 1 ] 46 0 46 +[ 2 1 1 ] 47 0 47 +[ 2 1 1 ] 48 0 48 +[ 2 2 0 ] 49 0 49 +[ 2 2 0 ] 50 0 50 +[ 2 2 0 ] 51 0 51 +[ 2 2 1 ] 52 0 52 +[ 2 2 1 ] 53 0 53 +[ 2 2 1 ] 54 0 54 +[ 3 0 0 ] 55 0 55 +[ 3 0 0 ] 56 0 56 +[ 3 0 0 ] 57 0 57 +[ 3 0 1 ] 58 0 58 +[ 3 0 1 ] 59 0 59 +[ 3 0 1 ] 60 0 60 +[ 3 1 0 ] 61 0 61 +[ 3 1 0 ] 62 0 62 +[ 3 1 0 ] 63 0 63 +[ 3 1 1 ] 64 0 64 +[ 3 1 1 ] 65 0 65 +[ 3 1 1 ] 66 0 66 +[ 3 2 0 ] 67 0 67 +[ 3 2 0 ] 68 0 68 +[ 3 2 0 ] 69 0 69 +[ 3 2 1 ] 70 0 70 +[ 3 2 1 ] 71 0 71 +[ 3 2 1 ] 72 0 72 +72 differences found +attribute: <bitfield of </dset>> and <bitfield of </dset>> +size: [2] [2] +position bitfield of </dset> bitfield of </dset> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <bitfield2D of </dset>> and <bitfield2D of </dset>> +size: [3x2] [3x2] +position bitfield2D of </dset> bitfield2D of </dset> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <bitfield3D of </dset>> and <bitfield3D of </dset>> +size: [4x3x2] [4x3x2] +position bitfield3D of </dset> bitfield3D of </dset> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 1 ] 2 0 2 +[ 0 1 0 ] 3 0 3 +[ 0 1 1 ] 4 0 4 +[ 0 2 0 ] 5 0 5 +[ 0 2 1 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 1 0 ] 9 0 9 +[ 1 1 1 ] 10 0 10 +[ 1 2 0 ] 11 0 11 +[ 1 2 1 ] 12 0 12 +[ 2 0 0 ] 13 0 13 +[ 2 0 1 ] 14 0 14 +[ 2 1 0 ] 15 0 15 +[ 2 1 1 ] 16 0 16 +[ 2 2 0 ] 17 0 17 +[ 2 2 1 ] 18 0 18 +[ 3 0 0 ] 19 0 19 +[ 3 0 1 ] 20 0 20 +[ 3 1 0 ] 21 0 21 +[ 3 1 1 ] 22 0 22 +[ 3 2 0 ] 23 0 23 +[ 3 2 1 ] 24 0 24 +24 differences found +attribute: <compound of </dset>> and <compound of </dset>> +size: [2] [2] +position compound of </dset> compound of </dset> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 0 ] 2 0 2 +[ 1 ] 3 0 3 +[ 1 ] 4 0 4 +4 differences found +attribute: <compound2D of </dset>> and <compound2D of </dset>> +size: [3x2] [3x2] +position compound2D of </dset> compound2D of </dset> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 0 ] 2 0 2 +[ 0 1 ] 3 0 3 +[ 0 1 ] 4 0 4 +[ 1 0 ] 5 0 5 +[ 1 0 ] 6 0 6 +[ 1 1 ] 7 0 7 +[ 1 1 ] 8 0 8 +[ 2 0 ] 9 0 9 +[ 2 0 ] 10 0 10 +[ 2 1 ] 11 0 11 +[ 2 1 ] 12 0 12 +12 differences found +attribute: <compound3D of </dset>> and <compound3D of </dset>> +size: [4x3x2] [4x3x2] +position compound3D of </dset> compound3D of </dset> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 0 ] 2 0 2 +[ 0 0 1 ] 3 0 3 +[ 0 0 1 ] 4 0 4 +[ 0 1 0 ] 5 0 5 +[ 0 1 0 ] 6 0 6 +[ 0 1 1 ] 7 0 7 +[ 0 1 1 ] 8 0 8 +[ 0 2 0 ] 9 0 9 +[ 0 2 0 ] 10 0 10 +[ 0 2 1 ] 11 0 11 +[ 0 2 1 ] 12 0 12 +[ 1 0 0 ] 13 0 13 +[ 1 0 0 ] 14 0 14 +[ 1 0 1 ] 15 0 15 +[ 1 0 1 ] 16 0 16 +[ 1 1 0 ] 17 0 17 +[ 1 1 0 ] 18 0 18 +[ 1 1 1 ] 19 0 19 +[ 1 1 1 ] 20 0 20 +[ 1 2 0 ] 21 0 21 +[ 1 2 0 ] 22 0 22 +[ 1 2 1 ] 23 0 23 +[ 1 2 1 ] 24 0 24 +[ 2 0 0 ] 25 0 25 +[ 2 0 0 ] 26 0 26 +[ 2 0 1 ] 27 0 27 +[ 2 0 1 ] 28 0 28 +[ 2 1 0 ] 29 0 29 +[ 2 1 0 ] 30 0 30 +[ 2 1 1 ] 31 0 31 +[ 2 1 1 ] 32 0 32 +[ 2 2 0 ] 33 0 33 +[ 2 2 0 ] 34 0 34 +[ 2 2 1 ] 35 0 35 +[ 2 2 1 ] 36 0 36 +[ 3 0 0 ] 37 0 37 +[ 3 0 0 ] 38 0 38 +[ 3 0 1 ] 39 0 39 +[ 3 0 1 ] 40 0 40 +[ 3 1 0 ] 41 0 41 +[ 3 1 0 ] 42 0 42 +[ 3 1 1 ] 43 0 43 +[ 3 1 1 ] 44 0 44 +[ 3 2 0 ] 45 0 45 +[ 3 2 0 ] 46 0 46 +[ 3 2 1 ] 47 0 47 +[ 3 2 1 ] 48 0 48 +48 differences found +attribute: <enum of </dset>> and <enum of </dset>> +size: [2] [2] +position enum of </dset> enum of </dset> difference +------------------------------------------------------------ +[ 0 ] RED GREEN +[ 1 ] RED GREEN +2 differences found +attribute: <enum2D of </dset>> and <enum2D of </dset>> +size: [3x2] [3x2] +position enum2D of </dset> enum2D of </dset> difference +------------------------------------------------------------ +[ 0 0 ] RED GREEN +[ 0 1 ] RED GREEN +[ 1 0 ] RED GREEN +[ 1 1 ] RED GREEN +[ 2 0 ] RED GREEN +[ 2 1 ] RED GREEN +6 differences found +attribute: <enum3D of </dset>> and <enum3D of </dset>> +size: [4x3x2] [4x3x2] +position enum3D of </dset> enum3D of </dset> difference +------------------------------------------------------------ +[ 0 0 0 ] GREEN RED +[ 0 0 1 ] GREEN RED +[ 0 1 0 ] GREEN RED +[ 0 1 1 ] GREEN RED +[ 0 2 0 ] GREEN RED +[ 0 2 1 ] GREEN RED +[ 1 0 0 ] GREEN RED +[ 1 0 1 ] GREEN RED +[ 1 1 0 ] GREEN RED +[ 1 1 1 ] GREEN RED +[ 1 2 0 ] GREEN RED +[ 1 2 1 ] GREEN RED +[ 2 0 0 ] GREEN RED +[ 2 0 1 ] GREEN RED +[ 2 1 0 ] GREEN RED +[ 2 1 1 ] GREEN RED +[ 2 2 0 ] GREEN RED +[ 2 2 1 ] GREEN RED +[ 3 0 0 ] GREEN RED +[ 3 0 1 ] GREEN RED +[ 3 1 0 ] GREEN RED +[ 3 1 1 ] GREEN RED +[ 3 2 0 ] GREEN RED +[ 3 2 1 ] GREEN RED +24 differences found +attribute: <float of </dset>> and <float of </dset>> +size: [2] [2] +position float of </dset> float of </dset> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <float2D of </dset>> and <float2D of </dset>> +size: [3x2] [3x2] +position float2D of </dset> float2D of </dset> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <float3D of </dset>> and <float3D of </dset>> +size: [4x3x2] [4x3x2] +position float3D of </dset> float3D of </dset> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 1 ] 2 0 2 +[ 0 1 0 ] 3 0 3 +[ 0 1 1 ] 4 0 4 +[ 0 2 0 ] 5 0 5 +[ 0 2 1 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 1 0 ] 9 0 9 +[ 1 1 1 ] 10 0 10 +[ 1 2 0 ] 11 0 11 +[ 1 2 1 ] 12 0 12 +[ 2 0 0 ] 13 0 13 +[ 2 0 1 ] 14 0 14 +[ 2 1 0 ] 15 0 15 +[ 2 1 1 ] 16 0 16 +[ 2 2 0 ] 17 0 17 +[ 2 2 1 ] 18 0 18 +[ 3 0 0 ] 19 0 19 +[ 3 0 1 ] 20 0 20 +[ 3 1 0 ] 21 0 21 +[ 3 1 1 ] 22 0 22 +[ 3 2 0 ] 23 0 23 +[ 3 2 1 ] 24 0 24 +24 differences found +attribute: <integer of </dset>> and <integer of </dset>> +size: [2] [2] +position integer of </dset> integer of </dset> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <integer2D of </dset>> and <integer2D of </dset>> +size: [3x2] [3x2] +position integer2D of </dset> integer2D of </dset> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <integer3D of </dset>> and <integer3D of </dset>> +size: [4x3x2] [4x3x2] +position integer3D of </dset> integer3D of </dset> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 1 ] 2 0 2 +[ 0 1 0 ] 3 0 3 +[ 0 1 1 ] 4 0 4 +[ 0 2 0 ] 5 0 5 +[ 0 2 1 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 1 0 ] 9 0 9 +[ 1 1 1 ] 10 0 10 +[ 1 2 0 ] 11 0 11 +[ 1 2 1 ] 12 0 12 +[ 2 0 0 ] 13 0 13 +[ 2 0 1 ] 14 0 14 +[ 2 1 0 ] 15 0 15 +[ 2 1 1 ] 16 0 16 +[ 2 2 0 ] 17 0 17 +[ 2 2 1 ] 18 0 18 +[ 3 0 0 ] 19 0 19 +[ 3 0 1 ] 20 0 20 +[ 3 1 0 ] 21 0 21 +[ 3 1 1 ] 22 0 22 +[ 3 2 0 ] 23 0 23 +[ 3 2 1 ] 24 0 24 +24 differences found +attribute: <opaque of </dset>> and <opaque of </dset>> +size: [2] [2] +position opaque of </dset> opaque of </dset> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <opaque2D of </dset>> and <opaque2D of </dset>> +size: [3x2] [3x2] +position opaque2D of </dset> opaque2D of </dset> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <opaque3D of </dset>> and <opaque3D of </dset>> +size: [4x3x2] [4x3x2] +position opaque3D of </dset> opaque3D of </dset> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 1 ] 2 0 2 +[ 0 1 0 ] 3 0 3 +[ 0 1 1 ] 4 0 4 +[ 0 2 0 ] 5 0 5 +[ 0 2 1 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 1 0 ] 9 0 9 +[ 1 1 1 ] 10 0 10 +[ 1 2 0 ] 11 0 11 +[ 1 2 1 ] 12 0 12 +[ 2 0 0 ] 13 0 13 +[ 2 0 1 ] 14 0 14 +[ 2 1 0 ] 15 0 15 +[ 2 1 1 ] 16 0 16 +[ 2 2 0 ] 17 0 17 +[ 2 2 1 ] 18 0 18 +[ 3 0 0 ] 19 0 19 +[ 3 0 1 ] 20 0 20 +[ 3 1 0 ] 21 0 21 +[ 3 1 1 ] 22 0 22 +[ 3 2 0 ] 23 0 23 +[ 3 2 1 ] 24 0 24 +24 differences found +attribute: <reference of </dset>> and <reference of </dset>> +0 differences found +attribute: <reference2D of </dset>> and <reference2D of </dset>> +0 differences found +attribute: <reference3D of </dset>> and <reference3D of </dset>> +0 differences found +attribute: <string of </dset>> and <string of </dset>> +size: [2] [2] +position string of </dset> string of </dset> difference +------------------------------------------------------------ +[ 0 ] a z +[ 0 ] b z +[ 1 ] d z +[ 1 ] e z +4 differences found +attribute: <string2D of </dset>> and <string2D of </dset>> +size: [3x2] [3x2] +position string2D of </dset> string2D of </dset> difference +------------------------------------------------------------ +[ 0 0 ] a z +[ 0 0 ] b z +[ 0 1 ] c z +[ 0 1 ] d z +[ 1 0 ] e z +[ 1 0 ] f z +[ 1 1 ] g z +[ 1 1 ] h z +[ 2 0 ] i z +[ 2 0 ] j z +[ 2 1 ] k z +[ 2 1 ] l z +12 differences found +attribute: <string3D of </dset>> and <string3D of </dset>> +size: [4x3x2] [4x3x2] +position string3D of </dset> string3D of </dset> difference +------------------------------------------------------------ +[ 0 0 0 ] a z +[ 0 0 0 ] b z +[ 0 0 1 ] c z +[ 0 0 1 ] d z +[ 0 1 0 ] e z +[ 0 1 0 ] f z +[ 0 1 1 ] g z +[ 0 1 1 ] h z +[ 0 2 0 ] i z +[ 0 2 0 ] j z +[ 0 2 1 ] k z +[ 0 2 1 ] l z +[ 1 0 0 ] m z +[ 1 0 0 ] n z +[ 1 0 1 ] p z +[ 1 0 1 ] q z +[ 1 1 0 ] r z +[ 1 1 0 ] s z +[ 1 1 1 ] t z +[ 1 1 1 ] u z +[ 1 2 0 ] v z +[ 1 2 0 ] w z +[ 1 2 1 ] x z +[ 2 0 0 ] A z +[ 2 0 0 ] B z +[ 2 0 1 ] C z +[ 2 0 1 ] D z +[ 2 1 0 ] E z +[ 2 1 0 ] F z +[ 2 1 1 ] G z +[ 2 1 1 ] H z +[ 2 2 0 ] I z +[ 2 2 0 ] J z +[ 2 2 1 ] K z +[ 2 2 1 ] L z +[ 3 0 0 ] M z +[ 3 0 0 ] N z +[ 3 0 1 ] P z +[ 3 0 1 ] Q z +[ 3 1 0 ] R z +[ 3 1 0 ] S z +[ 3 1 1 ] T z +[ 3 1 1 ] U z +[ 3 2 0 ] V z +[ 3 2 0 ] W z +[ 3 2 1 ] X z +[ 3 2 1 ] Z z +47 differences found +attribute: <vlen of </dset>> and <vlen of </dset>> +size: [2] [2] +position vlen of </dset> vlen of </dset> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +[ 1 ] 3 0 3 +3 differences found +attribute: <vlen2D of </dset>> and <vlen2D of </dset>> +size: [3x2] [3x2] +position vlen2D of </dset> vlen2D of </dset> difference +------------------------------------------------------------ +[ 0 1 ] 1 0 1 +[ 1 0 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 1 1 ] 5 0 5 +[ 2 0 ] 6 0 6 +[ 2 0 ] 7 0 7 +[ 2 0 ] 8 0 8 +[ 2 1 ] 9 0 9 +[ 2 1 ] 10 0 10 +[ 2 1 ] 11 0 11 +11 differences found +attribute: <vlen3D of </dset>> and <vlen3D of </dset>> +size: [4x3x2] [4x3x2] +position vlen3D of </dset> vlen3D of </dset> difference +------------------------------------------------------------ +[ 0 0 1 ] 1 0 1 +[ 0 1 0 ] 2 0 2 +[ 0 1 1 ] 3 0 3 +[ 0 2 0 ] 4 0 4 +[ 0 2 1 ] 5 0 5 +[ 1 0 0 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 0 1 ] 9 0 9 +[ 1 1 0 ] 10 0 10 +[ 1 1 0 ] 11 0 11 +[ 1 1 1 ] 12 0 12 +[ 1 1 1 ] 13 0 13 +[ 1 2 0 ] 14 0 14 +[ 1 2 0 ] 15 0 15 +[ 1 2 1 ] 16 0 16 +[ 1 2 1 ] 17 0 17 +[ 2 0 0 ] 18 0 18 +[ 2 0 0 ] 19 0 19 +[ 2 0 0 ] 20 0 20 +[ 2 0 1 ] 21 0 21 +[ 2 0 1 ] 22 0 22 +[ 2 0 1 ] 23 0 23 +[ 2 1 0 ] 24 0 24 +[ 2 1 0 ] 25 0 25 +[ 2 1 0 ] 26 0 26 +[ 2 1 1 ] 27 0 27 +[ 2 1 1 ] 28 0 28 +[ 2 1 1 ] 29 0 29 +[ 2 2 0 ] 30 0 30 +[ 2 2 0 ] 31 0 31 +[ 2 2 0 ] 32 0 32 +[ 2 2 1 ] 33 0 33 +[ 2 2 1 ] 34 0 34 +[ 2 2 1 ] 35 0 35 +[ 3 0 0 ] 36 0 36 +[ 3 0 0 ] 37 0 37 +[ 3 0 0 ] 38 0 38 +[ 3 0 0 ] 39 0 39 +[ 3 0 1 ] 40 0 40 +[ 3 0 1 ] 41 0 41 +[ 3 0 1 ] 42 0 42 +[ 3 0 1 ] 43 0 43 +[ 3 1 0 ] 44 0 44 +[ 3 1 0 ] 45 0 45 +[ 3 1 0 ] 46 0 46 +[ 3 1 0 ] 47 0 47 +[ 3 1 1 ] 48 0 48 +[ 3 1 1 ] 49 0 49 +[ 3 1 1 ] 50 0 50 +[ 3 1 1 ] 51 0 51 +[ 3 2 0 ] 52 0 52 +[ 3 2 0 ] 53 0 53 +[ 3 2 0 ] 54 0 54 +[ 3 2 0 ] 55 0 55 +[ 3 2 1 ] 56 0 56 +[ 3 2 1 ] 57 0 57 +[ 3 2 1 ] 58 0 58 +[ 3 2 1 ] 59 0 59 +59 differences found +519 differences found + +group : </g1> and </g1> +0 differences found +Attributes status: 30 common, 0 only in obj1, 0 only in obj2 +attribute: <VLstring of </g1>> and <VLstring of </g1>> +size: [2] [2] +position VLstring of </g1> VLstring of </g1> difference +------------------------------------------------------------ +[ 0 ] a z +[ 0 ] b z +[ 1 ] d z +[ 1 ] e z +4 differences found +attribute: <VLstring2D of </g1>> and <VLstring2D of </g1>> +size: [3x2] [3x2] +position VLstring2D of </g1> VLstring2D of </g1> difference +------------------------------------------------------------ +[ 0 0 ] a z +[ 0 0 ] b z +[ 0 1 ] c z +[ 0 1 ] d z +[ 1 0 ] e z +[ 1 0 ] f z +[ 1 1 ] g z +[ 1 1 ] h z +[ 2 0 ] i z +[ 2 0 ] j z +[ 2 1 ] k z +[ 2 1 ] l z +12 differences found +attribute: <VLstring3D of </g1>> and <VLstring3D of </g1>> +size: [4x3x2] [4x3x2] +position VLstring3D of </g1> VLstring3D of </g1> difference +------------------------------------------------------------ +[ 0 0 0 ] a z +[ 0 0 0 ] b z +[ 0 0 1 ] c z +[ 0 0 1 ] d z +[ 0 1 0 ] e z +[ 0 1 0 ] f z +[ 0 1 1 ] g z +[ 0 1 1 ] h z +[ 0 2 0 ] i z +[ 0 2 0 ] j z +[ 0 2 1 ] k z +[ 0 2 1 ] l z +[ 1 0 0 ] m z +[ 1 0 0 ] n z +[ 1 0 1 ] p z +[ 1 0 1 ] q z +[ 1 1 0 ] r z +[ 1 1 0 ] s z +[ 1 1 1 ] t z +[ 1 1 1 ] u z +[ 1 2 0 ] v z +[ 1 2 0 ] w z +[ 1 2 1 ] x z +[ 2 0 0 ] A z +[ 2 0 0 ] B z +[ 2 0 1 ] C z +[ 2 0 1 ] D z +[ 2 1 0 ] E z +[ 2 1 0 ] F z +[ 2 1 1 ] G z +[ 2 1 1 ] H z +[ 2 2 0 ] I z +[ 2 2 0 ] J z +[ 2 2 1 ] K z +[ 2 2 1 ] L z +[ 3 0 0 ] M z +[ 3 0 0 ] N z +[ 3 0 1 ] P z +[ 3 0 1 ] Q z +[ 3 1 0 ] R z +[ 3 1 0 ] S z +[ 3 1 1 ] T z +[ 3 1 1 ] U z +[ 3 2 0 ] V z +[ 3 2 0 ] W z +[ 3 2 1 ] X z +[ 3 2 1 ] Z z +47 differences found +attribute: <array of </g1>> and <array of </g1>> +size: [2] [2] +position array of </g1> array of </g1> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 0 ] 2 0 2 +[ 0 ] 3 0 3 +[ 1 ] 4 0 4 +[ 1 ] 5 0 5 +[ 1 ] 6 0 6 +6 differences found +attribute: <array2D of </g1>> and <array2D of </g1>> +size: [3x2] [3x2] +position array2D of </g1> array2D of </g1> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 0 ] 2 0 2 +[ 0 0 ] 3 0 3 +[ 0 1 ] 4 0 4 +[ 0 1 ] 5 0 5 +[ 0 1 ] 6 0 6 +[ 1 0 ] 7 0 7 +[ 1 0 ] 8 0 8 +[ 1 0 ] 9 0 9 +[ 1 1 ] 10 0 10 +[ 1 1 ] 11 0 11 +[ 1 1 ] 12 0 12 +[ 2 0 ] 13 0 13 +[ 2 0 ] 14 0 14 +[ 2 0 ] 15 0 15 +[ 2 1 ] 16 0 16 +[ 2 1 ] 17 0 17 +[ 2 1 ] 18 0 18 +18 differences found +attribute: <array3D of </g1>> and <array3D of </g1>> +size: [4x3x2] [4x3x2] +position array3D of </g1> array3D of </g1> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 0 ] 2 0 2 +[ 0 0 0 ] 3 0 3 +[ 0 0 1 ] 4 0 4 +[ 0 0 1 ] 5 0 5 +[ 0 0 1 ] 6 0 6 +[ 0 1 0 ] 7 0 7 +[ 0 1 0 ] 8 0 8 +[ 0 1 0 ] 9 0 9 +[ 0 1 1 ] 10 0 10 +[ 0 1 1 ] 11 0 11 +[ 0 1 1 ] 12 0 12 +[ 0 2 0 ] 13 0 13 +[ 0 2 0 ] 14 0 14 +[ 0 2 0 ] 15 0 15 +[ 0 2 1 ] 16 0 16 +[ 0 2 1 ] 17 0 17 +[ 0 2 1 ] 18 0 18 +[ 1 0 0 ] 19 0 19 +[ 1 0 0 ] 20 0 20 +[ 1 0 0 ] 21 0 21 +[ 1 0 1 ] 22 0 22 +[ 1 0 1 ] 23 0 23 +[ 1 0 1 ] 24 0 24 +[ 1 1 0 ] 25 0 25 +[ 1 1 0 ] 26 0 26 +[ 1 1 0 ] 27 0 27 +[ 1 1 1 ] 28 0 28 +[ 1 1 1 ] 29 0 29 +[ 1 1 1 ] 30 0 30 +[ 1 2 0 ] 31 0 31 +[ 1 2 0 ] 32 0 32 +[ 1 2 0 ] 33 0 33 +[ 1 2 1 ] 34 0 34 +[ 1 2 1 ] 35 0 35 +[ 1 2 1 ] 36 0 36 +[ 2 0 0 ] 37 0 37 +[ 2 0 0 ] 38 0 38 +[ 2 0 0 ] 39 0 39 +[ 2 0 1 ] 40 0 40 +[ 2 0 1 ] 41 0 41 +[ 2 0 1 ] 42 0 42 +[ 2 1 0 ] 43 0 43 +[ 2 1 0 ] 44 0 44 +[ 2 1 0 ] 45 0 45 +[ 2 1 1 ] 46 0 46 +[ 2 1 1 ] 47 0 47 +[ 2 1 1 ] 48 0 48 +[ 2 2 0 ] 49 0 49 +[ 2 2 0 ] 50 0 50 +[ 2 2 0 ] 51 0 51 +[ 2 2 1 ] 52 0 52 +[ 2 2 1 ] 53 0 53 +[ 2 2 1 ] 54 0 54 +[ 3 0 0 ] 55 0 55 +[ 3 0 0 ] 56 0 56 +[ 3 0 0 ] 57 0 57 +[ 3 0 1 ] 58 0 58 +[ 3 0 1 ] 59 0 59 +[ 3 0 1 ] 60 0 60 +[ 3 1 0 ] 61 0 61 +[ 3 1 0 ] 62 0 62 +[ 3 1 0 ] 63 0 63 +[ 3 1 1 ] 64 0 64 +[ 3 1 1 ] 65 0 65 +[ 3 1 1 ] 66 0 66 +[ 3 2 0 ] 67 0 67 +[ 3 2 0 ] 68 0 68 +[ 3 2 0 ] 69 0 69 +[ 3 2 1 ] 70 0 70 +[ 3 2 1 ] 71 0 71 +[ 3 2 1 ] 72 0 72 +72 differences found +attribute: <bitfield of </g1>> and <bitfield of </g1>> +size: [2] [2] +position bitfield of </g1> bitfield of </g1> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <bitfield2D of </g1>> and <bitfield2D of </g1>> +size: [3x2] [3x2] +position bitfield2D of </g1> bitfield2D of </g1> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <bitfield3D of </g1>> and <bitfield3D of </g1>> +size: [4x3x2] [4x3x2] +position bitfield3D of </g1> bitfield3D of </g1> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 1 ] 2 0 2 +[ 0 1 0 ] 3 0 3 +[ 0 1 1 ] 4 0 4 +[ 0 2 0 ] 5 0 5 +[ 0 2 1 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 1 0 ] 9 0 9 +[ 1 1 1 ] 10 0 10 +[ 1 2 0 ] 11 0 11 +[ 1 2 1 ] 12 0 12 +[ 2 0 0 ] 13 0 13 +[ 2 0 1 ] 14 0 14 +[ 2 1 0 ] 15 0 15 +[ 2 1 1 ] 16 0 16 +[ 2 2 0 ] 17 0 17 +[ 2 2 1 ] 18 0 18 +[ 3 0 0 ] 19 0 19 +[ 3 0 1 ] 20 0 20 +[ 3 1 0 ] 21 0 21 +[ 3 1 1 ] 22 0 22 +[ 3 2 0 ] 23 0 23 +[ 3 2 1 ] 24 0 24 +24 differences found +attribute: <compound of </g1>> and <compound of </g1>> +size: [2] [2] +position compound of </g1> compound of </g1> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 0 ] 2 0 2 +[ 1 ] 3 0 3 +[ 1 ] 4 0 4 +4 differences found +attribute: <compound2D of </g1>> and <compound2D of </g1>> +size: [3x2] [3x2] +position compound2D of </g1> compound2D of </g1> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 0 ] 2 0 2 +[ 0 1 ] 3 0 3 +[ 0 1 ] 4 0 4 +[ 1 0 ] 5 0 5 +[ 1 0 ] 6 0 6 +[ 1 1 ] 7 0 7 +[ 1 1 ] 8 0 8 +[ 2 0 ] 9 0 9 +[ 2 0 ] 10 0 10 +[ 2 1 ] 11 0 11 +[ 2 1 ] 12 0 12 +12 differences found +attribute: <compound3D of </g1>> and <compound3D of </g1>> +size: [4x3x2] [4x3x2] +position compound3D of </g1> compound3D of </g1> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 0 ] 2 0 2 +[ 0 0 1 ] 3 0 3 +[ 0 0 1 ] 4 0 4 +[ 0 1 0 ] 5 0 5 +[ 0 1 0 ] 6 0 6 +[ 0 1 1 ] 7 0 7 +[ 0 1 1 ] 8 0 8 +[ 0 2 0 ] 9 0 9 +[ 0 2 0 ] 10 0 10 +[ 0 2 1 ] 11 0 11 +[ 0 2 1 ] 12 0 12 +[ 1 0 0 ] 13 0 13 +[ 1 0 0 ] 14 0 14 +[ 1 0 1 ] 15 0 15 +[ 1 0 1 ] 16 0 16 +[ 1 1 0 ] 17 0 17 +[ 1 1 0 ] 18 0 18 +[ 1 1 1 ] 19 0 19 +[ 1 1 1 ] 20 0 20 +[ 1 2 0 ] 21 0 21 +[ 1 2 0 ] 22 0 22 +[ 1 2 1 ] 23 0 23 +[ 1 2 1 ] 24 0 24 +[ 2 0 0 ] 25 0 25 +[ 2 0 0 ] 26 0 26 +[ 2 0 1 ] 27 0 27 +[ 2 0 1 ] 28 0 28 +[ 2 1 0 ] 29 0 29 +[ 2 1 0 ] 30 0 30 +[ 2 1 1 ] 31 0 31 +[ 2 1 1 ] 32 0 32 +[ 2 2 0 ] 33 0 33 +[ 2 2 0 ] 34 0 34 +[ 2 2 1 ] 35 0 35 +[ 2 2 1 ] 36 0 36 +[ 3 0 0 ] 37 0 37 +[ 3 0 0 ] 38 0 38 +[ 3 0 1 ] 39 0 39 +[ 3 0 1 ] 40 0 40 +[ 3 1 0 ] 41 0 41 +[ 3 1 0 ] 42 0 42 +[ 3 1 1 ] 43 0 43 +[ 3 1 1 ] 44 0 44 +[ 3 2 0 ] 45 0 45 +[ 3 2 0 ] 46 0 46 +[ 3 2 1 ] 47 0 47 +[ 3 2 1 ] 48 0 48 +48 differences found +attribute: <enum of </g1>> and <enum of </g1>> +size: [2] [2] +position enum of </g1> enum of </g1> difference +------------------------------------------------------------ +[ 0 ] RED GREEN +[ 1 ] RED GREEN +2 differences found +attribute: <enum2D of </g1>> and <enum2D of </g1>> +size: [3x2] [3x2] +position enum2D of </g1> enum2D of </g1> difference +------------------------------------------------------------ +[ 0 0 ] RED GREEN +[ 0 1 ] RED GREEN +[ 1 0 ] RED GREEN +[ 1 1 ] RED GREEN +[ 2 0 ] RED GREEN +[ 2 1 ] RED GREEN +6 differences found +attribute: <enum3D of </g1>> and <enum3D of </g1>> +size: [4x3x2] [4x3x2] +position enum3D of </g1> enum3D of </g1> difference +------------------------------------------------------------ +[ 0 0 0 ] GREEN RED +[ 0 0 1 ] GREEN RED +[ 0 1 0 ] GREEN RED +[ 0 1 1 ] GREEN RED +[ 0 2 0 ] GREEN RED +[ 0 2 1 ] GREEN RED +[ 1 0 0 ] GREEN RED +[ 1 0 1 ] GREEN RED +[ 1 1 0 ] GREEN RED +[ 1 1 1 ] GREEN RED +[ 1 2 0 ] GREEN RED +[ 1 2 1 ] GREEN RED +[ 2 0 0 ] GREEN RED +[ 2 0 1 ] GREEN RED +[ 2 1 0 ] GREEN RED +[ 2 1 1 ] GREEN RED +[ 2 2 0 ] GREEN RED +[ 2 2 1 ] GREEN RED +[ 3 0 0 ] GREEN RED +[ 3 0 1 ] GREEN RED +[ 3 1 0 ] GREEN RED +[ 3 1 1 ] GREEN RED +[ 3 2 0 ] GREEN RED +[ 3 2 1 ] GREEN RED +24 differences found +attribute: <float of </g1>> and <float of </g1>> +size: [2] [2] +position float of </g1> float of </g1> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <float2D of </g1>> and <float2D of </g1>> +size: [3x2] [3x2] +position float2D of </g1> float2D of </g1> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <float3D of </g1>> and <float3D of </g1>> +size: [4x3x2] [4x3x2] +position float3D of </g1> float3D of </g1> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 1 ] 2 0 2 +[ 0 1 0 ] 3 0 3 +[ 0 1 1 ] 4 0 4 +[ 0 2 0 ] 5 0 5 +[ 0 2 1 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 1 0 ] 9 0 9 +[ 1 1 1 ] 10 0 10 +[ 1 2 0 ] 11 0 11 +[ 1 2 1 ] 12 0 12 +[ 2 0 0 ] 13 0 13 +[ 2 0 1 ] 14 0 14 +[ 2 1 0 ] 15 0 15 +[ 2 1 1 ] 16 0 16 +[ 2 2 0 ] 17 0 17 +[ 2 2 1 ] 18 0 18 +[ 3 0 0 ] 19 0 19 +[ 3 0 1 ] 20 0 20 +[ 3 1 0 ] 21 0 21 +[ 3 1 1 ] 22 0 22 +[ 3 2 0 ] 23 0 23 +[ 3 2 1 ] 24 0 24 +24 differences found +attribute: <integer of </g1>> and <integer of </g1>> +size: [2] [2] +position integer of </g1> integer of </g1> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <integer2D of </g1>> and <integer2D of </g1>> +size: [3x2] [3x2] +position integer2D of </g1> integer2D of </g1> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <integer3D of </g1>> and <integer3D of </g1>> +size: [4x3x2] [4x3x2] +position integer3D of </g1> integer3D of </g1> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 1 ] 2 0 2 +[ 0 1 0 ] 3 0 3 +[ 0 1 1 ] 4 0 4 +[ 0 2 0 ] 5 0 5 +[ 0 2 1 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 1 0 ] 9 0 9 +[ 1 1 1 ] 10 0 10 +[ 1 2 0 ] 11 0 11 +[ 1 2 1 ] 12 0 12 +[ 2 0 0 ] 13 0 13 +[ 2 0 1 ] 14 0 14 +[ 2 1 0 ] 15 0 15 +[ 2 1 1 ] 16 0 16 +[ 2 2 0 ] 17 0 17 +[ 2 2 1 ] 18 0 18 +[ 3 0 0 ] 19 0 19 +[ 3 0 1 ] 20 0 20 +[ 3 1 0 ] 21 0 21 +[ 3 1 1 ] 22 0 22 +[ 3 2 0 ] 23 0 23 +[ 3 2 1 ] 24 0 24 +24 differences found +attribute: <opaque of </g1>> and <opaque of </g1>> +size: [2] [2] +position opaque of </g1> opaque of </g1> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <opaque2D of </g1>> and <opaque2D of </g1>> +size: [3x2] [3x2] +position opaque2D of </g1> opaque2D of </g1> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <opaque3D of </g1>> and <opaque3D of </g1>> +size: [4x3x2] [4x3x2] +position opaque3D of </g1> opaque3D of </g1> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 1 ] 2 0 2 +[ 0 1 0 ] 3 0 3 +[ 0 1 1 ] 4 0 4 +[ 0 2 0 ] 5 0 5 +[ 0 2 1 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 1 0 ] 9 0 9 +[ 1 1 1 ] 10 0 10 +[ 1 2 0 ] 11 0 11 +[ 1 2 1 ] 12 0 12 +[ 2 0 0 ] 13 0 13 +[ 2 0 1 ] 14 0 14 +[ 2 1 0 ] 15 0 15 +[ 2 1 1 ] 16 0 16 +[ 2 2 0 ] 17 0 17 +[ 2 2 1 ] 18 0 18 +[ 3 0 0 ] 19 0 19 +[ 3 0 1 ] 20 0 20 +[ 3 1 0 ] 21 0 21 +[ 3 1 1 ] 22 0 22 +[ 3 2 0 ] 23 0 23 +[ 3 2 1 ] 24 0 24 +24 differences found +attribute: <string of </g1>> and <string of </g1>> +size: [2] [2] +position string of </g1> string of </g1> difference +------------------------------------------------------------ +[ 0 ] a z +[ 0 ] b z +[ 1 ] d z +[ 1 ] e z +4 differences found +attribute: <string2D of </g1>> and <string2D of </g1>> +size: [3x2] [3x2] +position string2D of </g1> string2D of </g1> difference +------------------------------------------------------------ +[ 0 0 ] a z +[ 0 0 ] b z +[ 0 1 ] c z +[ 0 1 ] d z +[ 1 0 ] e z +[ 1 0 ] f z +[ 1 1 ] g z +[ 1 1 ] h z +[ 2 0 ] i z +[ 2 0 ] j z +[ 2 1 ] k z +[ 2 1 ] l z +12 differences found +attribute: <string3D of </g1>> and <string3D of </g1>> +size: [4x3x2] [4x3x2] +position string3D of </g1> string3D of </g1> difference +------------------------------------------------------------ +[ 0 0 0 ] a z +[ 0 0 0 ] b z +[ 0 0 1 ] c z +[ 0 0 1 ] d z +[ 0 1 0 ] e z +[ 0 1 0 ] f z +[ 0 1 1 ] g z +[ 0 1 1 ] h z +[ 0 2 0 ] i z +[ 0 2 0 ] j z +[ 0 2 1 ] k z +[ 0 2 1 ] l z +[ 1 0 0 ] m z +[ 1 0 0 ] n z +[ 1 0 1 ] p z +[ 1 0 1 ] q z +[ 1 1 0 ] r z +[ 1 1 0 ] s z +[ 1 1 1 ] t z +[ 1 1 1 ] u z +[ 1 2 0 ] v z +[ 1 2 0 ] w z +[ 1 2 1 ] x z +[ 2 0 0 ] A z +[ 2 0 0 ] B z +[ 2 0 1 ] C z +[ 2 0 1 ] D z +[ 2 1 0 ] E z +[ 2 1 0 ] F z +[ 2 1 1 ] G z +[ 2 1 1 ] H z +[ 2 2 0 ] I z +[ 2 2 0 ] J z +[ 2 2 1 ] K z +[ 2 2 1 ] L z +[ 3 0 0 ] M z +[ 3 0 0 ] N z +[ 3 0 1 ] P z +[ 3 0 1 ] Q z +[ 3 1 0 ] R z +[ 3 1 0 ] S z +[ 3 1 1 ] T z +[ 3 1 1 ] U z +[ 3 2 0 ] V z +[ 3 2 0 ] W z +[ 3 2 1 ] X z +[ 3 2 1 ] Z z +47 differences found +attribute: <vlen of </g1>> and <vlen of </g1>> +size: [2] [2] +position vlen of </g1> vlen of </g1> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +[ 1 ] 3 0 3 +3 differences found +attribute: <vlen2D of </g1>> and <vlen2D of </g1>> +size: [3x2] [3x2] +position vlen2D of </g1> vlen2D of </g1> difference +------------------------------------------------------------ +[ 0 1 ] 1 0 1 +[ 1 0 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 1 1 ] 5 0 5 +[ 2 0 ] 6 0 6 +[ 2 0 ] 7 0 7 +[ 2 0 ] 8 0 8 +[ 2 1 ] 9 0 9 +[ 2 1 ] 10 0 10 +[ 2 1 ] 11 0 11 +11 differences found +attribute: <vlen3D of </g1>> and <vlen3D of </g1>> +size: [4x3x2] [4x3x2] +position vlen3D of </g1> vlen3D of </g1> difference +------------------------------------------------------------ +[ 0 0 1 ] 1 0 1 +[ 0 1 0 ] 2 0 2 +[ 0 1 1 ] 3 0 3 +[ 0 2 0 ] 4 0 4 +[ 0 2 1 ] 5 0 5 +[ 1 0 0 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 0 1 ] 9 0 9 +[ 1 1 0 ] 10 0 10 +[ 1 1 0 ] 11 0 11 +[ 1 1 1 ] 12 0 12 +[ 1 1 1 ] 13 0 13 +[ 1 2 0 ] 14 0 14 +[ 1 2 0 ] 15 0 15 +[ 1 2 1 ] 16 0 16 +[ 1 2 1 ] 17 0 17 +[ 2 0 0 ] 18 0 18 +[ 2 0 0 ] 19 0 19 +[ 2 0 0 ] 20 0 20 +[ 2 0 1 ] 21 0 21 +[ 2 0 1 ] 22 0 22 +[ 2 0 1 ] 23 0 23 +[ 2 1 0 ] 24 0 24 +[ 2 1 0 ] 25 0 25 +[ 2 1 0 ] 26 0 26 +[ 2 1 1 ] 27 0 27 +[ 2 1 1 ] 28 0 28 +[ 2 1 1 ] 29 0 29 +[ 2 2 0 ] 30 0 30 +[ 2 2 0 ] 31 0 31 +[ 2 2 0 ] 32 0 32 +[ 2 2 1 ] 33 0 33 +[ 2 2 1 ] 34 0 34 +[ 2 2 1 ] 35 0 35 +[ 3 0 0 ] 36 0 36 +[ 3 0 0 ] 37 0 37 +[ 3 0 0 ] 38 0 38 +[ 3 0 0 ] 39 0 39 +[ 3 0 1 ] 40 0 40 +[ 3 0 1 ] 41 0 41 +[ 3 0 1 ] 42 0 42 +[ 3 0 1 ] 43 0 43 +[ 3 1 0 ] 44 0 44 +[ 3 1 0 ] 45 0 45 +[ 3 1 0 ] 46 0 46 +[ 3 1 0 ] 47 0 47 +[ 3 1 1 ] 48 0 48 +[ 3 1 1 ] 49 0 49 +[ 3 1 1 ] 50 0 50 +[ 3 1 1 ] 51 0 51 +[ 3 2 0 ] 52 0 52 +[ 3 2 0 ] 53 0 53 +[ 3 2 0 ] 54 0 54 +[ 3 2 0 ] 55 0 55 +[ 3 2 1 ] 56 0 56 +[ 3 2 1 ] 57 0 57 +[ 3 2 1 ] 58 0 58 +[ 3 2 1 ] 59 0 59 +59 differences found +-------------------------------- +Some objects are not comparable +-------------------------------- +Use -c for a list of objects. +EXIT CODE: 1 diff --git a/tools/h5diff/testfiles/h5diff_703.txt b/tools/h5diff/testfiles/h5diff_703.txt new file mode 100644 index 0000000..3b3e5b6 --- /dev/null +++ b/tools/h5diff/testfiles/h5diff_703.txt @@ -0,0 +1,2137 @@ + +file1 file2 +--------------------------------------- + x x / + x x /dset + x x /g1 + + +group : </> and </> +0 differences found + obj1 obj2 + -------------------------------------- + x x VLstring + x x VLstring2D + x x VLstring3D + x x array + x x array2D + x x array3D + x x bitfield + x x bitfield2D + x x bitfield3D + x x compound + x x compound2D + x x compound3D + x x enum + x x enum2D + x x enum3D + x x float + x x float2D + x x float3D + x x integer + x x integer2D + x x integer3D + x x opaque + x x opaque2D + x x opaque3D + x x string + x x string2D + x x string3D + x x vlen + x x vlen2D + x x vlen3D +Attributes status: 30 common, 0 only in obj1, 0 only in obj2 +attribute: <VLstring of </>> and <VLstring of </>> +size: [2] [2] +position VLstring of </> VLstring of </> difference +------------------------------------------------------------ +[ 0 ] a z +[ 0 ] b z +[ 1 ] d z +[ 1 ] e z +4 differences found +attribute: <VLstring2D of </>> and <VLstring2D of </>> +size: [3x2] [3x2] +position VLstring2D of </> VLstring2D of </> difference +------------------------------------------------------------ +[ 0 0 ] a z +[ 0 0 ] b z +[ 0 1 ] c z +[ 0 1 ] d z +[ 1 0 ] e z +[ 1 0 ] f z +[ 1 1 ] g z +[ 1 1 ] h z +[ 2 0 ] i z +[ 2 0 ] j z +[ 2 1 ] k z +[ 2 1 ] l z +12 differences found +attribute: <VLstring3D of </>> and <VLstring3D of </>> +size: [4x3x2] [4x3x2] +position VLstring3D of </> VLstring3D of </> difference +------------------------------------------------------------ +[ 0 0 0 ] a z +[ 0 0 0 ] b z +[ 0 0 1 ] c z +[ 0 0 1 ] d z +[ 0 1 0 ] e z +[ 0 1 0 ] f z +[ 0 1 1 ] g z +[ 0 1 1 ] h z +[ 0 2 0 ] i z +[ 0 2 0 ] j z +[ 0 2 1 ] k z +[ 0 2 1 ] l z +[ 1 0 0 ] m z +[ 1 0 0 ] n z +[ 1 0 1 ] p z +[ 1 0 1 ] q z +[ 1 1 0 ] r z +[ 1 1 0 ] s z +[ 1 1 1 ] t z +[ 1 1 1 ] u z +[ 1 2 0 ] v z +[ 1 2 0 ] w z +[ 1 2 1 ] x z +[ 2 0 0 ] A z +[ 2 0 0 ] B z +[ 2 0 1 ] C z +[ 2 0 1 ] D z +[ 2 1 0 ] E z +[ 2 1 0 ] F z +[ 2 1 1 ] G z +[ 2 1 1 ] H z +[ 2 2 0 ] I z +[ 2 2 0 ] J z +[ 2 2 1 ] K z +[ 2 2 1 ] L z +[ 3 0 0 ] M z +[ 3 0 0 ] N z +[ 3 0 1 ] P z +[ 3 0 1 ] Q z +[ 3 1 0 ] R z +[ 3 1 0 ] S z +[ 3 1 1 ] T z +[ 3 1 1 ] U z +[ 3 2 0 ] V z +[ 3 2 0 ] W z +[ 3 2 1 ] X z +[ 3 2 1 ] Z z +47 differences found +attribute: <array of </>> and <array of </>> +size: [2] [2] +position array of </> array of </> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 0 ] 2 0 2 +[ 0 ] 3 0 3 +[ 1 ] 4 0 4 +[ 1 ] 5 0 5 +[ 1 ] 6 0 6 +6 differences found +attribute: <array2D of </>> and <array2D of </>> +size: [3x2] [3x2] +position array2D of </> array2D of </> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 0 ] 2 0 2 +[ 0 0 ] 3 0 3 +[ 0 1 ] 4 0 4 +[ 0 1 ] 5 0 5 +[ 0 1 ] 6 0 6 +[ 1 0 ] 7 0 7 +[ 1 0 ] 8 0 8 +[ 1 0 ] 9 0 9 +[ 1 1 ] 10 0 10 +[ 1 1 ] 11 0 11 +[ 1 1 ] 12 0 12 +[ 2 0 ] 13 0 13 +[ 2 0 ] 14 0 14 +[ 2 0 ] 15 0 15 +[ 2 1 ] 16 0 16 +[ 2 1 ] 17 0 17 +[ 2 1 ] 18 0 18 +18 differences found +attribute: <array3D of </>> and <array3D of </>> +size: [4x3x2] [4x3x2] +position array3D of </> array3D of </> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 0 ] 2 0 2 +[ 0 0 0 ] 3 0 3 +[ 0 0 1 ] 4 0 4 +[ 0 0 1 ] 5 0 5 +[ 0 0 1 ] 6 0 6 +[ 0 1 0 ] 7 0 7 +[ 0 1 0 ] 8 0 8 +[ 0 1 0 ] 9 0 9 +[ 0 1 1 ] 10 0 10 +[ 0 1 1 ] 11 0 11 +[ 0 1 1 ] 12 0 12 +[ 0 2 0 ] 13 0 13 +[ 0 2 0 ] 14 0 14 +[ 0 2 0 ] 15 0 15 +[ 0 2 1 ] 16 0 16 +[ 0 2 1 ] 17 0 17 +[ 0 2 1 ] 18 0 18 +[ 1 0 0 ] 19 0 19 +[ 1 0 0 ] 20 0 20 +[ 1 0 0 ] 21 0 21 +[ 1 0 1 ] 22 0 22 +[ 1 0 1 ] 23 0 23 +[ 1 0 1 ] 24 0 24 +[ 1 1 0 ] 25 0 25 +[ 1 1 0 ] 26 0 26 +[ 1 1 0 ] 27 0 27 +[ 1 1 1 ] 28 0 28 +[ 1 1 1 ] 29 0 29 +[ 1 1 1 ] 30 0 30 +[ 1 2 0 ] 31 0 31 +[ 1 2 0 ] 32 0 32 +[ 1 2 0 ] 33 0 33 +[ 1 2 1 ] 34 0 34 +[ 1 2 1 ] 35 0 35 +[ 1 2 1 ] 36 0 36 +[ 2 0 0 ] 37 0 37 +[ 2 0 0 ] 38 0 38 +[ 2 0 0 ] 39 0 39 +[ 2 0 1 ] 40 0 40 +[ 2 0 1 ] 41 0 41 +[ 2 0 1 ] 42 0 42 +[ 2 1 0 ] 43 0 43 +[ 2 1 0 ] 44 0 44 +[ 2 1 0 ] 45 0 45 +[ 2 1 1 ] 46 0 46 +[ 2 1 1 ] 47 0 47 +[ 2 1 1 ] 48 0 48 +[ 2 2 0 ] 49 0 49 +[ 2 2 0 ] 50 0 50 +[ 2 2 0 ] 51 0 51 +[ 2 2 1 ] 52 0 52 +[ 2 2 1 ] 53 0 53 +[ 2 2 1 ] 54 0 54 +[ 3 0 0 ] 55 0 55 +[ 3 0 0 ] 56 0 56 +[ 3 0 0 ] 57 0 57 +[ 3 0 1 ] 58 0 58 +[ 3 0 1 ] 59 0 59 +[ 3 0 1 ] 60 0 60 +[ 3 1 0 ] 61 0 61 +[ 3 1 0 ] 62 0 62 +[ 3 1 0 ] 63 0 63 +[ 3 1 1 ] 64 0 64 +[ 3 1 1 ] 65 0 65 +[ 3 1 1 ] 66 0 66 +[ 3 2 0 ] 67 0 67 +[ 3 2 0 ] 68 0 68 +[ 3 2 0 ] 69 0 69 +[ 3 2 1 ] 70 0 70 +[ 3 2 1 ] 71 0 71 +[ 3 2 1 ] 72 0 72 +72 differences found +attribute: <bitfield of </>> and <bitfield of </>> +size: [2] [2] +position bitfield of </> bitfield of </> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <bitfield2D of </>> and <bitfield2D of </>> +size: [3x2] [3x2] +position bitfield2D of </> bitfield2D of </> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <bitfield3D of </>> and <bitfield3D of </>> +size: [4x3x2] [4x3x2] +position bitfield3D of </> bitfield3D of </> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 1 ] 2 0 2 +[ 0 1 0 ] 3 0 3 +[ 0 1 1 ] 4 0 4 +[ 0 2 0 ] 5 0 5 +[ 0 2 1 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 1 0 ] 9 0 9 +[ 1 1 1 ] 10 0 10 +[ 1 2 0 ] 11 0 11 +[ 1 2 1 ] 12 0 12 +[ 2 0 0 ] 13 0 13 +[ 2 0 1 ] 14 0 14 +[ 2 1 0 ] 15 0 15 +[ 2 1 1 ] 16 0 16 +[ 2 2 0 ] 17 0 17 +[ 2 2 1 ] 18 0 18 +[ 3 0 0 ] 19 0 19 +[ 3 0 1 ] 20 0 20 +[ 3 1 0 ] 21 0 21 +[ 3 1 1 ] 22 0 22 +[ 3 2 0 ] 23 0 23 +[ 3 2 1 ] 24 0 24 +24 differences found +attribute: <compound of </>> and <compound of </>> +size: [2] [2] +position compound of </> compound of </> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 0 ] 2 0 2 +[ 1 ] 3 0 3 +[ 1 ] 4 0 4 +4 differences found +attribute: <compound2D of </>> and <compound2D of </>> +size: [3x2] [3x2] +position compound2D of </> compound2D of </> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 0 ] 2 0 2 +[ 0 1 ] 3 0 3 +[ 0 1 ] 4 0 4 +[ 1 0 ] 5 0 5 +[ 1 0 ] 6 0 6 +[ 1 1 ] 7 0 7 +[ 1 1 ] 8 0 8 +[ 2 0 ] 9 0 9 +[ 2 0 ] 10 0 10 +[ 2 1 ] 11 0 11 +[ 2 1 ] 12 0 12 +12 differences found +attribute: <compound3D of </>> and <compound3D of </>> +size: [4x3x2] [4x3x2] +position compound3D of </> compound3D of </> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 0 ] 2 0 2 +[ 0 0 1 ] 3 0 3 +[ 0 0 1 ] 4 0 4 +[ 0 1 0 ] 5 0 5 +[ 0 1 0 ] 6 0 6 +[ 0 1 1 ] 7 0 7 +[ 0 1 1 ] 8 0 8 +[ 0 2 0 ] 9 0 9 +[ 0 2 0 ] 10 0 10 +[ 0 2 1 ] 11 0 11 +[ 0 2 1 ] 12 0 12 +[ 1 0 0 ] 13 0 13 +[ 1 0 0 ] 14 0 14 +[ 1 0 1 ] 15 0 15 +[ 1 0 1 ] 16 0 16 +[ 1 1 0 ] 17 0 17 +[ 1 1 0 ] 18 0 18 +[ 1 1 1 ] 19 0 19 +[ 1 1 1 ] 20 0 20 +[ 1 2 0 ] 21 0 21 +[ 1 2 0 ] 22 0 22 +[ 1 2 1 ] 23 0 23 +[ 1 2 1 ] 24 0 24 +[ 2 0 0 ] 25 0 25 +[ 2 0 0 ] 26 0 26 +[ 2 0 1 ] 27 0 27 +[ 2 0 1 ] 28 0 28 +[ 2 1 0 ] 29 0 29 +[ 2 1 0 ] 30 0 30 +[ 2 1 1 ] 31 0 31 +[ 2 1 1 ] 32 0 32 +[ 2 2 0 ] 33 0 33 +[ 2 2 0 ] 34 0 34 +[ 2 2 1 ] 35 0 35 +[ 2 2 1 ] 36 0 36 +[ 3 0 0 ] 37 0 37 +[ 3 0 0 ] 38 0 38 +[ 3 0 1 ] 39 0 39 +[ 3 0 1 ] 40 0 40 +[ 3 1 0 ] 41 0 41 +[ 3 1 0 ] 42 0 42 +[ 3 1 1 ] 43 0 43 +[ 3 1 1 ] 44 0 44 +[ 3 2 0 ] 45 0 45 +[ 3 2 0 ] 46 0 46 +[ 3 2 1 ] 47 0 47 +[ 3 2 1 ] 48 0 48 +48 differences found +attribute: <enum of </>> and <enum of </>> +size: [2] [2] +position enum of </> enum of </> difference +------------------------------------------------------------ +[ 0 ] RED GREEN +[ 1 ] RED GREEN +2 differences found +attribute: <enum2D of </>> and <enum2D of </>> +size: [3x2] [3x2] +position enum2D of </> enum2D of </> difference +------------------------------------------------------------ +[ 0 0 ] RED GREEN +[ 0 1 ] RED GREEN +[ 1 0 ] RED GREEN +[ 1 1 ] RED GREEN +[ 2 0 ] RED GREEN +[ 2 1 ] RED GREEN +6 differences found +attribute: <enum3D of </>> and <enum3D of </>> +size: [4x3x2] [4x3x2] +position enum3D of </> enum3D of </> difference +------------------------------------------------------------ +[ 0 0 0 ] GREEN RED +[ 0 0 1 ] GREEN RED +[ 0 1 0 ] GREEN RED +[ 0 1 1 ] GREEN RED +[ 0 2 0 ] GREEN RED +[ 0 2 1 ] GREEN RED +[ 1 0 0 ] GREEN RED +[ 1 0 1 ] GREEN RED +[ 1 1 0 ] GREEN RED +[ 1 1 1 ] GREEN RED +[ 1 2 0 ] GREEN RED +[ 1 2 1 ] GREEN RED +[ 2 0 0 ] GREEN RED +[ 2 0 1 ] GREEN RED +[ 2 1 0 ] GREEN RED +[ 2 1 1 ] GREEN RED +[ 2 2 0 ] GREEN RED +[ 2 2 1 ] GREEN RED +[ 3 0 0 ] GREEN RED +[ 3 0 1 ] GREEN RED +[ 3 1 0 ] GREEN RED +[ 3 1 1 ] GREEN RED +[ 3 2 0 ] GREEN RED +[ 3 2 1 ] GREEN RED +24 differences found +attribute: <float of </>> and <float of </>> +size: [2] [2] +position float of </> float of </> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <float2D of </>> and <float2D of </>> +size: [3x2] [3x2] +position float2D of </> float2D of </> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <float3D of </>> and <float3D of </>> +size: [4x3x2] [4x3x2] +position float3D of </> float3D of </> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 1 ] 2 0 2 +[ 0 1 0 ] 3 0 3 +[ 0 1 1 ] 4 0 4 +[ 0 2 0 ] 5 0 5 +[ 0 2 1 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 1 0 ] 9 0 9 +[ 1 1 1 ] 10 0 10 +[ 1 2 0 ] 11 0 11 +[ 1 2 1 ] 12 0 12 +[ 2 0 0 ] 13 0 13 +[ 2 0 1 ] 14 0 14 +[ 2 1 0 ] 15 0 15 +[ 2 1 1 ] 16 0 16 +[ 2 2 0 ] 17 0 17 +[ 2 2 1 ] 18 0 18 +[ 3 0 0 ] 19 0 19 +[ 3 0 1 ] 20 0 20 +[ 3 1 0 ] 21 0 21 +[ 3 1 1 ] 22 0 22 +[ 3 2 0 ] 23 0 23 +[ 3 2 1 ] 24 0 24 +24 differences found +attribute: <integer of </>> and <integer of </>> +size: [2] [2] +position integer of </> integer of </> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <integer2D of </>> and <integer2D of </>> +size: [3x2] [3x2] +position integer2D of </> integer2D of </> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <integer3D of </>> and <integer3D of </>> +size: [4x3x2] [4x3x2] +position integer3D of </> integer3D of </> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 1 ] 2 0 2 +[ 0 1 0 ] 3 0 3 +[ 0 1 1 ] 4 0 4 +[ 0 2 0 ] 5 0 5 +[ 0 2 1 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 1 0 ] 9 0 9 +[ 1 1 1 ] 10 0 10 +[ 1 2 0 ] 11 0 11 +[ 1 2 1 ] 12 0 12 +[ 2 0 0 ] 13 0 13 +[ 2 0 1 ] 14 0 14 +[ 2 1 0 ] 15 0 15 +[ 2 1 1 ] 16 0 16 +[ 2 2 0 ] 17 0 17 +[ 2 2 1 ] 18 0 18 +[ 3 0 0 ] 19 0 19 +[ 3 0 1 ] 20 0 20 +[ 3 1 0 ] 21 0 21 +[ 3 1 1 ] 22 0 22 +[ 3 2 0 ] 23 0 23 +[ 3 2 1 ] 24 0 24 +24 differences found +attribute: <opaque of </>> and <opaque of </>> +size: [2] [2] +position opaque of </> opaque of </> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <opaque2D of </>> and <opaque2D of </>> +size: [3x2] [3x2] +position opaque2D of </> opaque2D of </> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <opaque3D of </>> and <opaque3D of </>> +size: [4x3x2] [4x3x2] +position opaque3D of </> opaque3D of </> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 1 ] 2 0 2 +[ 0 1 0 ] 3 0 3 +[ 0 1 1 ] 4 0 4 +[ 0 2 0 ] 5 0 5 +[ 0 2 1 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 1 0 ] 9 0 9 +[ 1 1 1 ] 10 0 10 +[ 1 2 0 ] 11 0 11 +[ 1 2 1 ] 12 0 12 +[ 2 0 0 ] 13 0 13 +[ 2 0 1 ] 14 0 14 +[ 2 1 0 ] 15 0 15 +[ 2 1 1 ] 16 0 16 +[ 2 2 0 ] 17 0 17 +[ 2 2 1 ] 18 0 18 +[ 3 0 0 ] 19 0 19 +[ 3 0 1 ] 20 0 20 +[ 3 1 0 ] 21 0 21 +[ 3 1 1 ] 22 0 22 +[ 3 2 0 ] 23 0 23 +[ 3 2 1 ] 24 0 24 +24 differences found +attribute: <string of </>> and <string of </>> +size: [2] [2] +position string of </> string of </> difference +------------------------------------------------------------ +[ 0 ] a z +[ 0 ] b z +[ 1 ] d z +[ 1 ] e z +4 differences found +attribute: <string2D of </>> and <string2D of </>> +size: [3x2] [3x2] +position string2D of </> string2D of </> difference +------------------------------------------------------------ +[ 0 0 ] a z +[ 0 0 ] b z +[ 0 1 ] c z +[ 0 1 ] d z +[ 1 0 ] e z +[ 1 0 ] f z +[ 1 1 ] g z +[ 1 1 ] h z +[ 2 0 ] i z +[ 2 0 ] j z +[ 2 1 ] k z +[ 2 1 ] l z +12 differences found +attribute: <string3D of </>> and <string3D of </>> +size: [4x3x2] [4x3x2] +position string3D of </> string3D of </> difference +------------------------------------------------------------ +[ 0 0 0 ] a z +[ 0 0 0 ] b z +[ 0 0 1 ] c z +[ 0 0 1 ] d z +[ 0 1 0 ] e z +[ 0 1 0 ] f z +[ 0 1 1 ] g z +[ 0 1 1 ] h z +[ 0 2 0 ] i z +[ 0 2 0 ] j z +[ 0 2 1 ] k z +[ 0 2 1 ] l z +[ 1 0 0 ] m z +[ 1 0 0 ] n z +[ 1 0 1 ] p z +[ 1 0 1 ] q z +[ 1 1 0 ] r z +[ 1 1 0 ] s z +[ 1 1 1 ] t z +[ 1 1 1 ] u z +[ 1 2 0 ] v z +[ 1 2 0 ] w z +[ 1 2 1 ] x z +[ 2 0 0 ] A z +[ 2 0 0 ] B z +[ 2 0 1 ] C z +[ 2 0 1 ] D z +[ 2 1 0 ] E z +[ 2 1 0 ] F z +[ 2 1 1 ] G z +[ 2 1 1 ] H z +[ 2 2 0 ] I z +[ 2 2 0 ] J z +[ 2 2 1 ] K z +[ 2 2 1 ] L z +[ 3 0 0 ] M z +[ 3 0 0 ] N z +[ 3 0 1 ] P z +[ 3 0 1 ] Q z +[ 3 1 0 ] R z +[ 3 1 0 ] S z +[ 3 1 1 ] T z +[ 3 1 1 ] U z +[ 3 2 0 ] V z +[ 3 2 0 ] W z +[ 3 2 1 ] X z +[ 3 2 1 ] Z z +47 differences found +attribute: <vlen of </>> and <vlen of </>> +size: [2] [2] +position vlen of </> vlen of </> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +[ 1 ] 3 0 3 +3 differences found +attribute: <vlen2D of </>> and <vlen2D of </>> +size: [3x2] [3x2] +position vlen2D of </> vlen2D of </> difference +------------------------------------------------------------ +[ 0 1 ] 1 0 1 +[ 1 0 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 1 1 ] 5 0 5 +[ 2 0 ] 6 0 6 +[ 2 0 ] 7 0 7 +[ 2 0 ] 8 0 8 +[ 2 1 ] 9 0 9 +[ 2 1 ] 10 0 10 +[ 2 1 ] 11 0 11 +11 differences found +attribute: <vlen3D of </>> and <vlen3D of </>> +size: [4x3x2] [4x3x2] +position vlen3D of </> vlen3D of </> difference +------------------------------------------------------------ +[ 0 0 1 ] 1 0 1 +[ 0 1 0 ] 2 0 2 +[ 0 1 1 ] 3 0 3 +[ 0 2 0 ] 4 0 4 +[ 0 2 1 ] 5 0 5 +[ 1 0 0 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 0 1 ] 9 0 9 +[ 1 1 0 ] 10 0 10 +[ 1 1 0 ] 11 0 11 +[ 1 1 1 ] 12 0 12 +[ 1 1 1 ] 13 0 13 +[ 1 2 0 ] 14 0 14 +[ 1 2 0 ] 15 0 15 +[ 1 2 1 ] 16 0 16 +[ 1 2 1 ] 17 0 17 +[ 2 0 0 ] 18 0 18 +[ 2 0 0 ] 19 0 19 +[ 2 0 0 ] 20 0 20 +[ 2 0 1 ] 21 0 21 +[ 2 0 1 ] 22 0 22 +[ 2 0 1 ] 23 0 23 +[ 2 1 0 ] 24 0 24 +[ 2 1 0 ] 25 0 25 +[ 2 1 0 ] 26 0 26 +[ 2 1 1 ] 27 0 27 +[ 2 1 1 ] 28 0 28 +[ 2 1 1 ] 29 0 29 +[ 2 2 0 ] 30 0 30 +[ 2 2 0 ] 31 0 31 +[ 2 2 0 ] 32 0 32 +[ 2 2 1 ] 33 0 33 +[ 2 2 1 ] 34 0 34 +[ 2 2 1 ] 35 0 35 +[ 3 0 0 ] 36 0 36 +[ 3 0 0 ] 37 0 37 +[ 3 0 0 ] 38 0 38 +[ 3 0 0 ] 39 0 39 +[ 3 0 1 ] 40 0 40 +[ 3 0 1 ] 41 0 41 +[ 3 0 1 ] 42 0 42 +[ 3 0 1 ] 43 0 43 +[ 3 1 0 ] 44 0 44 +[ 3 1 0 ] 45 0 45 +[ 3 1 0 ] 46 0 46 +[ 3 1 0 ] 47 0 47 +[ 3 1 1 ] 48 0 48 +[ 3 1 1 ] 49 0 49 +[ 3 1 1 ] 50 0 50 +[ 3 1 1 ] 51 0 51 +[ 3 2 0 ] 52 0 52 +[ 3 2 0 ] 53 0 53 +[ 3 2 0 ] 54 0 54 +[ 3 2 0 ] 55 0 55 +[ 3 2 1 ] 56 0 56 +[ 3 2 1 ] 57 0 57 +[ 3 2 1 ] 58 0 58 +[ 3 2 1 ] 59 0 59 +59 differences found + +dataset: </dset> and </dset> +Not comparable: </dset> or </dset> is an empty dataset + obj1 obj2 + -------------------------------------- + x x VLstring + x x VLstring2D + x x VLstring3D + x x array + x x array2D + x x array3D + x x bitfield + x x bitfield2D + x x bitfield3D + x x compound + x x compound2D + x x compound3D + x x enum + x x enum2D + x x enum3D + x x float + x x float2D + x x float3D + x x integer + x x integer2D + x x integer3D + x x opaque + x x opaque2D + x x opaque3D + x x reference + x x reference2D + x x reference3D + x x string + x x string2D + x x string3D + x x vlen + x x vlen2D + x x vlen3D +Attributes status: 33 common, 0 only in obj1, 0 only in obj2 +attribute: <VLstring of </dset>> and <VLstring of </dset>> +size: [2] [2] +position VLstring of </dset> VLstring of </dset> difference +------------------------------------------------------------ +[ 0 ] a z +[ 0 ] b z +[ 1 ] d z +[ 1 ] e z +4 differences found +attribute: <VLstring2D of </dset>> and <VLstring2D of </dset>> +size: [3x2] [3x2] +position VLstring2D of </dset> VLstring2D of </dset> difference +------------------------------------------------------------ +[ 0 0 ] a z +[ 0 0 ] b z +[ 0 1 ] c z +[ 0 1 ] d z +[ 1 0 ] e z +[ 1 0 ] f z +[ 1 1 ] g z +[ 1 1 ] h z +[ 2 0 ] i z +[ 2 0 ] j z +[ 2 1 ] k z +[ 2 1 ] l z +12 differences found +attribute: <VLstring3D of </dset>> and <VLstring3D of </dset>> +size: [4x3x2] [4x3x2] +position VLstring3D of </dset> VLstring3D of </dset> difference +------------------------------------------------------------ +[ 0 0 0 ] a z +[ 0 0 0 ] b z +[ 0 0 1 ] c z +[ 0 0 1 ] d z +[ 0 1 0 ] e z +[ 0 1 0 ] f z +[ 0 1 1 ] g z +[ 0 1 1 ] h z +[ 0 2 0 ] i z +[ 0 2 0 ] j z +[ 0 2 1 ] k z +[ 0 2 1 ] l z +[ 1 0 0 ] m z +[ 1 0 0 ] n z +[ 1 0 1 ] p z +[ 1 0 1 ] q z +[ 1 1 0 ] r z +[ 1 1 0 ] s z +[ 1 1 1 ] t z +[ 1 1 1 ] u z +[ 1 2 0 ] v z +[ 1 2 0 ] w z +[ 1 2 1 ] x z +[ 2 0 0 ] A z +[ 2 0 0 ] B z +[ 2 0 1 ] C z +[ 2 0 1 ] D z +[ 2 1 0 ] E z +[ 2 1 0 ] F z +[ 2 1 1 ] G z +[ 2 1 1 ] H z +[ 2 2 0 ] I z +[ 2 2 0 ] J z +[ 2 2 1 ] K z +[ 2 2 1 ] L z +[ 3 0 0 ] M z +[ 3 0 0 ] N z +[ 3 0 1 ] P z +[ 3 0 1 ] Q z +[ 3 1 0 ] R z +[ 3 1 0 ] S z +[ 3 1 1 ] T z +[ 3 1 1 ] U z +[ 3 2 0 ] V z +[ 3 2 0 ] W z +[ 3 2 1 ] X z +[ 3 2 1 ] Z z +47 differences found +attribute: <array of </dset>> and <array of </dset>> +size: [2] [2] +position array of </dset> array of </dset> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 0 ] 2 0 2 +[ 0 ] 3 0 3 +[ 1 ] 4 0 4 +[ 1 ] 5 0 5 +[ 1 ] 6 0 6 +6 differences found +attribute: <array2D of </dset>> and <array2D of </dset>> +size: [3x2] [3x2] +position array2D of </dset> array2D of </dset> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 0 ] 2 0 2 +[ 0 0 ] 3 0 3 +[ 0 1 ] 4 0 4 +[ 0 1 ] 5 0 5 +[ 0 1 ] 6 0 6 +[ 1 0 ] 7 0 7 +[ 1 0 ] 8 0 8 +[ 1 0 ] 9 0 9 +[ 1 1 ] 10 0 10 +[ 1 1 ] 11 0 11 +[ 1 1 ] 12 0 12 +[ 2 0 ] 13 0 13 +[ 2 0 ] 14 0 14 +[ 2 0 ] 15 0 15 +[ 2 1 ] 16 0 16 +[ 2 1 ] 17 0 17 +[ 2 1 ] 18 0 18 +18 differences found +attribute: <array3D of </dset>> and <array3D of </dset>> +size: [4x3x2] [4x3x2] +position array3D of </dset> array3D of </dset> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 0 ] 2 0 2 +[ 0 0 0 ] 3 0 3 +[ 0 0 1 ] 4 0 4 +[ 0 0 1 ] 5 0 5 +[ 0 0 1 ] 6 0 6 +[ 0 1 0 ] 7 0 7 +[ 0 1 0 ] 8 0 8 +[ 0 1 0 ] 9 0 9 +[ 0 1 1 ] 10 0 10 +[ 0 1 1 ] 11 0 11 +[ 0 1 1 ] 12 0 12 +[ 0 2 0 ] 13 0 13 +[ 0 2 0 ] 14 0 14 +[ 0 2 0 ] 15 0 15 +[ 0 2 1 ] 16 0 16 +[ 0 2 1 ] 17 0 17 +[ 0 2 1 ] 18 0 18 +[ 1 0 0 ] 19 0 19 +[ 1 0 0 ] 20 0 20 +[ 1 0 0 ] 21 0 21 +[ 1 0 1 ] 22 0 22 +[ 1 0 1 ] 23 0 23 +[ 1 0 1 ] 24 0 24 +[ 1 1 0 ] 25 0 25 +[ 1 1 0 ] 26 0 26 +[ 1 1 0 ] 27 0 27 +[ 1 1 1 ] 28 0 28 +[ 1 1 1 ] 29 0 29 +[ 1 1 1 ] 30 0 30 +[ 1 2 0 ] 31 0 31 +[ 1 2 0 ] 32 0 32 +[ 1 2 0 ] 33 0 33 +[ 1 2 1 ] 34 0 34 +[ 1 2 1 ] 35 0 35 +[ 1 2 1 ] 36 0 36 +[ 2 0 0 ] 37 0 37 +[ 2 0 0 ] 38 0 38 +[ 2 0 0 ] 39 0 39 +[ 2 0 1 ] 40 0 40 +[ 2 0 1 ] 41 0 41 +[ 2 0 1 ] 42 0 42 +[ 2 1 0 ] 43 0 43 +[ 2 1 0 ] 44 0 44 +[ 2 1 0 ] 45 0 45 +[ 2 1 1 ] 46 0 46 +[ 2 1 1 ] 47 0 47 +[ 2 1 1 ] 48 0 48 +[ 2 2 0 ] 49 0 49 +[ 2 2 0 ] 50 0 50 +[ 2 2 0 ] 51 0 51 +[ 2 2 1 ] 52 0 52 +[ 2 2 1 ] 53 0 53 +[ 2 2 1 ] 54 0 54 +[ 3 0 0 ] 55 0 55 +[ 3 0 0 ] 56 0 56 +[ 3 0 0 ] 57 0 57 +[ 3 0 1 ] 58 0 58 +[ 3 0 1 ] 59 0 59 +[ 3 0 1 ] 60 0 60 +[ 3 1 0 ] 61 0 61 +[ 3 1 0 ] 62 0 62 +[ 3 1 0 ] 63 0 63 +[ 3 1 1 ] 64 0 64 +[ 3 1 1 ] 65 0 65 +[ 3 1 1 ] 66 0 66 +[ 3 2 0 ] 67 0 67 +[ 3 2 0 ] 68 0 68 +[ 3 2 0 ] 69 0 69 +[ 3 2 1 ] 70 0 70 +[ 3 2 1 ] 71 0 71 +[ 3 2 1 ] 72 0 72 +72 differences found +attribute: <bitfield of </dset>> and <bitfield of </dset>> +size: [2] [2] +position bitfield of </dset> bitfield of </dset> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <bitfield2D of </dset>> and <bitfield2D of </dset>> +size: [3x2] [3x2] +position bitfield2D of </dset> bitfield2D of </dset> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <bitfield3D of </dset>> and <bitfield3D of </dset>> +size: [4x3x2] [4x3x2] +position bitfield3D of </dset> bitfield3D of </dset> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 1 ] 2 0 2 +[ 0 1 0 ] 3 0 3 +[ 0 1 1 ] 4 0 4 +[ 0 2 0 ] 5 0 5 +[ 0 2 1 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 1 0 ] 9 0 9 +[ 1 1 1 ] 10 0 10 +[ 1 2 0 ] 11 0 11 +[ 1 2 1 ] 12 0 12 +[ 2 0 0 ] 13 0 13 +[ 2 0 1 ] 14 0 14 +[ 2 1 0 ] 15 0 15 +[ 2 1 1 ] 16 0 16 +[ 2 2 0 ] 17 0 17 +[ 2 2 1 ] 18 0 18 +[ 3 0 0 ] 19 0 19 +[ 3 0 1 ] 20 0 20 +[ 3 1 0 ] 21 0 21 +[ 3 1 1 ] 22 0 22 +[ 3 2 0 ] 23 0 23 +[ 3 2 1 ] 24 0 24 +24 differences found +attribute: <compound of </dset>> and <compound of </dset>> +size: [2] [2] +position compound of </dset> compound of </dset> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 0 ] 2 0 2 +[ 1 ] 3 0 3 +[ 1 ] 4 0 4 +4 differences found +attribute: <compound2D of </dset>> and <compound2D of </dset>> +size: [3x2] [3x2] +position compound2D of </dset> compound2D of </dset> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 0 ] 2 0 2 +[ 0 1 ] 3 0 3 +[ 0 1 ] 4 0 4 +[ 1 0 ] 5 0 5 +[ 1 0 ] 6 0 6 +[ 1 1 ] 7 0 7 +[ 1 1 ] 8 0 8 +[ 2 0 ] 9 0 9 +[ 2 0 ] 10 0 10 +[ 2 1 ] 11 0 11 +[ 2 1 ] 12 0 12 +12 differences found +attribute: <compound3D of </dset>> and <compound3D of </dset>> +size: [4x3x2] [4x3x2] +position compound3D of </dset> compound3D of </dset> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 0 ] 2 0 2 +[ 0 0 1 ] 3 0 3 +[ 0 0 1 ] 4 0 4 +[ 0 1 0 ] 5 0 5 +[ 0 1 0 ] 6 0 6 +[ 0 1 1 ] 7 0 7 +[ 0 1 1 ] 8 0 8 +[ 0 2 0 ] 9 0 9 +[ 0 2 0 ] 10 0 10 +[ 0 2 1 ] 11 0 11 +[ 0 2 1 ] 12 0 12 +[ 1 0 0 ] 13 0 13 +[ 1 0 0 ] 14 0 14 +[ 1 0 1 ] 15 0 15 +[ 1 0 1 ] 16 0 16 +[ 1 1 0 ] 17 0 17 +[ 1 1 0 ] 18 0 18 +[ 1 1 1 ] 19 0 19 +[ 1 1 1 ] 20 0 20 +[ 1 2 0 ] 21 0 21 +[ 1 2 0 ] 22 0 22 +[ 1 2 1 ] 23 0 23 +[ 1 2 1 ] 24 0 24 +[ 2 0 0 ] 25 0 25 +[ 2 0 0 ] 26 0 26 +[ 2 0 1 ] 27 0 27 +[ 2 0 1 ] 28 0 28 +[ 2 1 0 ] 29 0 29 +[ 2 1 0 ] 30 0 30 +[ 2 1 1 ] 31 0 31 +[ 2 1 1 ] 32 0 32 +[ 2 2 0 ] 33 0 33 +[ 2 2 0 ] 34 0 34 +[ 2 2 1 ] 35 0 35 +[ 2 2 1 ] 36 0 36 +[ 3 0 0 ] 37 0 37 +[ 3 0 0 ] 38 0 38 +[ 3 0 1 ] 39 0 39 +[ 3 0 1 ] 40 0 40 +[ 3 1 0 ] 41 0 41 +[ 3 1 0 ] 42 0 42 +[ 3 1 1 ] 43 0 43 +[ 3 1 1 ] 44 0 44 +[ 3 2 0 ] 45 0 45 +[ 3 2 0 ] 46 0 46 +[ 3 2 1 ] 47 0 47 +[ 3 2 1 ] 48 0 48 +48 differences found +attribute: <enum of </dset>> and <enum of </dset>> +size: [2] [2] +position enum of </dset> enum of </dset> difference +------------------------------------------------------------ +[ 0 ] RED GREEN +[ 1 ] RED GREEN +2 differences found +attribute: <enum2D of </dset>> and <enum2D of </dset>> +size: [3x2] [3x2] +position enum2D of </dset> enum2D of </dset> difference +------------------------------------------------------------ +[ 0 0 ] RED GREEN +[ 0 1 ] RED GREEN +[ 1 0 ] RED GREEN +[ 1 1 ] RED GREEN +[ 2 0 ] RED GREEN +[ 2 1 ] RED GREEN +6 differences found +attribute: <enum3D of </dset>> and <enum3D of </dset>> +size: [4x3x2] [4x3x2] +position enum3D of </dset> enum3D of </dset> difference +------------------------------------------------------------ +[ 0 0 0 ] GREEN RED +[ 0 0 1 ] GREEN RED +[ 0 1 0 ] GREEN RED +[ 0 1 1 ] GREEN RED +[ 0 2 0 ] GREEN RED +[ 0 2 1 ] GREEN RED +[ 1 0 0 ] GREEN RED +[ 1 0 1 ] GREEN RED +[ 1 1 0 ] GREEN RED +[ 1 1 1 ] GREEN RED +[ 1 2 0 ] GREEN RED +[ 1 2 1 ] GREEN RED +[ 2 0 0 ] GREEN RED +[ 2 0 1 ] GREEN RED +[ 2 1 0 ] GREEN RED +[ 2 1 1 ] GREEN RED +[ 2 2 0 ] GREEN RED +[ 2 2 1 ] GREEN RED +[ 3 0 0 ] GREEN RED +[ 3 0 1 ] GREEN RED +[ 3 1 0 ] GREEN RED +[ 3 1 1 ] GREEN RED +[ 3 2 0 ] GREEN RED +[ 3 2 1 ] GREEN RED +24 differences found +attribute: <float of </dset>> and <float of </dset>> +size: [2] [2] +position float of </dset> float of </dset> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <float2D of </dset>> and <float2D of </dset>> +size: [3x2] [3x2] +position float2D of </dset> float2D of </dset> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <float3D of </dset>> and <float3D of </dset>> +size: [4x3x2] [4x3x2] +position float3D of </dset> float3D of </dset> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 1 ] 2 0 2 +[ 0 1 0 ] 3 0 3 +[ 0 1 1 ] 4 0 4 +[ 0 2 0 ] 5 0 5 +[ 0 2 1 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 1 0 ] 9 0 9 +[ 1 1 1 ] 10 0 10 +[ 1 2 0 ] 11 0 11 +[ 1 2 1 ] 12 0 12 +[ 2 0 0 ] 13 0 13 +[ 2 0 1 ] 14 0 14 +[ 2 1 0 ] 15 0 15 +[ 2 1 1 ] 16 0 16 +[ 2 2 0 ] 17 0 17 +[ 2 2 1 ] 18 0 18 +[ 3 0 0 ] 19 0 19 +[ 3 0 1 ] 20 0 20 +[ 3 1 0 ] 21 0 21 +[ 3 1 1 ] 22 0 22 +[ 3 2 0 ] 23 0 23 +[ 3 2 1 ] 24 0 24 +24 differences found +attribute: <integer of </dset>> and <integer of </dset>> +size: [2] [2] +position integer of </dset> integer of </dset> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <integer2D of </dset>> and <integer2D of </dset>> +size: [3x2] [3x2] +position integer2D of </dset> integer2D of </dset> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <integer3D of </dset>> and <integer3D of </dset>> +size: [4x3x2] [4x3x2] +position integer3D of </dset> integer3D of </dset> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 1 ] 2 0 2 +[ 0 1 0 ] 3 0 3 +[ 0 1 1 ] 4 0 4 +[ 0 2 0 ] 5 0 5 +[ 0 2 1 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 1 0 ] 9 0 9 +[ 1 1 1 ] 10 0 10 +[ 1 2 0 ] 11 0 11 +[ 1 2 1 ] 12 0 12 +[ 2 0 0 ] 13 0 13 +[ 2 0 1 ] 14 0 14 +[ 2 1 0 ] 15 0 15 +[ 2 1 1 ] 16 0 16 +[ 2 2 0 ] 17 0 17 +[ 2 2 1 ] 18 0 18 +[ 3 0 0 ] 19 0 19 +[ 3 0 1 ] 20 0 20 +[ 3 1 0 ] 21 0 21 +[ 3 1 1 ] 22 0 22 +[ 3 2 0 ] 23 0 23 +[ 3 2 1 ] 24 0 24 +24 differences found +attribute: <opaque of </dset>> and <opaque of </dset>> +size: [2] [2] +position opaque of </dset> opaque of </dset> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <opaque2D of </dset>> and <opaque2D of </dset>> +size: [3x2] [3x2] +position opaque2D of </dset> opaque2D of </dset> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <opaque3D of </dset>> and <opaque3D of </dset>> +size: [4x3x2] [4x3x2] +position opaque3D of </dset> opaque3D of </dset> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 1 ] 2 0 2 +[ 0 1 0 ] 3 0 3 +[ 0 1 1 ] 4 0 4 +[ 0 2 0 ] 5 0 5 +[ 0 2 1 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 1 0 ] 9 0 9 +[ 1 1 1 ] 10 0 10 +[ 1 2 0 ] 11 0 11 +[ 1 2 1 ] 12 0 12 +[ 2 0 0 ] 13 0 13 +[ 2 0 1 ] 14 0 14 +[ 2 1 0 ] 15 0 15 +[ 2 1 1 ] 16 0 16 +[ 2 2 0 ] 17 0 17 +[ 2 2 1 ] 18 0 18 +[ 3 0 0 ] 19 0 19 +[ 3 0 1 ] 20 0 20 +[ 3 1 0 ] 21 0 21 +[ 3 1 1 ] 22 0 22 +[ 3 2 0 ] 23 0 23 +[ 3 2 1 ] 24 0 24 +24 differences found +attribute: <reference of </dset>> and <reference of </dset>> +0 differences found +attribute: <reference2D of </dset>> and <reference2D of </dset>> +0 differences found +attribute: <reference3D of </dset>> and <reference3D of </dset>> +0 differences found +attribute: <string of </dset>> and <string of </dset>> +size: [2] [2] +position string of </dset> string of </dset> difference +------------------------------------------------------------ +[ 0 ] a z +[ 0 ] b z +[ 1 ] d z +[ 1 ] e z +4 differences found +attribute: <string2D of </dset>> and <string2D of </dset>> +size: [3x2] [3x2] +position string2D of </dset> string2D of </dset> difference +------------------------------------------------------------ +[ 0 0 ] a z +[ 0 0 ] b z +[ 0 1 ] c z +[ 0 1 ] d z +[ 1 0 ] e z +[ 1 0 ] f z +[ 1 1 ] g z +[ 1 1 ] h z +[ 2 0 ] i z +[ 2 0 ] j z +[ 2 1 ] k z +[ 2 1 ] l z +12 differences found +attribute: <string3D of </dset>> and <string3D of </dset>> +size: [4x3x2] [4x3x2] +position string3D of </dset> string3D of </dset> difference +------------------------------------------------------------ +[ 0 0 0 ] a z +[ 0 0 0 ] b z +[ 0 0 1 ] c z +[ 0 0 1 ] d z +[ 0 1 0 ] e z +[ 0 1 0 ] f z +[ 0 1 1 ] g z +[ 0 1 1 ] h z +[ 0 2 0 ] i z +[ 0 2 0 ] j z +[ 0 2 1 ] k z +[ 0 2 1 ] l z +[ 1 0 0 ] m z +[ 1 0 0 ] n z +[ 1 0 1 ] p z +[ 1 0 1 ] q z +[ 1 1 0 ] r z +[ 1 1 0 ] s z +[ 1 1 1 ] t z +[ 1 1 1 ] u z +[ 1 2 0 ] v z +[ 1 2 0 ] w z +[ 1 2 1 ] x z +[ 2 0 0 ] A z +[ 2 0 0 ] B z +[ 2 0 1 ] C z +[ 2 0 1 ] D z +[ 2 1 0 ] E z +[ 2 1 0 ] F z +[ 2 1 1 ] G z +[ 2 1 1 ] H z +[ 2 2 0 ] I z +[ 2 2 0 ] J z +[ 2 2 1 ] K z +[ 2 2 1 ] L z +[ 3 0 0 ] M z +[ 3 0 0 ] N z +[ 3 0 1 ] P z +[ 3 0 1 ] Q z +[ 3 1 0 ] R z +[ 3 1 0 ] S z +[ 3 1 1 ] T z +[ 3 1 1 ] U z +[ 3 2 0 ] V z +[ 3 2 0 ] W z +[ 3 2 1 ] X z +[ 3 2 1 ] Z z +47 differences found +attribute: <vlen of </dset>> and <vlen of </dset>> +size: [2] [2] +position vlen of </dset> vlen of </dset> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +[ 1 ] 3 0 3 +3 differences found +attribute: <vlen2D of </dset>> and <vlen2D of </dset>> +size: [3x2] [3x2] +position vlen2D of </dset> vlen2D of </dset> difference +------------------------------------------------------------ +[ 0 1 ] 1 0 1 +[ 1 0 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 1 1 ] 5 0 5 +[ 2 0 ] 6 0 6 +[ 2 0 ] 7 0 7 +[ 2 0 ] 8 0 8 +[ 2 1 ] 9 0 9 +[ 2 1 ] 10 0 10 +[ 2 1 ] 11 0 11 +11 differences found +attribute: <vlen3D of </dset>> and <vlen3D of </dset>> +size: [4x3x2] [4x3x2] +position vlen3D of </dset> vlen3D of </dset> difference +------------------------------------------------------------ +[ 0 0 1 ] 1 0 1 +[ 0 1 0 ] 2 0 2 +[ 0 1 1 ] 3 0 3 +[ 0 2 0 ] 4 0 4 +[ 0 2 1 ] 5 0 5 +[ 1 0 0 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 0 1 ] 9 0 9 +[ 1 1 0 ] 10 0 10 +[ 1 1 0 ] 11 0 11 +[ 1 1 1 ] 12 0 12 +[ 1 1 1 ] 13 0 13 +[ 1 2 0 ] 14 0 14 +[ 1 2 0 ] 15 0 15 +[ 1 2 1 ] 16 0 16 +[ 1 2 1 ] 17 0 17 +[ 2 0 0 ] 18 0 18 +[ 2 0 0 ] 19 0 19 +[ 2 0 0 ] 20 0 20 +[ 2 0 1 ] 21 0 21 +[ 2 0 1 ] 22 0 22 +[ 2 0 1 ] 23 0 23 +[ 2 1 0 ] 24 0 24 +[ 2 1 0 ] 25 0 25 +[ 2 1 0 ] 26 0 26 +[ 2 1 1 ] 27 0 27 +[ 2 1 1 ] 28 0 28 +[ 2 1 1 ] 29 0 29 +[ 2 2 0 ] 30 0 30 +[ 2 2 0 ] 31 0 31 +[ 2 2 0 ] 32 0 32 +[ 2 2 1 ] 33 0 33 +[ 2 2 1 ] 34 0 34 +[ 2 2 1 ] 35 0 35 +[ 3 0 0 ] 36 0 36 +[ 3 0 0 ] 37 0 37 +[ 3 0 0 ] 38 0 38 +[ 3 0 0 ] 39 0 39 +[ 3 0 1 ] 40 0 40 +[ 3 0 1 ] 41 0 41 +[ 3 0 1 ] 42 0 42 +[ 3 0 1 ] 43 0 43 +[ 3 1 0 ] 44 0 44 +[ 3 1 0 ] 45 0 45 +[ 3 1 0 ] 46 0 46 +[ 3 1 0 ] 47 0 47 +[ 3 1 1 ] 48 0 48 +[ 3 1 1 ] 49 0 49 +[ 3 1 1 ] 50 0 50 +[ 3 1 1 ] 51 0 51 +[ 3 2 0 ] 52 0 52 +[ 3 2 0 ] 53 0 53 +[ 3 2 0 ] 54 0 54 +[ 3 2 0 ] 55 0 55 +[ 3 2 1 ] 56 0 56 +[ 3 2 1 ] 57 0 57 +[ 3 2 1 ] 58 0 58 +[ 3 2 1 ] 59 0 59 +59 differences found +519 differences found + +group : </g1> and </g1> +0 differences found + obj1 obj2 + -------------------------------------- + x x VLstring + x x VLstring2D + x x VLstring3D + x x array + x x array2D + x x array3D + x x bitfield + x x bitfield2D + x x bitfield3D + x x compound + x x compound2D + x x compound3D + x x enum + x x enum2D + x x enum3D + x x float + x x float2D + x x float3D + x x integer + x x integer2D + x x integer3D + x x opaque + x x opaque2D + x x opaque3D + x x string + x x string2D + x x string3D + x x vlen + x x vlen2D + x x vlen3D +Attributes status: 30 common, 0 only in obj1, 0 only in obj2 +attribute: <VLstring of </g1>> and <VLstring of </g1>> +size: [2] [2] +position VLstring of </g1> VLstring of </g1> difference +------------------------------------------------------------ +[ 0 ] a z +[ 0 ] b z +[ 1 ] d z +[ 1 ] e z +4 differences found +attribute: <VLstring2D of </g1>> and <VLstring2D of </g1>> +size: [3x2] [3x2] +position VLstring2D of </g1> VLstring2D of </g1> difference +------------------------------------------------------------ +[ 0 0 ] a z +[ 0 0 ] b z +[ 0 1 ] c z +[ 0 1 ] d z +[ 1 0 ] e z +[ 1 0 ] f z +[ 1 1 ] g z +[ 1 1 ] h z +[ 2 0 ] i z +[ 2 0 ] j z +[ 2 1 ] k z +[ 2 1 ] l z +12 differences found +attribute: <VLstring3D of </g1>> and <VLstring3D of </g1>> +size: [4x3x2] [4x3x2] +position VLstring3D of </g1> VLstring3D of </g1> difference +------------------------------------------------------------ +[ 0 0 0 ] a z +[ 0 0 0 ] b z +[ 0 0 1 ] c z +[ 0 0 1 ] d z +[ 0 1 0 ] e z +[ 0 1 0 ] f z +[ 0 1 1 ] g z +[ 0 1 1 ] h z +[ 0 2 0 ] i z +[ 0 2 0 ] j z +[ 0 2 1 ] k z +[ 0 2 1 ] l z +[ 1 0 0 ] m z +[ 1 0 0 ] n z +[ 1 0 1 ] p z +[ 1 0 1 ] q z +[ 1 1 0 ] r z +[ 1 1 0 ] s z +[ 1 1 1 ] t z +[ 1 1 1 ] u z +[ 1 2 0 ] v z +[ 1 2 0 ] w z +[ 1 2 1 ] x z +[ 2 0 0 ] A z +[ 2 0 0 ] B z +[ 2 0 1 ] C z +[ 2 0 1 ] D z +[ 2 1 0 ] E z +[ 2 1 0 ] F z +[ 2 1 1 ] G z +[ 2 1 1 ] H z +[ 2 2 0 ] I z +[ 2 2 0 ] J z +[ 2 2 1 ] K z +[ 2 2 1 ] L z +[ 3 0 0 ] M z +[ 3 0 0 ] N z +[ 3 0 1 ] P z +[ 3 0 1 ] Q z +[ 3 1 0 ] R z +[ 3 1 0 ] S z +[ 3 1 1 ] T z +[ 3 1 1 ] U z +[ 3 2 0 ] V z +[ 3 2 0 ] W z +[ 3 2 1 ] X z +[ 3 2 1 ] Z z +47 differences found +attribute: <array of </g1>> and <array of </g1>> +size: [2] [2] +position array of </g1> array of </g1> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 0 ] 2 0 2 +[ 0 ] 3 0 3 +[ 1 ] 4 0 4 +[ 1 ] 5 0 5 +[ 1 ] 6 0 6 +6 differences found +attribute: <array2D of </g1>> and <array2D of </g1>> +size: [3x2] [3x2] +position array2D of </g1> array2D of </g1> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 0 ] 2 0 2 +[ 0 0 ] 3 0 3 +[ 0 1 ] 4 0 4 +[ 0 1 ] 5 0 5 +[ 0 1 ] 6 0 6 +[ 1 0 ] 7 0 7 +[ 1 0 ] 8 0 8 +[ 1 0 ] 9 0 9 +[ 1 1 ] 10 0 10 +[ 1 1 ] 11 0 11 +[ 1 1 ] 12 0 12 +[ 2 0 ] 13 0 13 +[ 2 0 ] 14 0 14 +[ 2 0 ] 15 0 15 +[ 2 1 ] 16 0 16 +[ 2 1 ] 17 0 17 +[ 2 1 ] 18 0 18 +18 differences found +attribute: <array3D of </g1>> and <array3D of </g1>> +size: [4x3x2] [4x3x2] +position array3D of </g1> array3D of </g1> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 0 ] 2 0 2 +[ 0 0 0 ] 3 0 3 +[ 0 0 1 ] 4 0 4 +[ 0 0 1 ] 5 0 5 +[ 0 0 1 ] 6 0 6 +[ 0 1 0 ] 7 0 7 +[ 0 1 0 ] 8 0 8 +[ 0 1 0 ] 9 0 9 +[ 0 1 1 ] 10 0 10 +[ 0 1 1 ] 11 0 11 +[ 0 1 1 ] 12 0 12 +[ 0 2 0 ] 13 0 13 +[ 0 2 0 ] 14 0 14 +[ 0 2 0 ] 15 0 15 +[ 0 2 1 ] 16 0 16 +[ 0 2 1 ] 17 0 17 +[ 0 2 1 ] 18 0 18 +[ 1 0 0 ] 19 0 19 +[ 1 0 0 ] 20 0 20 +[ 1 0 0 ] 21 0 21 +[ 1 0 1 ] 22 0 22 +[ 1 0 1 ] 23 0 23 +[ 1 0 1 ] 24 0 24 +[ 1 1 0 ] 25 0 25 +[ 1 1 0 ] 26 0 26 +[ 1 1 0 ] 27 0 27 +[ 1 1 1 ] 28 0 28 +[ 1 1 1 ] 29 0 29 +[ 1 1 1 ] 30 0 30 +[ 1 2 0 ] 31 0 31 +[ 1 2 0 ] 32 0 32 +[ 1 2 0 ] 33 0 33 +[ 1 2 1 ] 34 0 34 +[ 1 2 1 ] 35 0 35 +[ 1 2 1 ] 36 0 36 +[ 2 0 0 ] 37 0 37 +[ 2 0 0 ] 38 0 38 +[ 2 0 0 ] 39 0 39 +[ 2 0 1 ] 40 0 40 +[ 2 0 1 ] 41 0 41 +[ 2 0 1 ] 42 0 42 +[ 2 1 0 ] 43 0 43 +[ 2 1 0 ] 44 0 44 +[ 2 1 0 ] 45 0 45 +[ 2 1 1 ] 46 0 46 +[ 2 1 1 ] 47 0 47 +[ 2 1 1 ] 48 0 48 +[ 2 2 0 ] 49 0 49 +[ 2 2 0 ] 50 0 50 +[ 2 2 0 ] 51 0 51 +[ 2 2 1 ] 52 0 52 +[ 2 2 1 ] 53 0 53 +[ 2 2 1 ] 54 0 54 +[ 3 0 0 ] 55 0 55 +[ 3 0 0 ] 56 0 56 +[ 3 0 0 ] 57 0 57 +[ 3 0 1 ] 58 0 58 +[ 3 0 1 ] 59 0 59 +[ 3 0 1 ] 60 0 60 +[ 3 1 0 ] 61 0 61 +[ 3 1 0 ] 62 0 62 +[ 3 1 0 ] 63 0 63 +[ 3 1 1 ] 64 0 64 +[ 3 1 1 ] 65 0 65 +[ 3 1 1 ] 66 0 66 +[ 3 2 0 ] 67 0 67 +[ 3 2 0 ] 68 0 68 +[ 3 2 0 ] 69 0 69 +[ 3 2 1 ] 70 0 70 +[ 3 2 1 ] 71 0 71 +[ 3 2 1 ] 72 0 72 +72 differences found +attribute: <bitfield of </g1>> and <bitfield of </g1>> +size: [2] [2] +position bitfield of </g1> bitfield of </g1> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <bitfield2D of </g1>> and <bitfield2D of </g1>> +size: [3x2] [3x2] +position bitfield2D of </g1> bitfield2D of </g1> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <bitfield3D of </g1>> and <bitfield3D of </g1>> +size: [4x3x2] [4x3x2] +position bitfield3D of </g1> bitfield3D of </g1> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 1 ] 2 0 2 +[ 0 1 0 ] 3 0 3 +[ 0 1 1 ] 4 0 4 +[ 0 2 0 ] 5 0 5 +[ 0 2 1 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 1 0 ] 9 0 9 +[ 1 1 1 ] 10 0 10 +[ 1 2 0 ] 11 0 11 +[ 1 2 1 ] 12 0 12 +[ 2 0 0 ] 13 0 13 +[ 2 0 1 ] 14 0 14 +[ 2 1 0 ] 15 0 15 +[ 2 1 1 ] 16 0 16 +[ 2 2 0 ] 17 0 17 +[ 2 2 1 ] 18 0 18 +[ 3 0 0 ] 19 0 19 +[ 3 0 1 ] 20 0 20 +[ 3 1 0 ] 21 0 21 +[ 3 1 1 ] 22 0 22 +[ 3 2 0 ] 23 0 23 +[ 3 2 1 ] 24 0 24 +24 differences found +attribute: <compound of </g1>> and <compound of </g1>> +size: [2] [2] +position compound of </g1> compound of </g1> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 0 ] 2 0 2 +[ 1 ] 3 0 3 +[ 1 ] 4 0 4 +4 differences found +attribute: <compound2D of </g1>> and <compound2D of </g1>> +size: [3x2] [3x2] +position compound2D of </g1> compound2D of </g1> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 0 ] 2 0 2 +[ 0 1 ] 3 0 3 +[ 0 1 ] 4 0 4 +[ 1 0 ] 5 0 5 +[ 1 0 ] 6 0 6 +[ 1 1 ] 7 0 7 +[ 1 1 ] 8 0 8 +[ 2 0 ] 9 0 9 +[ 2 0 ] 10 0 10 +[ 2 1 ] 11 0 11 +[ 2 1 ] 12 0 12 +12 differences found +attribute: <compound3D of </g1>> and <compound3D of </g1>> +size: [4x3x2] [4x3x2] +position compound3D of </g1> compound3D of </g1> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 0 ] 2 0 2 +[ 0 0 1 ] 3 0 3 +[ 0 0 1 ] 4 0 4 +[ 0 1 0 ] 5 0 5 +[ 0 1 0 ] 6 0 6 +[ 0 1 1 ] 7 0 7 +[ 0 1 1 ] 8 0 8 +[ 0 2 0 ] 9 0 9 +[ 0 2 0 ] 10 0 10 +[ 0 2 1 ] 11 0 11 +[ 0 2 1 ] 12 0 12 +[ 1 0 0 ] 13 0 13 +[ 1 0 0 ] 14 0 14 +[ 1 0 1 ] 15 0 15 +[ 1 0 1 ] 16 0 16 +[ 1 1 0 ] 17 0 17 +[ 1 1 0 ] 18 0 18 +[ 1 1 1 ] 19 0 19 +[ 1 1 1 ] 20 0 20 +[ 1 2 0 ] 21 0 21 +[ 1 2 0 ] 22 0 22 +[ 1 2 1 ] 23 0 23 +[ 1 2 1 ] 24 0 24 +[ 2 0 0 ] 25 0 25 +[ 2 0 0 ] 26 0 26 +[ 2 0 1 ] 27 0 27 +[ 2 0 1 ] 28 0 28 +[ 2 1 0 ] 29 0 29 +[ 2 1 0 ] 30 0 30 +[ 2 1 1 ] 31 0 31 +[ 2 1 1 ] 32 0 32 +[ 2 2 0 ] 33 0 33 +[ 2 2 0 ] 34 0 34 +[ 2 2 1 ] 35 0 35 +[ 2 2 1 ] 36 0 36 +[ 3 0 0 ] 37 0 37 +[ 3 0 0 ] 38 0 38 +[ 3 0 1 ] 39 0 39 +[ 3 0 1 ] 40 0 40 +[ 3 1 0 ] 41 0 41 +[ 3 1 0 ] 42 0 42 +[ 3 1 1 ] 43 0 43 +[ 3 1 1 ] 44 0 44 +[ 3 2 0 ] 45 0 45 +[ 3 2 0 ] 46 0 46 +[ 3 2 1 ] 47 0 47 +[ 3 2 1 ] 48 0 48 +48 differences found +attribute: <enum of </g1>> and <enum of </g1>> +size: [2] [2] +position enum of </g1> enum of </g1> difference +------------------------------------------------------------ +[ 0 ] RED GREEN +[ 1 ] RED GREEN +2 differences found +attribute: <enum2D of </g1>> and <enum2D of </g1>> +size: [3x2] [3x2] +position enum2D of </g1> enum2D of </g1> difference +------------------------------------------------------------ +[ 0 0 ] RED GREEN +[ 0 1 ] RED GREEN +[ 1 0 ] RED GREEN +[ 1 1 ] RED GREEN +[ 2 0 ] RED GREEN +[ 2 1 ] RED GREEN +6 differences found +attribute: <enum3D of </g1>> and <enum3D of </g1>> +size: [4x3x2] [4x3x2] +position enum3D of </g1> enum3D of </g1> difference +------------------------------------------------------------ +[ 0 0 0 ] GREEN RED +[ 0 0 1 ] GREEN RED +[ 0 1 0 ] GREEN RED +[ 0 1 1 ] GREEN RED +[ 0 2 0 ] GREEN RED +[ 0 2 1 ] GREEN RED +[ 1 0 0 ] GREEN RED +[ 1 0 1 ] GREEN RED +[ 1 1 0 ] GREEN RED +[ 1 1 1 ] GREEN RED +[ 1 2 0 ] GREEN RED +[ 1 2 1 ] GREEN RED +[ 2 0 0 ] GREEN RED +[ 2 0 1 ] GREEN RED +[ 2 1 0 ] GREEN RED +[ 2 1 1 ] GREEN RED +[ 2 2 0 ] GREEN RED +[ 2 2 1 ] GREEN RED +[ 3 0 0 ] GREEN RED +[ 3 0 1 ] GREEN RED +[ 3 1 0 ] GREEN RED +[ 3 1 1 ] GREEN RED +[ 3 2 0 ] GREEN RED +[ 3 2 1 ] GREEN RED +24 differences found +attribute: <float of </g1>> and <float of </g1>> +size: [2] [2] +position float of </g1> float of </g1> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <float2D of </g1>> and <float2D of </g1>> +size: [3x2] [3x2] +position float2D of </g1> float2D of </g1> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <float3D of </g1>> and <float3D of </g1>> +size: [4x3x2] [4x3x2] +position float3D of </g1> float3D of </g1> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 1 ] 2 0 2 +[ 0 1 0 ] 3 0 3 +[ 0 1 1 ] 4 0 4 +[ 0 2 0 ] 5 0 5 +[ 0 2 1 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 1 0 ] 9 0 9 +[ 1 1 1 ] 10 0 10 +[ 1 2 0 ] 11 0 11 +[ 1 2 1 ] 12 0 12 +[ 2 0 0 ] 13 0 13 +[ 2 0 1 ] 14 0 14 +[ 2 1 0 ] 15 0 15 +[ 2 1 1 ] 16 0 16 +[ 2 2 0 ] 17 0 17 +[ 2 2 1 ] 18 0 18 +[ 3 0 0 ] 19 0 19 +[ 3 0 1 ] 20 0 20 +[ 3 1 0 ] 21 0 21 +[ 3 1 1 ] 22 0 22 +[ 3 2 0 ] 23 0 23 +[ 3 2 1 ] 24 0 24 +24 differences found +attribute: <integer of </g1>> and <integer of </g1>> +size: [2] [2] +position integer of </g1> integer of </g1> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <integer2D of </g1>> and <integer2D of </g1>> +size: [3x2] [3x2] +position integer2D of </g1> integer2D of </g1> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <integer3D of </g1>> and <integer3D of </g1>> +size: [4x3x2] [4x3x2] +position integer3D of </g1> integer3D of </g1> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 1 ] 2 0 2 +[ 0 1 0 ] 3 0 3 +[ 0 1 1 ] 4 0 4 +[ 0 2 0 ] 5 0 5 +[ 0 2 1 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 1 0 ] 9 0 9 +[ 1 1 1 ] 10 0 10 +[ 1 2 0 ] 11 0 11 +[ 1 2 1 ] 12 0 12 +[ 2 0 0 ] 13 0 13 +[ 2 0 1 ] 14 0 14 +[ 2 1 0 ] 15 0 15 +[ 2 1 1 ] 16 0 16 +[ 2 2 0 ] 17 0 17 +[ 2 2 1 ] 18 0 18 +[ 3 0 0 ] 19 0 19 +[ 3 0 1 ] 20 0 20 +[ 3 1 0 ] 21 0 21 +[ 3 1 1 ] 22 0 22 +[ 3 2 0 ] 23 0 23 +[ 3 2 1 ] 24 0 24 +24 differences found +attribute: <opaque of </g1>> and <opaque of </g1>> +size: [2] [2] +position opaque of </g1> opaque of </g1> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +2 differences found +attribute: <opaque2D of </g1>> and <opaque2D of </g1>> +size: [3x2] [3x2] +position opaque2D of </g1> opaque2D of </g1> difference +------------------------------------------------------------ +[ 0 0 ] 1 0 1 +[ 0 1 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 2 0 ] 5 0 5 +[ 2 1 ] 6 0 6 +6 differences found +attribute: <opaque3D of </g1>> and <opaque3D of </g1>> +size: [4x3x2] [4x3x2] +position opaque3D of </g1> opaque3D of </g1> difference +------------------------------------------------------------ +[ 0 0 0 ] 1 0 1 +[ 0 0 1 ] 2 0 2 +[ 0 1 0 ] 3 0 3 +[ 0 1 1 ] 4 0 4 +[ 0 2 0 ] 5 0 5 +[ 0 2 1 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 1 0 ] 9 0 9 +[ 1 1 1 ] 10 0 10 +[ 1 2 0 ] 11 0 11 +[ 1 2 1 ] 12 0 12 +[ 2 0 0 ] 13 0 13 +[ 2 0 1 ] 14 0 14 +[ 2 1 0 ] 15 0 15 +[ 2 1 1 ] 16 0 16 +[ 2 2 0 ] 17 0 17 +[ 2 2 1 ] 18 0 18 +[ 3 0 0 ] 19 0 19 +[ 3 0 1 ] 20 0 20 +[ 3 1 0 ] 21 0 21 +[ 3 1 1 ] 22 0 22 +[ 3 2 0 ] 23 0 23 +[ 3 2 1 ] 24 0 24 +24 differences found +attribute: <string of </g1>> and <string of </g1>> +size: [2] [2] +position string of </g1> string of </g1> difference +------------------------------------------------------------ +[ 0 ] a z +[ 0 ] b z +[ 1 ] d z +[ 1 ] e z +4 differences found +attribute: <string2D of </g1>> and <string2D of </g1>> +size: [3x2] [3x2] +position string2D of </g1> string2D of </g1> difference +------------------------------------------------------------ +[ 0 0 ] a z +[ 0 0 ] b z +[ 0 1 ] c z +[ 0 1 ] d z +[ 1 0 ] e z +[ 1 0 ] f z +[ 1 1 ] g z +[ 1 1 ] h z +[ 2 0 ] i z +[ 2 0 ] j z +[ 2 1 ] k z +[ 2 1 ] l z +12 differences found +attribute: <string3D of </g1>> and <string3D of </g1>> +size: [4x3x2] [4x3x2] +position string3D of </g1> string3D of </g1> difference +------------------------------------------------------------ +[ 0 0 0 ] a z +[ 0 0 0 ] b z +[ 0 0 1 ] c z +[ 0 0 1 ] d z +[ 0 1 0 ] e z +[ 0 1 0 ] f z +[ 0 1 1 ] g z +[ 0 1 1 ] h z +[ 0 2 0 ] i z +[ 0 2 0 ] j z +[ 0 2 1 ] k z +[ 0 2 1 ] l z +[ 1 0 0 ] m z +[ 1 0 0 ] n z +[ 1 0 1 ] p z +[ 1 0 1 ] q z +[ 1 1 0 ] r z +[ 1 1 0 ] s z +[ 1 1 1 ] t z +[ 1 1 1 ] u z +[ 1 2 0 ] v z +[ 1 2 0 ] w z +[ 1 2 1 ] x z +[ 2 0 0 ] A z +[ 2 0 0 ] B z +[ 2 0 1 ] C z +[ 2 0 1 ] D z +[ 2 1 0 ] E z +[ 2 1 0 ] F z +[ 2 1 1 ] G z +[ 2 1 1 ] H z +[ 2 2 0 ] I z +[ 2 2 0 ] J z +[ 2 2 1 ] K z +[ 2 2 1 ] L z +[ 3 0 0 ] M z +[ 3 0 0 ] N z +[ 3 0 1 ] P z +[ 3 0 1 ] Q z +[ 3 1 0 ] R z +[ 3 1 0 ] S z +[ 3 1 1 ] T z +[ 3 1 1 ] U z +[ 3 2 0 ] V z +[ 3 2 0 ] W z +[ 3 2 1 ] X z +[ 3 2 1 ] Z z +47 differences found +attribute: <vlen of </g1>> and <vlen of </g1>> +size: [2] [2] +position vlen of </g1> vlen of </g1> difference +------------------------------------------------------------ +[ 0 ] 1 0 1 +[ 1 ] 2 0 2 +[ 1 ] 3 0 3 +3 differences found +attribute: <vlen2D of </g1>> and <vlen2D of </g1>> +size: [3x2] [3x2] +position vlen2D of </g1> vlen2D of </g1> difference +------------------------------------------------------------ +[ 0 1 ] 1 0 1 +[ 1 0 ] 2 0 2 +[ 1 0 ] 3 0 3 +[ 1 1 ] 4 0 4 +[ 1 1 ] 5 0 5 +[ 2 0 ] 6 0 6 +[ 2 0 ] 7 0 7 +[ 2 0 ] 8 0 8 +[ 2 1 ] 9 0 9 +[ 2 1 ] 10 0 10 +[ 2 1 ] 11 0 11 +11 differences found +attribute: <vlen3D of </g1>> and <vlen3D of </g1>> +size: [4x3x2] [4x3x2] +position vlen3D of </g1> vlen3D of </g1> difference +------------------------------------------------------------ +[ 0 0 1 ] 1 0 1 +[ 0 1 0 ] 2 0 2 +[ 0 1 1 ] 3 0 3 +[ 0 2 0 ] 4 0 4 +[ 0 2 1 ] 5 0 5 +[ 1 0 0 ] 6 0 6 +[ 1 0 0 ] 7 0 7 +[ 1 0 1 ] 8 0 8 +[ 1 0 1 ] 9 0 9 +[ 1 1 0 ] 10 0 10 +[ 1 1 0 ] 11 0 11 +[ 1 1 1 ] 12 0 12 +[ 1 1 1 ] 13 0 13 +[ 1 2 0 ] 14 0 14 +[ 1 2 0 ] 15 0 15 +[ 1 2 1 ] 16 0 16 +[ 1 2 1 ] 17 0 17 +[ 2 0 0 ] 18 0 18 +[ 2 0 0 ] 19 0 19 +[ 2 0 0 ] 20 0 20 +[ 2 0 1 ] 21 0 21 +[ 2 0 1 ] 22 0 22 +[ 2 0 1 ] 23 0 23 +[ 2 1 0 ] 24 0 24 +[ 2 1 0 ] 25 0 25 +[ 2 1 0 ] 26 0 26 +[ 2 1 1 ] 27 0 27 +[ 2 1 1 ] 28 0 28 +[ 2 1 1 ] 29 0 29 +[ 2 2 0 ] 30 0 30 +[ 2 2 0 ] 31 0 31 +[ 2 2 0 ] 32 0 32 +[ 2 2 1 ] 33 0 33 +[ 2 2 1 ] 34 0 34 +[ 2 2 1 ] 35 0 35 +[ 3 0 0 ] 36 0 36 +[ 3 0 0 ] 37 0 37 +[ 3 0 0 ] 38 0 38 +[ 3 0 0 ] 39 0 39 +[ 3 0 1 ] 40 0 40 +[ 3 0 1 ] 41 0 41 +[ 3 0 1 ] 42 0 42 +[ 3 0 1 ] 43 0 43 +[ 3 1 0 ] 44 0 44 +[ 3 1 0 ] 45 0 45 +[ 3 1 0 ] 46 0 46 +[ 3 1 0 ] 47 0 47 +[ 3 1 1 ] 48 0 48 +[ 3 1 1 ] 49 0 49 +[ 3 1 1 ] 50 0 50 +[ 3 1 1 ] 51 0 51 +[ 3 2 0 ] 52 0 52 +[ 3 2 0 ] 53 0 53 +[ 3 2 0 ] 54 0 54 +[ 3 2 0 ] 55 0 55 +[ 3 2 1 ] 56 0 56 +[ 3 2 1 ] 57 0 57 +[ 3 2 1 ] 58 0 58 +[ 3 2 1 ] 59 0 59 +59 differences found +-------------------------------- +Some objects are not comparable +-------------------------------- +Use -c for a list of objects. +EXIT CODE: 1 diff --git a/tools/h5diff/testfiles/h5diff_704.txt b/tools/h5diff/testfiles/h5diff_704.txt new file mode 100644 index 0000000..e752a01 --- /dev/null +++ b/tools/h5diff/testfiles/h5diff_704.txt @@ -0,0 +1,28 @@ + +group1 group2 +--------------------------------------- + x x + + +group : </g> and </g> +0 differences found + obj1 obj2 + -------------------------------------- + x x float1 + x x integer1 +Attributes status: 2 common, 0 only in obj1, 0 only in obj2 +attribute: <float1 of </g>> and <float1 of </g>> +size: [2] [2] +position float1 of </g> float1 of </g> difference +------------------------------------------------------------ +[ 0 ] 1.1 2.1 1 +[ 1 ] 2.2 3.2 1 +2 differences found +attribute: <integer1 of </g>> and <integer1 of </g>> +size: [2] [2] +position integer1 of </g> integer1 of </g> difference +------------------------------------------------------------ +[ 0 ] 1 2 1 +[ 1 ] 2 3 1 +2 differences found +EXIT CODE: 1 diff --git a/tools/h5diff/testfiles/h5diff_705.txt b/tools/h5diff/testfiles/h5diff_705.txt new file mode 100644 index 0000000..1609189 --- /dev/null +++ b/tools/h5diff/testfiles/h5diff_705.txt @@ -0,0 +1,17 @@ + +dataset: </dset> and </dset> + obj1 obj2 + -------------------------------------- + x float2 + x float3 + x x integer1 +Attributes status: 1 common, 1 only in obj1, 1 only in obj2 +attribute: <integer1 of </dset>> and <integer1 of </dset>> +size: [2] [2] +position integer1 of </dset> integer1 of </dset> difference +------------------------------------------------------------ +[ 0 ] 1 2 1 +[ 1 ] 2 3 1 +2 differences found +2 differences found +EXIT CODE: 1 diff --git a/tools/h5diff/testfiles/h5diff_706.txt b/tools/h5diff/testfiles/h5diff_706.txt new file mode 100644 index 0000000..38eeac5 --- /dev/null +++ b/tools/h5diff/testfiles/h5diff_706.txt @@ -0,0 +1,13 @@ + +datatype: </ntype> and </ntype> +0 differences found + obj1 obj2 + -------------------------------------- + x float2 + x float3 + x float5 + x float6 + x integer1 + x integer4 +Attributes status: 0 common, 3 only in obj1, 3 only in obj2 +EXIT CODE: 0 diff --git a/tools/h5diff/testfiles/h5diff_707.txt b/tools/h5diff/testfiles/h5diff_707.txt new file mode 100644 index 0000000..4d6378b --- /dev/null +++ b/tools/h5diff/testfiles/h5diff_707.txt @@ -0,0 +1,29 @@ + +group1 group2 +--------------------------------------- + x x + + +group : </g2> and </g2> +0 differences found + obj1 obj2 + -------------------------------------- + x x float2 + x float3 + x x integer1 +Attributes status: 2 common, 1 only in obj1, 0 only in obj2 +attribute: <float2 of </g2>> and <float2 of </g2>> +size: [2] [2] +position float2 of </g2> float2 of </g2> difference +------------------------------------------------------------ +[ 0 ] 1.1 2.1 1 +[ 1 ] 2.2 3.2 1 +2 differences found +attribute: <integer1 of </g2>> and <integer1 of </g2>> +size: [2] [2] +position integer1 of </g2> integer1 of </g2> difference +------------------------------------------------------------ +[ 0 ] 1 2 1 +[ 1 ] 2 3 1 +2 differences found +EXIT CODE: 1 diff --git a/tools/h5diff/testfiles/h5diff_708.txt b/tools/h5diff/testfiles/h5diff_708.txt new file mode 100644 index 0000000..add386b --- /dev/null +++ b/tools/h5diff/testfiles/h5diff_708.txt @@ -0,0 +1,17 @@ + +group1 group2 +--------------------------------------- + x x + + +group : </g3> and </g3> +0 differences found + obj1 obj2 + -------------------------------------- + x float11 + x float12 + x float4 + x integer10 + x integer3 +Attributes status: 0 common, 3 only in obj1, 2 only in obj2 +EXIT CODE: 0 diff --git a/tools/h5diff/testfiles/h5diff_709.txt b/tools/h5diff/testfiles/h5diff_709.txt new file mode 100644 index 0000000..d0e68bf --- /dev/null +++ b/tools/h5diff/testfiles/h5diff_709.txt @@ -0,0 +1,12 @@ + +group1 group2 +--------------------------------------- + x x + + +group : </g4> and </g4> +0 differences found + obj1 obj2 + -------------------------------------- +Attributes status: 0 common, 0 only in obj1, 0 only in obj2 +EXIT CODE: 0 diff --git a/tools/h5diff/testfiles/h5diff_710.txt b/tools/h5diff/testfiles/h5diff_710.txt new file mode 100644 index 0000000..862c062 --- /dev/null +++ b/tools/h5diff/testfiles/h5diff_710.txt @@ -0,0 +1,108 @@ + +file1 file2 +--------------------------------------- + x x / + x x /dset + x x /g + x x /g2 + x x /g3 + x x /g4 + x x /ntype + + +group : </> and </> +0 differences found + obj1 obj2 + -------------------------------------- +Attributes status: 0 common, 0 only in obj1, 0 only in obj2 + +dataset: </dset> and </dset> + obj1 obj2 + -------------------------------------- + x float2 + x float3 + x x integer1 +Attributes status: 1 common, 1 only in obj1, 1 only in obj2 +attribute: <integer1 of </dset>> and <integer1 of </dset>> +size: [2] [2] +position integer1 of </dset> integer1 of </dset> difference +------------------------------------------------------------ +[ 0 ] 1 2 1 +[ 1 ] 2 3 1 +2 differences found +2 differences found + +group : </g> and </g> +0 differences found + obj1 obj2 + -------------------------------------- + x x float1 + x x integer1 +Attributes status: 2 common, 0 only in obj1, 0 only in obj2 +attribute: <float1 of </g>> and <float1 of </g>> +size: [2] [2] +position float1 of </g> float1 of </g> difference +------------------------------------------------------------ +[ 0 ] 1.1 2.1 1 +[ 1 ] 2.2 3.2 1 +2 differences found +attribute: <integer1 of </g>> and <integer1 of </g>> +size: [2] [2] +position integer1 of </g> integer1 of </g> difference +------------------------------------------------------------ +[ 0 ] 1 2 1 +[ 1 ] 2 3 1 +2 differences found + +group : </g2> and </g2> +0 differences found + obj1 obj2 + -------------------------------------- + x x float2 + x float3 + x x integer1 +Attributes status: 2 common, 1 only in obj1, 0 only in obj2 +attribute: <float2 of </g2>> and <float2 of </g2>> +size: [2] [2] +position float2 of </g2> float2 of </g2> difference +------------------------------------------------------------ +[ 0 ] 1.1 2.1 1 +[ 1 ] 2.2 3.2 1 +2 differences found +attribute: <integer1 of </g2>> and <integer1 of </g2>> +size: [2] [2] +position integer1 of </g2> integer1 of </g2> difference +------------------------------------------------------------ +[ 0 ] 1 2 1 +[ 1 ] 2 3 1 +2 differences found + +group : </g3> and </g3> +0 differences found + obj1 obj2 + -------------------------------------- + x float11 + x float12 + x float4 + x integer10 + x integer3 +Attributes status: 0 common, 3 only in obj1, 2 only in obj2 + +group : </g4> and </g4> +0 differences found + obj1 obj2 + -------------------------------------- +Attributes status: 0 common, 0 only in obj1, 0 only in obj2 + +datatype: </ntype> and </ntype> +0 differences found + obj1 obj2 + -------------------------------------- + x float2 + x float3 + x float5 + x float6 + x integer1 + x integer4 +Attributes status: 0 common, 3 only in obj1, 3 only in obj2 +EXIT CODE: 1 diff --git a/tools/h5diff/testfiles/h5diff_attr_v_level1.h5 b/tools/h5diff/testfiles/h5diff_attr_v_level1.h5 Binary files differnew file mode 100644 index 0000000..2b1d8a1 --- /dev/null +++ b/tools/h5diff/testfiles/h5diff_attr_v_level1.h5 diff --git a/tools/h5diff/testfiles/h5diff_attr_v_level2.h5 b/tools/h5diff/testfiles/h5diff_attr_v_level2.h5 Binary files differnew file mode 100644 index 0000000..4588fca --- /dev/null +++ b/tools/h5diff/testfiles/h5diff_attr_v_level2.h5 diff --git a/tools/h5diff/testh5diff.sh b/tools/h5diff/testh5diff.sh index 98b600a..2b193a1 100755 --- a/tools/h5diff/testh5diff.sh +++ b/tools/h5diff/testh5diff.sh @@ -73,6 +73,9 @@ EXCLUDE_FILE2_2=h5diff_exclude2-2.h5 # compound type with multiple vlen string types COMP_VL_STRS_FILE=h5diff_comp_vl_strs.h5 +ATTR_VERBOSE_LEVEL_FILE1=h5diff_attr_v_level1.h5 +ATTR_VERBOSE_LEVEL_FILE2=h5diff_attr_v_level2.h5 + TESTNAME=h5diff EXIT_SUCCESS=0 EXIT_FAILURE=1 @@ -547,11 +550,42 @@ TOOLTEST h5diff_628.txt -n 1 $FILE1 $FILE2 g1/dset3 g1/dset4 # 6.29 non valid files #TOOLTEST h5diff_629.txt file1.h6 file2.h6 + # ############################################################################## # 7. attributes # ############################################################################## TOOLTEST h5diff_70.txt -v $FILE5 $FILE6 +# ################################################## +# attrs with verbose option level +# ################################################## + +TOOLTEST h5diff_700.txt -v1 $FILE5 $FILE6 +TOOLTEST h5diff_701.txt -v2 $FILE5 $FILE6 +TOOLTEST h5diff_702.txt --verbose=1 $FILE5 $FILE6 +TOOLTEST h5diff_703.txt --verbose=2 $FILE5 $FILE6 + +# same attr number , all same attr name +TOOLTEST h5diff_704.txt -v2 $ATTR_VERBOSE_LEVEL_FILE1 $ATTR_VERBOSE_LEVEL_FILE2 /g + +# same attr number , some same attr name +TOOLTEST h5diff_705.txt -v2 $ATTR_VERBOSE_LEVEL_FILE1 $ATTR_VERBOSE_LEVEL_FILE2 /dset + +# same attr number , all different attr name +TOOLTEST h5diff_706.txt -v2 $ATTR_VERBOSE_LEVEL_FILE1 $ATTR_VERBOSE_LEVEL_FILE2 /ntype + +# different attr number , same attr name (intersected) +TOOLTEST h5diff_707.txt -v2 $ATTR_VERBOSE_LEVEL_FILE1 $ATTR_VERBOSE_LEVEL_FILE2 /g2 + +# different attr number , all different attr name +TOOLTEST h5diff_708.txt -v2 $ATTR_VERBOSE_LEVEL_FILE1 $ATTR_VERBOSE_LEVEL_FILE2 /g3 + +# when no attributes exist in both objects +TOOLTEST h5diff_709.txt -v2 $ATTR_VERBOSE_LEVEL_FILE1 $ATTR_VERBOSE_LEVEL_FILE2 /g4 + +# file vs file +TOOLTEST h5diff_710.txt -v2 $ATTR_VERBOSE_LEVEL_FILE1 $ATTR_VERBOSE_LEVEL_FILE2 + # ############################################################################## # 8. all dataset datatypes # ############################################################################## diff --git a/tools/h5dump/CMakeLists.txt b/tools/h5dump/CMakeLists.txt index 77f3763..92c7149 100644 --- a/tools/h5dump/CMakeLists.txt +++ b/tools/h5dump/CMakeLists.txt @@ -11,7 +11,7 @@ INCLUDE_DIRECTORIES (${HDF5_PROJECT_DIR}/test) # Add the h5dump executables # -------------------------------------------------------------------- ADD_EXECUTABLE (h5dump ${HDF5_TOOLS_H5DUMP_SOURCE_DIR}/h5dump.c) -H5_NAMING (h5dump ${LIB_TYPE}) +TARGET_NAMING (h5dump ${LIB_TYPE}) TARGET_LINK_LIBRARIES (h5dump ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET}) SET (H5_DEP_EXECUTABLES h5dump) @@ -28,7 +28,7 @@ IF (BUILD_TESTING) # -------------------------------------------------------------------- IF (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS) ADD_EXECUTABLE (h5dumpgentest ${HDF5_TOOLS_H5DUMP_SOURCE_DIR}/h5dumpgentest.c) - H5_NAMING (h5dumpgentest ${LIB_TYPE}) + TARGET_NAMING (h5dumpgentest ${LIB_TYPE}) TARGET_LINK_LIBRARIES (h5dumpgentest ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET}) #ADD_TEST (NAME h5dumpgentest COMMAND $<TARGET_FILE:h5dumpgentest>) @@ -38,6 +38,7 @@ IF (BUILD_TESTING) # Copy all the HDF5 files from the test directory into the source directory # -------------------------------------------------------------------- SET (HDF5_REFERENCE_FILES + filter_fail.ddl packedbits.ddl tall-1.ddl tall-2.ddl @@ -46,6 +47,7 @@ IF (BUILD_TESTING) tall-3.ddl tall-4s.ddl tall-5s.ddl + tall-6.ddl tallfilters.ddl tarray1.ddl tarray1_big.ddl @@ -220,6 +222,7 @@ IF (BUILD_TESTING) tbin3.ddl tbin4.ddl out3.h5import + filter_fail.h5 packedbits.h5 taindices.h5 tall.h5 @@ -396,27 +399,37 @@ IF (BUILD_TESTING) MACRO (ADD_SKIP_H5_TEST skipresultfile skipresultcode testtype) IF (${testtype} STREQUAL "SKIP") - ADD_TEST ( - NAME H5DUMP-${skipresultfile} - COMMAND ${CMAKE_COMMAND} -E echo "SKIP ${skipresultfile} ${ARGN}" - ) + IF (NOT HDF5_ENABLE_USING_MEMCHECKER) + ADD_TEST ( + NAME H5DUMP-${skipresultfile}-SKIPPED + COMMAND ${CMAKE_COMMAND} -E echo "SKIP ${skipresultfile} ${ARGN}" + ) + ENDIF (NOT HDF5_ENABLE_USING_MEMCHECKER) ELSE (${testtype} STREQUAL "SKIP") ADD_H5_TEST (${skipresultfile} ${skipresultcode} ${ARGN}) ENDIF (${testtype} STREQUAL "SKIP") ENDMACRO (ADD_SKIP_H5_TEST) MACRO (ADD_H5_TEST resultfile resultcode) - ADD_TEST ( - NAME H5DUMP-${resultfile} - COMMAND "${CMAKE_COMMAND}" - -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>" - -D "TEST_ARGS:STRING=${ARGN}" - -D "TEST_FOLDER=${PROJECT_BINARY_DIR}" - -D "TEST_OUTPUT=${resultfile}.out" - -D "TEST_EXPECT=${resultcode}" - -D "TEST_REFERENCE=${resultfile}.ddl" - -P "${HDF5_RESOURCES_DIR}/runTest.cmake" - ) + # If using memchecker add tests without using scripts + IF (HDF5_ENABLE_USING_MEMCHECKER) + ADD_TEST (NAME H5DUMP-${resultfile} COMMAND $<TARGET_FILE:h5dump> ${ARGN}) + IF (NOT ${resultcode} STREQUAL "0") + SET_TESTS_PROPERTIES (H5DUMP-${resultfile} PROPERTIES WILL_FAIL "true") + ENDIF (NOT ${resultcode} STREQUAL "0") + ELSE (HDF5_ENABLE_USING_MEMCHECKER) + ADD_TEST ( + NAME H5DUMP-${resultfile} + COMMAND "${CMAKE_COMMAND}" + -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>" + -D "TEST_ARGS:STRING=${ARGN}" + -D "TEST_FOLDER=${PROJECT_BINARY_DIR}" + -D "TEST_OUTPUT=${resultfile}.out" + -D "TEST_EXPECT=${resultcode}" + -D "TEST_REFERENCE=${resultfile}.ddl" + -P "${HDF5_RESOURCES_DIR}/runTest.cmake" + ) + ENDIF (HDF5_ENABLE_USING_MEMCHECKER) IF (NOT "${last_test}" STREQUAL "") SET_TESTS_PROPERTIES (H5DUMP-${resultfile} PROPERTIES DEPENDS ${last_test}) ENDIF (NOT "${last_test}" STREQUAL "") @@ -431,38 +444,73 @@ IF (BUILD_TESTING) IF (NOT "${last_test}" STREQUAL "") SET_TESTS_PROPERTIES (H5DUMP-output-${resultfile} PROPERTIES DEPENDS ${last_test}) ENDIF (NOT "${last_test}" STREQUAL "") - ADD_TEST ( - NAME H5DUMP-output-cmp-${resultfile} - COMMAND ${CMAKE_COMMAND} - -E compare_files ${PROJECT_BINARY_DIR}/${resultfile}.txt ${PROJECT_BINARY_DIR}/${resultfile}.exp - ) - SET_TESTS_PROPERTIES (H5DUMP-output-cmp-${resultfile} PROPERTIES DEPENDS H5DUMP-output-${resultfile}) - SET (last_test "H5DUMP-output-cmp-${resultfile}") + SET (last_test "H5DUMP-output-${resultfile}") + IF (NOT HDF5_ENABLE_USING_MEMCHECKER) + ADD_TEST ( + NAME H5DUMP-output-cmp-${resultfile} + COMMAND ${CMAKE_COMMAND} + -E compare_files ${PROJECT_BINARY_DIR}/${resultfile}.txt ${PROJECT_BINARY_DIR}/${resultfile}.exp + ) + IF (NOT "${last_test}" STREQUAL "") + SET_TESTS_PROPERTIES (H5DUMP-output-cmp-${resultfile} PROPERTIES DEPENDS ${last_test}) + ENDIF (NOT "${last_test}" STREQUAL "") + SET (last_test "H5DUMP-output-cmp-${resultfile}") + ENDIF (NOT HDF5_ENABLE_USING_MEMCHECKER) ENDMACRO (ADD_H5_EXPORT_TEST file) - MACRO (ADD_XML_SKIP_H5_TEST skipresultfile skipresultcode testtype) - IF (${testtype} STREQUAL "SKIP") + MACRO (ADD_H5_MASK_TEST resultfile resultcode) + IF (NOT HDF5_ENABLE_USING_MEMCHECKER) ADD_TEST ( - NAME H5DUMP-XML-${skipresultfile} - COMMAND ${CMAKE_COMMAND} -E echo "SKIP ${skipresultfile}.xml --xml ${ARGN}" + NAME H5DUMP-${resultfile} + COMMAND "${CMAKE_COMMAND}" + -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>" + -D "TEST_ARGS:STRING=${ARGN}" + -D "TEST_FOLDER=${PROJECT_BINARY_DIR}" + -D "TEST_OUTPUT=${resultfile}.out" + -D "TEST_EXPECT=${resultcode}" + -D "TEST_REFERENCE=${resultfile}.ddl" + -D "TEST_MASK_ERROR=true" + -P "${HDF5_RESOURCES_DIR}/runTest.cmake" ) + IF (NOT "${last_test}" STREQUAL "") + SET_TESTS_PROPERTIES (H5DUMP-${resultfile} PROPERTIES DEPENDS ${last_test}) + ENDIF (NOT "${last_test}" STREQUAL "") + SET (last_test "H5DUMP-${resultfile}") + ENDIF (NOT HDF5_ENABLE_USING_MEMCHECKER) + ENDMACRO (ADD_H5_MASK_TEST file) + + MACRO (ADD_XML_SKIP_H5_TEST skipresultfile skipresultcode testtype) + IF (${testtype} STREQUAL "SKIP") + IF (NOT HDF5_ENABLE_USING_MEMCHECKER) + ADD_TEST ( + NAME H5DUMP-XML-${skipresultfile}-SKIPPED + COMMAND ${CMAKE_COMMAND} -E echo "SKIP ${skipresultfile}.xml --xml ${ARGN}" + ) + ENDIF (NOT HDF5_ENABLE_USING_MEMCHECKER) ELSE (${testtype} STREQUAL "SKIP") ADD_XML_H5_TEST (${skipresultfile} ${skipresultcode} ${ARGN}) ENDIF (${testtype} STREQUAL "SKIP") ENDMACRO (ADD_XML_SKIP_H5_TEST) MACRO (ADD_XML_H5_TEST resultfile resultcode) - ADD_TEST ( - NAME H5DUMP-XML-${resultfile} - COMMAND "${CMAKE_COMMAND}" - -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>" - -D "TEST_ARGS:STRING=--xml;${ARGN}" - -D "TEST_FOLDER=${PROJECT_BINARY_DIR}" - -D "TEST_OUTPUT=${resultfile}.out" - -D "TEST_EXPECT=${resultcode}" - -D "TEST_REFERENCE=${resultfile}.xml" - -P "${HDF5_RESOURCES_DIR}/runTest.cmake" - ) + IF (HDF5_ENABLE_USING_MEMCHECKER) + ADD_TEST (NAME H5DUMP-XML-${resultfile} COMMAND $<TARGET_FILE:h5dump> --xml ${ARGN}) + IF (NOT ${resultcode} STREQUAL "0") + SET_TESTS_PROPERTIES (H5DUMP-XML-${resultfile} PROPERTIES WILL_FAIL "true") + ENDIF (NOT ${resultcode} STREQUAL "0") + ELSE (HDF5_ENABLE_USING_MEMCHECKER) + ADD_TEST ( + NAME H5DUMP-XML-${resultfile} + COMMAND "${CMAKE_COMMAND}" + -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>" + -D "TEST_ARGS:STRING=--xml;${ARGN}" + -D "TEST_FOLDER=${PROJECT_BINARY_DIR}" + -D "TEST_OUTPUT=${resultfile}.out" + -D "TEST_EXPECT=${resultcode}" + -D "TEST_REFERENCE=${resultfile}.xml" + -P "${HDF5_RESOURCES_DIR}/runTest.cmake" + ) + ENDIF (HDF5_ENABLE_USING_MEMCHECKER) IF (NOT "${last_test}" STREQUAL "") SET_TESTS_PROPERTIES (H5DUMP-XML-${resultfile} PROPERTIES DEPENDS ${last_test}) ENDIF (NOT "${last_test}" STREQUAL "") @@ -495,6 +543,8 @@ IF (BUILD_TESTING) NAME H5DUMP-clearall-objects COMMAND ${CMAKE_COMMAND} -E remove + filter_fail.out + filter_fail.out.err packedbits.out packedbits.out.err tall-1.out @@ -511,6 +561,8 @@ IF (BUILD_TESTING) tall-4s.out.err tall-5s.out tall-5s.out.err + tall-6.out + tall-6.out.err tallfilters.out tallfilters.out.err tarray1.out @@ -719,15 +771,6 @@ IF (BUILD_TESTING) ENDIF (NOT "${last_test}" STREQUAL "") SET (last_test "H5DUMP-clearall-objects") - # If using memchecker add tests without using scripts - IF (HDF5_ENABLE_USING_MEMCHECKER) - ADD_TEST (NAME H5DUMP-tgroup COMMAND h5dump tgroup.h5) - ADD_TEST (NAME H5DUMP-tdset COMMAND h5dump tdset.h5) - ADD_TEST (NAME H5DUMP-tattr COMMAND h5dump tattr.h5) - ADD_TEST (NAME H5DUMP-tslink COMMAND h5dump tslink.h5) - ADD_TEST (NAME H5DUMP-thlink COMMAND h5dump thlink.h5) - ENDIF (HDF5_ENABLE_USING_MEMCHECKER) - # test for signed/unsigned datasets ADD_H5_TEST (packedbits 0 packedbits.h5) # test for displaying groups @@ -972,16 +1015,28 @@ IF (BUILD_TESTING) # NATIVE default. the NATIVE test can be validated with h5import/h5diff ADD_H5_TEST (tbin1 0 -d integer -o out1.bin -b tbinary.h5) ADD_TEST (NAME H5DUMP-clear-out1 COMMAND ${CMAKE_COMMAND} -E remove out1.h5) + IF (NOT "${last_test}" STREQUAL "") + SET_TESTS_PROPERTIES (H5DUMP-clear-out1 PROPERTIES DEPENDS ${last_test}) + ENDIF (NOT "${last_test}" STREQUAL "") ADD_TEST (NAME H5DUMP-h5import-out1 COMMAND h5import out1.bin -c out3.h5import -o out1.h5) + SET_TESTS_PROPERTIES (H5DUMP-h5import-out1 PROPERTIES DEPENDS H5DUMP-clear-out1) ADD_TEST (NAME H5DUMP-h5diff-out1 COMMAND h5diff tbinary.h5 out1.h5 /integer /integer) + SET_TESTS_PROPERTIES (H5DUMP-h5diff-out1 PROPERTIES DEPENDS H5DUMP-h5import-out1) + SET (last_test "H5DUMP-h5diff-out1") ADD_H5_TEST (tbin2 0 -b BE -d float -o out2.bin tbinary.h5) # the NATIVE test can be validated with h5import/h5diff ADD_H5_TEST (tbin3 0 -d integer -o out3.bin -b NATIVE tbinary.h5) ADD_TEST (NAME H5DUMP-clear-out3 COMMAND ${CMAKE_COMMAND} -E remove out3.h5) + IF (NOT "${last_test}" STREQUAL "") + SET_TESTS_PROPERTIES (H5DUMP-clear-out3 PROPERTIES DEPENDS ${last_test}) + ENDIF (NOT "${last_test}" STREQUAL "") ADD_TEST (NAME H5DUMP-h5import-out3 COMMAND h5import out3.bin -c out3.h5import -o out3.h5) + SET_TESTS_PROPERTIES (H5DUMP-h5import-out3 PROPERTIES DEPENDS H5DUMP-clear-out3) ADD_TEST (NAME H5DUMP-h5diff-out3 COMMAND h5diff tbinary.h5 out3.h5 /integer /integer -q) + SET_TESTS_PROPERTIES (H5DUMP-h5diff-out3 PROPERTIES DEPENDS H5DUMP-h5import-out3) + SET (last_test "H5DUMP-h5diff-out3") ADD_H5_TEST (tbin4 0 -d double -b FILE -o out4.bin tbinary.h5) @@ -1036,6 +1091,12 @@ IF (BUILD_TESTING) # test for dangling external links ADD_H5_TEST (textlink 0 textlink.h5) + # test for error stack display (BZ2048) + ADD_H5_MASK_TEST (filter_fail 1 -E filter_fail.h5) + + # test for -o -y for dataset with attributes + ADD_H5_TEST (tall-6 0 -y -o data -d /g1/g1.1/dset1.1.1 tall.h5) + ####### test for dataset packed bits ###### IF (HDF5_USE_H5DUMP_PACKED_BITS) # Remove any output file left over from previous test run @@ -1196,16 +1257,6 @@ IF (BUILD_TESTING) SET (last_test "H5DUMP-XML-clearall-objects") ########## test XML - - # If using memchecker add tests without using scripts - IF (HDF5_ENABLE_USING_MEMCHECKER) - ADD_TEST (NAME H5DUMP-XML-tgroup COMMAND h5dump --xml tgroup.h5) - ADD_TEST (NAME H5DUMP-XML-tdset COMMAND h5dump --xml tdset.h5) - ADD_TEST (NAME H5DUMP-XML-tattr COMMAND h5dump --xml tattr.h5) - ADD_TEST (NAME H5DUMP-XML-tslink COMMAND h5dump --xml tslink.h5) - ADD_TEST (NAME H5DUMP-XML-thlink COMMAND h5dump --xml thlink.h5) - ENDIF (HDF5_ENABLE_USING_MEMCHECKER) - ADD_XML_H5_TEST (tall.h5 0 tall.h5) ADD_XML_H5_TEST (tattr.h5 0 tattr.h5) ADD_XML_H5_TEST (tbitfields.h5 0 tbitfields.h5) diff --git a/tools/h5dump/h5dump.c b/tools/h5dump/h5dump.c index e89af7e..68cbac0 100644 --- a/tools/h5dump/h5dump.c +++ b/tools/h5dump/h5dump.c @@ -92,6 +92,7 @@ static int display_fi = FALSE; /*file index */ static int display_ai = TRUE; /*array index */ static int display_escape = FALSE; /*escape non printable characters */ static int display_region = FALSE; /*print region reference data */ +static int enable_error_stack= FALSE; /* re-enable error stack */ /* sort parameters */ static H5_index_t sort_by = H5_INDEX_NAME; /*sort_by [creation_order | name] */ @@ -387,7 +388,7 @@ struct handler_t { * parameters. The long-named ones can be partially spelled. When * adding more, make sure that they don't clash with each other. */ -static const char *s_opts = "hnpeyBHirVa:c:d:f:g:k:l:t:w:xD:uX:o:b*F:s:S:Aq:z:m:R"; +static const char *s_opts = "hnpeyBHirVa:c:d:f:g:k:l:t:w:xD:uX:o:b*F:s:S:Aq:z:m:RE"; static struct long_options l_opts[] = { { "help", no_arg, 'h' }, { "hel", no_arg, 'h' }, @@ -500,6 +501,7 @@ static struct long_options l_opts[] = { { "sort_order", require_arg, 'z' }, { "format", require_arg, 'm' }, { "region", no_arg, 'R' }, + { "enable-error-stack", no_arg, 'E' }, { NULL, 0, '\0' } }; @@ -662,6 +664,8 @@ usage(const char *prog) fprintf(stdout, " -X S, --xml-ns=S (XML Schema) Use qualified names n the XML\n"); fprintf(stdout, " \":\": no namespace, default: \"hdf5:\"\n"); fprintf(stdout, " E.g., to dump a file called `-f', use h5dump -- -f\n"); + fprintf(stdout, " --enable-error-stack Prints messages from the HDF5 error stack as they\n"); + fprintf(stdout, " occur.\n"); fprintf(stdout, "\n"); fprintf(stdout, " Subsetting is available by using the following options with a dataset\n"); fprintf(stdout, " attribute. Subsetting is done by selecting a hyperslab from the data.\n"); @@ -822,8 +826,11 @@ table_list_free(void) /* Free each table */ free_table(table_list.tables[u].group_table); + HDfree(table_list.tables[u].group_table); free_table(table_list.tables[u].dset_table); + HDfree(table_list.tables[u].dset_table); free_table(table_list.tables[u].type_table); + HDfree(table_list.tables[u].type_table); } /* Free the table list */ @@ -1159,7 +1166,9 @@ print_datatype(hid_t type,unsigned in_group) indentation(indent + COL); printf("H5T_OPAQUE;\n"); indentation(indent + COL); - printf("OPAQUE_TAG \"%s\";\n", H5Tget_tag(type)); + mname = H5Tget_tag(type); + printf("OPAQUE_TAG \"%s\";\n", mname); + free(mname); indentation(indent); break; @@ -1191,16 +1200,12 @@ print_datatype(hid_t type,unsigned in_group) case H5T_REFERENCE: printf("H5T_REFERENCE"); /* The BNF document states that the type of reference should be - * displayed after "H5T_REFERENCE". Therefore add the missing - * reference type if the region command line option is used. This - * reference type will not be displayed if the region option is not used. */ - if(display_region) { - if (H5Tequal(type, H5T_STD_REF_DSETREG)==TRUE) { - printf(" { H5T_STD_REF_DSETREG }"); - } - else { - printf(" { H5T_STD_REF_OBJECT }"); - } + * displayed after "H5T_REFERENCE". */ + if (H5Tequal(type, H5T_STD_REF_DSETREG)==TRUE) { + printf(" { H5T_STD_REF_DSETREG }"); + } + else { + printf(" { H5T_STD_REF_OBJECT }"); } break; @@ -1458,8 +1463,11 @@ dump_selected_attr(hid_t loc_id, const char *name) obj_name = (char *)HDmalloc((size_t)j + 2); /* find the last / */ - while(name[j] != '/' && j >= 0) + while(j >= 0) { + if (name[j] == '/') + break; j--; + } /* object name */ if(j == -1) @@ -2540,11 +2548,18 @@ dump_data(hid_t obj_id, int obj_data, struct subset_t *sset, int display_index) char string_prefix[64]; h5tool_format_t string_dataformat; + /* VL data special information */ + unsigned int vl_data = 0; /* contains VL datatypes */ + type = H5Aget_type(obj_id); p_type = h5tools_get_native_type(type); ndims = H5Sget_simple_extent_dims(space, size, NULL); + /* Check if we have VL data in the dataset's datatype */ + if (h5tools_detect_vlen(p_type) == TRUE) + vl_data = TRUE; + for (i = 0; i < ndims; i++) nelmts *= size[i]; @@ -2585,6 +2600,10 @@ dump_data(hid_t obj_id, int obj_data, struct subset_t *sset, int display_index) status = h5tools_dump_mem(stdout, outputformat, obj_id, p_type, space, buf, depth); + /* Reclaim any VL memory, if necessary */ + if (vl_data) + H5Dvlen_reclaim(p_type, space, H5P_DEFAULT, buf); + free(buf); H5Tclose(p_type); H5Tclose(type); @@ -2655,7 +2674,7 @@ dump_comment(hid_t obj_id) /* call H5Oget_comment again with the correct value. * If the call to H5Oget_comment returned an error, skip this block */ if (cmt_bufsize > 0) { - comment = (char *)HDmalloc((size_t)cmt_bufsize); /* new_size including null terminator */ + comment = (char *)HDmalloc((size_t)(cmt_bufsize+1)); /* new_size including null terminator */ if(comment) { cmt_bufsize = H5Oget_comment(obj_id, comment, cmt_bufsize); if(cmt_bufsize > 0) { @@ -4222,6 +4241,9 @@ end_collect: } /** end subsetting parameters **/ + case 'E': + enable_error_stack = TRUE; + break; case 'h': usage(h5tools_getprogname()); leave(EXIT_SUCCESS); @@ -4343,12 +4365,14 @@ main(int argc, const char *argv[]) h5tools_init(); hand = parse_command_line(argc, argv); - if ( bin_output && outfname == NULL ) - { + if (bin_output && outfname == NULL) { error_msg("binary output requires a file name, use -o <filename>\n"); leave(EXIT_FAILURE); } + if (enable_error_stack) + H5Eset_auto2(H5E_DEFAULT, func, edata); + /* Check for conflicting options */ if (doxml) { if (!display_all) { @@ -4471,6 +4495,7 @@ main(int argc, const char *argv[]) "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" " "xsi:schemaLocation=\"http://hdfgroup.org/DTDs/HDF5-File " "http://www.hdfgroup.org/DTDs/HDF5-File.xsd\">\n",xmlnsprefix,ns); + HDfree(ns); } } else { printf("<!DOCTYPE HDF5-File PUBLIC \"HDF5-File.dtd\" \"%s\">\n", @@ -5491,10 +5516,16 @@ xml_dump_data(hid_t obj_id, int obj_data, struct subset_t UNUSED * sset, int UNU H5Tclose(type); } else if (H5Tget_class(type) == H5T_STRING) { status = xml_print_strs(obj_id, ATTRIBUTE_DATA); - } else { - /* all other data */ + } else { /* all other data */ + /* VL data special information */ + unsigned int vl_data = 0; /* contains VL datatypes */ + p_type = h5tools_get_native_type(type); + /* Check if we have VL data in the dataset's datatype */ + if (h5tools_detect_vlen(p_type) == TRUE) + vl_data = TRUE; + H5Tclose(type); space = H5Aget_space(obj_id); @@ -5511,6 +5542,10 @@ xml_dump_data(hid_t obj_id, int obj_data, struct subset_t UNUSED * sset, int UNU status = h5tools_dump_mem(stdout, outputformat, obj_id, p_type, space, buf, depth); + /* Reclaim any VL memory, if necessary */ + if (vl_data) + H5Dvlen_reclaim(p_type, space, H5P_DEFAULT, buf); + free(buf); H5Tclose(p_type); H5Sclose(space); diff --git a/tools/h5dump/h5dumpgentest.c b/tools/h5dump/h5dumpgentest.c index cb30d09..8771cc6 100644 --- a/tools/h5dump/h5dumpgentest.c +++ b/tools/h5dump/h5dumpgentest.c @@ -2855,11 +2855,11 @@ static void gent_array1_big(void) hsize_t stride[SPACE1_RANK]; /* Stride of hyperslab */ hsize_t count[SPACE1_RANK]; /* Element count of hyperslab */ hsize_t block[SPACE1_RANK]; /* Block size of hyperslab */ - start[0]=0; - stride[0]=1; - count[0]=999; - block[0]=1; - hdset_reg_ref_t *wbuf; /* buffer to write to disk */ + hdset_reg_ref_t *wbuf; /* buffer to write to disk */ + start[0] = 0; + stride[0] = 1; + count[0] = 999; + block[0] = 1; /* Allocate write & read buffers */ wbuf = (hdset_reg_ref_t*) calloc(sizeof(hdset_reg_ref_t), SPACE1_DIM1); diff --git a/tools/h5dump/testh5dump.sh.in b/tools/h5dump/testh5dump.sh.in index e289391..70cce41 100644 --- a/tools/h5dump/testh5dump.sh.in +++ b/tools/h5dump/testh5dump.sh.in @@ -196,6 +196,55 @@ TOOLTEST2() { } +# same as TOOLTEST but filters error stack outp +# Extract file name, line number, version and thread IDs because they may be different +TOOLTEST3() { + + expect="$srcdir/../testfiles/$1" + actual="../testfiles/`basename $1 .ddl`.out" + actual_err="../testfiles/`basename $1 .ddl`.err" + actual_ext="../testfiles/`basename $1 .ddl`.ext" + shift + + # Run test. + TESTING $DUMPER $@ + ( + echo "#############################" + echo "Expected output for '$DUMPER $@'" + echo "#############################" + cd $srcdir/../testfiles + $RUNSERIAL $DUMPER_BIN $@ + ) >$actual 2>$actual_err + + # Extract file name, line number, version and thread IDs because they may be different + sed -e 's/thread [0-9]*/thread (IDs)/' -e 's/: .*\.c /: (file name) /' \ + -e 's/line [0-9]*/line (number)/' \ + -e 's/v[1-9]*\.[0-9]*\./version (number)\./' \ + -e 's/[1-9]*\.[0-9]*\.[0-9]*[^)]*/version (number)/' \ + -e 's/H5Eget_auto[1-2]*/H5Eget_auto(1 or 2)/' \ + -e 's/H5Eset_auto[1-2]*/H5Eset_auto(1 or 2)/' \ + $actual_err > $actual_ext + cat $actual_ext >> $actual + + if [ ! -f $expect ]; then + # Create the expect file if it doesn't yet exist. + echo " CREATED" + cp $actual $expect + elif $CMP $expect $actual; then + echo " PASSED" + else + echo "*FAILED*" + echo " Expected result (*.ddl) differs from actual result (*.out)" + nerrors="`expr $nerrors + 1`" + test yes = "$verbose" && $DIFF $expect $actual |sed 's/^/ /' + fi + + # Clean up output file + if test -z "$HDF5_NOCLEANUP"; then + rm -f $actual $actual_err + fi + +} # Print a "SKIP" message SKIP() { @@ -581,10 +630,15 @@ TOOLTEST textlinkfar.ddl textlinkfar.h5 # test for dangling external links TOOLTEST textlink.ddl textlink.h5 +# test for error stack display (BZ2048) +TOOLTEST3 filter_fail.ddl --enable-error-stack filter_fail.h5 + +# test for -o -y for dataset with attributes +TOOLTEST tall-6.ddl -y -o data -d /g1/g1.1/dset1.1.1 tall.h5 + # tests for Fixed Array chunk indices TOOLTEST tdset_idx.ddl -p -H tdset_idx.h5 - # Report test results and exit if test $nerrors -eq 0 ; then echo "All $TESTNAME tests passed." diff --git a/tools/h5import/CMakeLists.txt b/tools/h5import/CMakeLists.txt index 8eea367..9d4ec1b 100644 --- a/tools/h5import/CMakeLists.txt +++ b/tools/h5import/CMakeLists.txt @@ -11,7 +11,7 @@ INCLUDE_DIRECTORIES (${HDF5_PROJECT_DIR}/test) # Add the h5import executables # -------------------------------------------------------------------- ADD_EXECUTABLE (h5import ${HDF5_TOOLS_H5IMPORT_SOURCE_DIR}/h5import.c) -H5_NAMING (h5import ${LIB_TYPE}) +TARGET_NAMING (h5import ${LIB_TYPE}) TARGET_LINK_LIBRARIES (h5import ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET}) SET (H5_DEP_EXECUTABLES h5import) @@ -27,14 +27,152 @@ IF (BUILD_TESTING) # Add the h5import executables # -------------------------------------------------------------------- ADD_EXECUTABLE (h5importtest ${HDF5_TOOLS_H5IMPORT_SOURCE_DIR}/h5importtest.c) - H5_NAMING (h5importtest ${LIB_TYPE}) + TARGET_NAMING (h5importtest ${LIB_TYPE}) TARGET_LINK_LIBRARIES (h5importtest ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET}) + + SET (HDF5_REFERENCE_CONF_FILES + binfp64.conf + binin8.conf + binin8w.conf + binin16.conf + binin32.conf + binuin16.conf + binuin32.conf + txtfp32.conf + txtfp64.conf + txtin8.conf + txtin16.conf + txtin32.conf + txtuin16.conf + txtuin32.conf + textpfe.conf + txtstr.conf + ) + SET (HDF5_REFERENCE_TXT_FILES + txtfp32.txt + txtfp64.txt + txtuin32.txt + txtin16.txt + txtin32.txt + in64.txt + txtstr.txt + ) + SET (HDF5_REFERENCE_TEST_FILES + binfp64.h5 + binin8.h5 + binin8w.h5 + binin16.h5 + binin32.h5 + binuin16.h5 + binuin32.h5 + txtfp32.h5 + txtfp64.h5 + txtin8.h5 + txtin16.h5 + txtin32.h5 + txtuin16.h5 + txtuin32.h5 + txtstr.h5 + test15.h5 + ) + + FILE (MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles") + FOREACH (conf_file ${HDF5_REFERENCE_CONF_FILES}) + SET (dest "${PROJECT_BINARY_DIR}/testfiles/${conf_file}") + #MESSAGE (STATUS " Copying ${conf_file}") + ADD_CUSTOM_COMMAND ( + TARGET h5import + POST_BUILD + COMMAND ${CMAKE_COMMAND} + ARGS -E copy_if_different ${HDF5_TOOLS_H5IMPORT_SOURCE_DIR}/testfiles/${conf_file} ${dest} + ) + ENDFOREACH (conf_file ${HDF5_REFERENCE_CONF_FILES}) + + FOREACH (txt_file ${HDF5_REFERENCE_TXT_FILES}) + SET (dest "${PROJECT_BINARY_DIR}/${txt_file}") + #MESSAGE (STATUS " Copying ${txt_file}") + ADD_CUSTOM_COMMAND ( + TARGET h5import + POST_BUILD + COMMAND ${CMAKE_COMMAND} + ARGS -E copy_if_different ${HDF5_TOOLS_H5IMPORT_SOURCE_DIR}/testfiles/${txt_file} ${dest} + ) + ENDFOREACH (txt_file ${HDF5_REFERENCE_TXT_FILES}) + + FILE (MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/tmp_testfiles") + FOREACH (h5_file ${HDF5_REFERENCE_TEST_FILES}) + SET (tmpdest "${PROJECT_BINARY_DIR}/tmp_testfiles/${h5_file}") + #MESSAGE (STATUS " Copying ${h5_file}") + ADD_CUSTOM_COMMAND ( + TARGET h5import + POST_BUILD + COMMAND ${CMAKE_COMMAND} + ARGS -E copy_if_different ${HDF5_TOOLS_H5IMPORT_SOURCE_DIR}/testfiles/${h5_file} ${tmpdest} + ) + SET (dest "${PROJECT_BINARY_DIR}/testfiles/${h5_file}") + #MESSAGE (STATUS " Copying ${h5_file}") + ADD_CUSTOM_COMMAND ( + TARGET h5import + POST_BUILD + COMMAND ${CMAKE_COMMAND} + ARGS -E copy_if_different ${HDF5_TOOLS_H5IMPORT_SOURCE_DIR}/testfiles/${h5_file} ${dest} + ) + ENDFOREACH (h5_file ${HDF5_REFERENCE_TEST_FILES}) ############################################################################## ############################################################################## ### T H E T E S T S M A C R O S ### ############################################################################## ############################################################################## + MACRO (ADD_H5_TEST testname importfile conffile testfile) + ADD_TEST ( + NAME H5IMPORT-${testname}-clear-objects + COMMAND ${CMAKE_COMMAND} + -E remove + ${testfile} + ${testfile}.new + ${testfile}.new.err + ${testfile}.out + ${testfile}.out.err + ) + IF (NOT "${last_test}" STREQUAL "") + SET_TESTS_PROPERTIES (H5IMPORT-${testname}-clear-objects PROPERTIES DEPENDS ${last_test}) + ENDIF (NOT "${last_test}" STREQUAL "") + ADD_TEST (NAME H5IMPORT-${testname} COMMAND $<TARGET_FILE:h5import> ${importfile} -c testfiles/${conffile} -o ${testfile}) + SET_TESTS_PROPERTIES (H5IMPORT-${testname} PROPERTIES DEPENDS H5IMPORT-${testname}-clear-objects) + SET (last_test "H5IMPORT-${testname}") + + # If using memchecker add tests without using scripts + IF (NOT HDF5_ENABLE_USING_MEMCHECKER) + ADD_TEST ( + NAME H5IMPORT-H5DUMP-${testname} + COMMAND "${CMAKE_COMMAND}" + -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>" + -D "TEST_ARGS:STRING=testfiles/${testfile}" + -D "TEST_FOLDER=${PROJECT_BINARY_DIR}" + -D "TEST_OUTPUT=${testfile}.new" + -D "TEST_EXPECT=0" + -D "TEST_FILTER=(^(HDF5)[^\n]*)" + -D "TEST_SKIP_COMPARE=TRUE" + -P "${HDF5_RESOURCES_DIR}/runTest.cmake" + ) + SET_TESTS_PROPERTIES (H5IMPORT-H5DUMP-${testname} PROPERTIES DEPENDS H5IMPORT-${testname}) + ADD_TEST ( + NAME H5IMPORT-H5DUMP_CMP-${testname} + COMMAND "${CMAKE_COMMAND}" + -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>" + -D "TEST_ARGS:STRING=tmp_testfiles/${testfile}" + -D "TEST_FOLDER=${PROJECT_BINARY_DIR}" + -D "TEST_OUTPUT=${testfile}.out" + -D "TEST_EXPECT=0" + -D "TEST_FILTER=(^(HDF5)[^\n]*)" + -D "TEST_REFERENCE=${testfile}.new" + -P "${HDF5_RESOURCES_DIR}/runTest.cmake" + ) + SET_TESTS_PROPERTIES (H5IMPORT-H5DUMP_CMP-${testname} PROPERTIES DEPENDS H5IMPORT-H5DUMP-${testname}) + SET (last_test "H5IMPORT-H5DUMP_CMP-${testname}") + ENDIF (NOT HDF5_ENABLE_USING_MEMCHECKER) + ENDMACRO (ADD_H5_TEST testname resultcode testfile vparam srcname dstname) ############################################################################## ############################################################################## @@ -58,8 +196,58 @@ IF (BUILD_TESTING) txtin32.txt ) - ADD_TEST (NAME h5importtest COMMAND $<TARGET_FILE:h5importtest>) - SET_TESTS_PROPERTIES (h5importtest PROPERTIES DEPENDS H5IMPORT-clear-objects) + ADD_TEST (NAME H5IMPORT-h5importtest COMMAND $<TARGET_FILE:h5importtest>) + SET_TESTS_PROPERTIES (H5IMPORT-h5importtest PROPERTIES DEPENDS H5IMPORT-clear-objects) + SET (last_test "H5IMPORT-h5importtest") + + # ----- TESTING "ASCII I32 rank 3 - Output BE " ; + ADD_H5_TEST (ASCII_I32 txtin16.txt txtin32.conf txtin32.h5) + + # ----- TESTING "ASCII I16 rank 3 - Output LE - CHUNKED - extended" + ADD_H5_TEST (ASCII_I16 txtin16.txt txtin16.conf txtin16.h5) + + # ----- TESTING "ASCII I8 - rank 3 - Output I8 LE-Chunked+Extended+Compressed " + ADD_H5_TEST (ASCII_I8 txtin16.txt txtin8.conf txtin8.h5) + + # ----- TESTING "ASCII UI32 - rank 3 - Output BE" + ADD_H5_TEST (ASCII_UI32 txtuin32.txt txtuin32.conf txtuin32.h5) + + # ----- TESTING "ASCII UI16 - rank 2 - Output LE+Chunked+Compressed " + ADD_H5_TEST (ASCII_UI16 txtuin32.txt txtuin16.conf txtuin16.h5) + + # ----- TESTING "ASCII F32 - rank 3 - Output LE " + ADD_H5_TEST (ASCII_F32 txtfp32.txt txtfp32.conf txtfp32.h5) + + # ----- TESTING "ASCII F64 - rank 3 - Output BE + CHUNKED+Extended+Compressed " + ADD_H5_TEST (ASCII_F64 txtfp64.txt txtfp64.conf txtfp64.h5) + + # ----- TESTING "BINARY F64 - rank 3 - Output LE+CHUNKED+Extended+Compressed " + ADD_H5_TEST (BINARY_F64 binfp64.bin binfp64.conf binfp64.h5) + + # ----- TESTING "BINARY I16 - rank 3 - Output order LE + CHUNKED + extended " + ADD_H5_TEST (BINARY_I16 binin16.bin binin16.conf binin16.h5) + + # ----- TESTING "BINARY I8 - rank 3 - Output I16LE + Chunked+Extended+Compressed " + ADD_H5_TEST (BINARY_I8 binin8.bin binin8.conf binin8.h5) + + # ----- TESTING "BINARY I32 - rank 3 - Output BE + CHUNKED " + ADD_H5_TEST (BINARY_I32 binin32.bin binin32.conf binin32.h5) + + # ----- TESTING "BINARY UI16 - rank 3 - Output byte BE + CHUNKED " + ADD_H5_TEST (BINARY_UI16 binuin16.bin binuin16.conf binuin16.h5) + + # ----- TESTING "BINARY UI32 - rank 3 - Output LE + CHUNKED " + ADD_H5_TEST (BINARY_UI32 binuin32.bin binuin32.conf binuin32.h5) + + # ----- TESTING "STR" + ADD_H5_TEST (STR txtstr.txt txtstr.conf txtstr.h5) + + # ----- TESTING "BINARY I8 CR LF EOF" + ADD_H5_TEST (BINARY_I8_EOF binin8w.bin binin8w.conf binin8w.h5) + + # ----- TESTING "ASCII F64 - rank 1 - INPUT-CLASS TEXTFPE " + ADD_H5_TEST (ASCII_F64_R1 in64.txt textpfe.conf test15.h5) + ENDIF (BUILD_TESTING) ############################################################################## diff --git a/tools/h5jam/CMakeLists.txt b/tools/h5jam/CMakeLists.txt index 215dbc8..0bdb558 100644 --- a/tools/h5jam/CMakeLists.txt +++ b/tools/h5jam/CMakeLists.txt @@ -11,19 +11,19 @@ INCLUDE_DIRECTORIES (${HDF5_PROJECT_DIR}/test) # Add the h5jam executables # -------------------------------------------------------------------- ADD_EXECUTABLE (h5jam ${HDF5_TOOLS_H5JAM_SOURCE_DIR}/h5jam.c) -H5_NAMING (h5jam ${LIB_TYPE}) +TARGET_NAMING (h5jam ${LIB_TYPE}) TARGET_LINK_LIBRARIES (h5jam ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET}) ADD_EXECUTABLE (getub ${HDF5_TOOLS_H5JAM_SOURCE_DIR}/getub.c) -H5_NAMING (getub ${LIB_TYPE}) +TARGET_NAMING (getub ${LIB_TYPE}) TARGET_LINK_LIBRARIES (getub ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET}) ADD_EXECUTABLE (tellub ${HDF5_TOOLS_H5JAM_SOURCE_DIR}/tellub.c) -H5_NAMING (tellub ${LIB_TYPE}) +TARGET_NAMING (tellub ${LIB_TYPE}) TARGET_LINK_LIBRARIES (tellub ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET}) ADD_EXECUTABLE (h5unjam ${HDF5_TOOLS_H5JAM_SOURCE_DIR}/h5unjam.c) -H5_NAMING (h5unjam ${LIB_TYPE}) +TARGET_NAMING (h5unjam ${LIB_TYPE}) TARGET_LINK_LIBRARIES (h5unjam ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET}) SET (H5_DEP_EXECUTABLES @@ -45,24 +45,375 @@ IF (BUILD_TESTING) # -------------------------------------------------------------------- IF (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS) ADD_EXECUTABLE (h5jamgentest ${HDF5_TOOLS_H5JAM_SOURCE_DIR}/h5jamgentest.c) - H5_NAMING (h5jamgentest ${LIB_TYPE}) + TARGET_NAMING (h5jamgentest ${LIB_TYPE}) TARGET_LINK_LIBRARIES (h5jamgentest ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET}) #ADD_TEST (NAME h5jamgentest COMMAND $<TARGET_FILE:h5jamgentest>) ENDIF (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS) - + + SET (HDF5_REFERENCE_TXT_FILES + u10.txt + u511.txt + u512.txt + u513.txt + ) + SET (HDF5_REFERENCE_TEST_FILES + tall.h5 + twithub.h5 + twithub513.h5 + ) + + FILE (MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles") + FOREACH (h5_file ${HDF5_REFERENCE_TEST_FILES}) + SET (dest "${PROJECT_BINARY_DIR}/testfiles/${h5_file}") + #MESSAGE (STATUS " Copying ${h5_file}") + ADD_CUSTOM_COMMAND ( + TARGET h5jam + POST_BUILD + COMMAND ${CMAKE_COMMAND} + ARGS -E copy_if_different ${HDF5_TOOLS_H5JAM_SOURCE_DIR}/testfiles/${h5_file} ${dest} + ) + ENDFOREACH (h5_file ${HDF5_REFERENCE_TEST_FILES}) + + FOREACH (txt_file ${HDF5_REFERENCE_TXT_FILES}) + SET (dest "${PROJECT_BINARY_DIR}/testfiles/${txt_file}") + #MESSAGE (STATUS " Copying ${txt_file}") + ADD_CUSTOM_COMMAND ( + TARGET h5jam + POST_BUILD + COMMAND ${CMAKE_COMMAND} + ARGS -E copy_if_different ${HDF5_TOOLS_H5JAM_SOURCE_DIR}/testfiles/${txt_file} ${dest} + ) + ENDFOREACH (txt_file ${HDF5_REFERENCE_TXT_FILES}) + ############################################################################## ############################################################################## ### T H E T E S T S M A C R O S ### ############################################################################## ############################################################################## + MACRO (CLEANUP testname) + ADD_TEST ( + NAME H5JAM-CLEANUP-${testname}-clear-objects + COMMAND ${CMAKE_COMMAND} -E remove ${ARGN} + ) + IF (NOT "${last_test}" STREQUAL "") + SET_TESTS_PROPERTIES (H5JAM-CLEANUP-${testname}-clear-objects PROPERTIES DEPENDS ${last_test}) + ENDIF (NOT "${last_test}" STREQUAL "") + SET (last_test "H5JAM-CLEANUP-${testname}-clear-objects") + ENDMACRO(CLEANUP testname testfile) + + MACRO (CHECKFILE testname expected actual) + # If using memchecker add tests without using scripts + IF (NOT HDF5_ENABLE_USING_MEMCHECKER) + ADD_TEST ( + NAME H5JAM-CHECKFILE-${testname}-clear-objects + COMMAND ${CMAKE_COMMAND} + -E remove + ${expected}.new + ${expected}.new.err + ${actual}.out + ${actual}.out.err + ) + IF (NOT "${last_test}" STREQUAL "") + SET_TESTS_PROPERTIES (H5JAM-CHECKFILE-${testname}-clear-objects PROPERTIES DEPENDS ${last_test}) + ENDIF (NOT "${last_test}" STREQUAL "") + ADD_TEST ( + NAME H5JAM-CHECKFILE-H5DUMP-${testname} + COMMAND "${CMAKE_COMMAND}" + -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>" + -D "TEST_ARGS:STRING=testfiles/${expected}" + -D "TEST_FOLDER=${PROJECT_BINARY_DIR}" + -D "TEST_OUTPUT=${expected}.new" + -D "TEST_EXPECT=0" + -D "TEST_FILTER=(^(HDF5)[^\n]*)" + -D "TEST_SKIP_COMPARE=TRUE" + -P "${HDF5_RESOURCES_DIR}/runTest.cmake" + ) + SET_TESTS_PROPERTIES (H5JAM-CHECKFILE-H5DUMP-${testname} PROPERTIES DEPENDS H5JAM-CHECKFILE-${testname}-clear-objects) + ADD_TEST ( + NAME H5JAM-CHECKFILE-H5DUMP_CMP-${testname} + COMMAND "${CMAKE_COMMAND}" + -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>" + -D "TEST_ARGS:STRING=${actual}" + -D "TEST_FOLDER=${PROJECT_BINARY_DIR}" + -D "TEST_OUTPUT=${actual}.out" + -D "TEST_EXPECT=0" + -D "TEST_FILTER=(^(HDF5)[^\n]*)" + -D "TEST_REFERENCE=${expected}.new" + -P "${HDF5_RESOURCES_DIR}/runTest.cmake" + ) + SET_TESTS_PROPERTIES (H5JAM-CHECKFILE-H5DUMP_CMP-${testname} PROPERTIES DEPENDS H5JAM-CHECKFILE-H5DUMP-${testname}) + SET (last_test "H5JAM-CHECKFILE-H5DUMP_CMP-${testname}") + ENDIF (NOT HDF5_ENABLE_USING_MEMCHECKER) + ENDMACRO(CHECKFILE testname expected actual) + + MACRO (SETUP testname infile outfile) + ADD_TEST ( + NAME H5JAM-SETUP-${testname}-clear-objects + COMMAND ${CMAKE_COMMAND} -E remove ${outfile} + ) + IF (NOT "${last_test}" STREQUAL "") + SET_TESTS_PROPERTIES (H5JAM-SETUP-${testname}-clear-objects PROPERTIES DEPENDS ${last_test}) + ENDIF (NOT "${last_test}" STREQUAL "") + ADD_TEST ( + NAME H5JAM-SETUP-${testname} + COMMAND ${CMAKE_COMMAND} -E copy_if_different ${HDF5_TOOLS_H5JAM_SOURCE_DIR}/testfiles/${infile} ${PROJECT_BINARY_DIR}/${outfile} + ) + SET_TESTS_PROPERTIES (H5JAM-SETUP-${testname} PROPERTIES DEPENDS H5JAM-SETUP-${testname}-clear-objects) + SET (last_test "H5JAM-SETUP-${testname}") + ENDMACRO(SETUP testname infile outfile) + + MACRO (CHECK_UB_1 testname testfile ufile) + IF (NOT HDF5_ENABLE_USING_MEMCHECKER) #Temporary + ADD_TEST ( + NAME H5JAM-CHECK_UB_1-${testname} + COMMAND ${CMAKE_COMMAND} -E echo "CHECK_UB_1 ${testname} ${testfile} ${ufile} ${ARGN}" + ) + IF (NOT "${last_test}" STREQUAL "") + SET_TESTS_PROPERTIES (H5JAM-CHECK_UB_1-${testname} PROPERTIES DEPENDS ${last_test}) + ENDIF (NOT "${last_test}" STREQUAL "") + SET (last_test "H5JAM-CHECK_UB_1-${testname}") + ENDIF (NOT HDF5_ENABLE_USING_MEMCHECKER) #Temporary + ENDMACRO(CHECK_UB_1 testname testfile ufile) + + MACRO (CHECK_NOUB testname testfile) + IF (NOT HDF5_ENABLE_USING_MEMCHECKER) #Temporary + ADD_TEST ( + NAME H5JAM-CHECK_NOUB-${testname} + COMMAND ${CMAKE_COMMAND} -E echo "CHECK_NOUB ${testname} ${testfile} ${ARGN}" + ) + IF (NOT "${last_test}" STREQUAL "") + SET_TESTS_PROPERTIES (H5JAM-CHECK_NOUB-${testname} PROPERTIES DEPENDS ${last_test}) + ENDIF (NOT "${last_test}" STREQUAL "") + SET (last_test "H5JAM-CHECK_NOUB-${testname}") + ENDIF (NOT HDF5_ENABLE_USING_MEMCHECKER) #Temporary + ENDMACRO(CHECK_NOUB testname testfile) + + MACRO (UNJAMTEST testname infile ufile outfile) + ADD_TEST ( + NAME H5JAM-UNJAM-${testname}-clear-objects + COMMAND ${CMAKE_COMMAND} -E remove ${outfile} + ) + IF (NOT "${last_test}" STREQUAL "") + SET_TESTS_PROPERTIES (H5JAM-UNJAM-${testname}-clear-objects PROPERTIES DEPENDS ${last_test}) + ENDIF (NOT "${last_test}" STREQUAL "") + IF (NOT "${ufile}" STREQUAL "NONE") + ADD_TEST ( + NAME H5JAM-UNJAM_D-${testname}-clear-objects + COMMAND ${CMAKE_COMMAND} -E remove ${ufile} + ) + SET_TESTS_PROPERTIES (H5JAM-UNJAM_D-${testname}-clear-objects PROPERTIES DEPENDS H5JAM-UNJAM-${testname}-clear-objects) + ADD_TEST (NAME H5JAM-UNJAM-${testname} COMMAND $<TARGET_FILE:h5unjam> -i ${infile} -u ${ufile} -o ${outfile} ${ARGN}) + SET_TESTS_PROPERTIES (H5JAM-UNJAM-${testname} PROPERTIES DEPENDS H5JAM-UNJAM_D-${testname}-clear-objects) + SET (compare_test ${ufile}) + ELSE (NOT "${ufile}" STREQUAL "NONE") + IF (NOT "${ARGN}" STREQUAL "--delete") + ADD_TEST ( + NAME H5JAM-UNJAM_D-${testname}-clear-objects + COMMAND ${CMAKE_COMMAND} -E remove ${outfile}.ufile.txt ${outfile}.ufile.txt.err + ) + SET_TESTS_PROPERTIES (H5JAM-UNJAM_D-${testname}-clear-objects PROPERTIES DEPENDS H5JAM-UNJAM-${testname}-clear-objects) + IF (HDF5_ENABLE_USING_MEMCHECKER) + ADD_TEST (NAME H5JAM-UNJAM-${testname} COMMAND $<TARGET_FILE:h5unjam> -i ${infile} -o ${outfile}) + ELSE (HDF5_ENABLE_USING_MEMCHECKER) + ADD_TEST ( + NAME H5JAM-UNJAM-${testname} + COMMAND "${CMAKE_COMMAND}" + -D "TEST_PROGRAM=$<TARGET_FILE:h5unjam>" + -D "TEST_ARGS:STRING=-i;${infile};-o;${outfile}" + -D "TEST_FOLDER=${PROJECT_BINARY_DIR}" + -D "TEST_OUTPUT=${outfile}.ufile.txt" + -D "TEST_EXPECT=0" + -D "TEST_SKIP_COMPARE=TRUE" + -P "${HDF5_RESOURCES_DIR}/runTest.cmake" + ) + ENDIF (HDF5_ENABLE_USING_MEMCHECKER) + SET_TESTS_PROPERTIES (H5JAM-UNJAM-${testname} PROPERTIES DEPENDS H5JAM-UNJAM_D-${testname}-clear-objects) + SET (compare_test "${outfile}.ufile.txt") + ELSE (NOT "${ARGN}" STREQUAL "--delete") + ADD_TEST (NAME H5JAM-UNJAM-${testname} COMMAND $<TARGET_FILE:h5unjam> -i ${infile} -o ${outfile} ${ARGN}) + SET_TESTS_PROPERTIES (H5JAM-UNJAM-${testname} PROPERTIES DEPENDS H5JAM-UNJAM-${testname}-clear-objects) + ENDIF (NOT "${ARGN}" STREQUAL "--delete") + ENDIF (NOT "${ufile}" STREQUAL "NONE") + SET (last_test "H5JAM-UNJAM-${testname}") + IF (NOT "${compare_test}" STREQUAL "") + CHECK_UB_1 (${testname} ${infile} ${compare_test}) + ENDIF (NOT "${compare_test}" STREQUAL "") + CHECK_NOUB (${testname} ${compare_test}) + ENDMACRO(UNJAMTEST testname infile ufile outfile) + + MACRO (JAMTEST testname jamfile infile outfile) + ADD_TEST ( + NAME H5JAM-${testname}-clear-objects + COMMAND ${CMAKE_COMMAND} -E remove ${outfile} + ) + IF (NOT "${last_test}" STREQUAL "") + SET_TESTS_PROPERTIES (H5JAM-${testname}-clear-objects PROPERTIES DEPENDS ${last_test}) + ENDIF (NOT "${last_test}" STREQUAL "") + IF ("${outfile}" STREQUAL "NONE") + ADD_TEST (NAME H5JAM-${testname} COMMAND $<TARGET_FILE:h5jam> -u testfiles/${jamfile} -i ${infile} ${ARGN}) + SET (compare_test testfiles/${infile}) + ELSE ("${outfile}" STREQUAL "NONE") + ADD_TEST (NAME H5JAM-${testname} COMMAND $<TARGET_FILE:h5jam> -u testfiles/${jamfile} -i testfiles/${infile} -o ${outfile} ${ARGN}) + SET (compare_test testfiles/${outfile}) + ENDIF ("${outfile}" STREQUAL "NONE") + SET_TESTS_PROPERTIES (H5JAM-${testname} PROPERTIES DEPENDS H5JAM-${testname}-clear-objects) + SET (last_test "H5JAM-${testname}") + IF ("${ARGN}" STREQUAL "--clobber") + SET (compare_orig "NONE") + ELSE ("${ARGN}" STREQUAL "--clobber") + SET (compare_orig testfiles/${infile}) + ENDIF ("${ARGN}" STREQUAL "--clobber") + CHECK_UB_1 (${testname} ${compare_test} testfiles/${jamfile} ${compare_orig}) + ENDMACRO (JAMTEST testname jamfile infile outfile) + ############################################################################## ############################################################################## ### T H E T E S T S ### ############################################################################## ############################################################################## + JAMTEST (tall_u10 u10.txt tall.h5 ta2.h5) + CHECKFILE (tall_u10 tall.h5 ta2.h5) +# CLEANUP (tall_u10 ta2.h5) + JAMTEST (tall_u511 u511.txt tall.h5 ta3.h5) + CHECKFILE (tall_u511 tall.h5 ta3.h5) +# CLEANUP (tall_u511 ta3.h5) + JAMTEST (tall_u512 u512.txt tall.h5 ta4.h5) + CHECKFILE (tall_u512 tall.h5 ta4.h5) +# CLEANUP (tall_u512 ta4.h5) + JAMTEST (tall_u513 u513.txt tall.h5 ta5.h5) + CHECKFILE (tall_u513 tall.h5 ta5.h5) +# CLEANUP (tall_u513 ta5.h5) + + SETUP (ta_u10 tall.h5 ta.h5) + JAMTEST (ta_u10 u10.txt ta.h5 NONE) + CHECKFILE (ta_u10 tall.h5 ta.h5) + SETUP (ta_u511 tall.h5 ta.h5 NOCLEAN) + JAMTEST (ta_u511 u511.txt ta.h5 NONE) + CHECKFILE (ta_u511 tall.h5 ta.h5) + SETUP (ta_u512 tall.h5 ta.h5 NOCLEAN) + JAMTEST (ta_u512 u512.txt ta.h5 NONE) + CHECKFILE (ta_u512 tall.h5 ta.h5) + SETUP (ta_u513 tall.h5 ta.h5 NOCLEAN) + JAMTEST (ta_u513 u513.txt ta.h5 NONE) + CHECKFILE (ta_u513 tall.h5 ta.h5) +# CLEANUP (ta ta.h5) + + JAMTEST (twithub_u10 u10.txt twithub.h5 tax2.h5) + CHECKFILE (twithub_u10 tall.h5 tax2.h5) +# CLEANUP (twithub_u10 tax2.h5) + JAMTEST (twithub_u511 u511.txt twithub.h5 tax3.h5) + CHECKFILE (twithub_u511 tall.h5 tax3.h5) +# CLEANUP (twithub_u511 tax3.h5) + JAMTEST (twithub_u512 u512.txt twithub.h5 tax4.h5) + CHECKFILE (twithub_u512 tall.h5 tax4.h5) +# CLEANUP (twithub_u512 tax4.h5) + JAMTEST (twithub_u513 u513.txt twithub.h5 tax5.h5) + CHECKFILE (twithub_u513 tall.h5 tax5.h5) +# CLEANUP (twithub_u513 tax5.h5) + + JAMTEST (twithub513_u10 u10.txt twithub513.h5 tax6.h5) + CHECKFILE (twithub513_u10 tall.h5 tax6.h5) +# CLEANUP (twithub513_u10 tax6.h5) + JAMTEST (twithub513_u511 u511.txt twithub513.h5 tax7.h5) + CHECKFILE (twithub513_u511 tall.h5 tax7.h5) +# CLEANUP (twithub513_u511 tax7.h5) + JAMTEST (twithub513_u512 u512.txt twithub513.h5 tax8.h5) + CHECKFILE (twithub513_u512 tall.h5 tax8.h5) +# CLEANUP (twithub513_u512 tax8.h5) + JAMTEST (twithub513_u513 u513.txt twithub513.h5 tax9.h5) + CHECKFILE (twithub513_u513 tall.h5 tax9.h5) +# CLEANUP (twithub513_u513 tax9.h5) + + JAMTEST (twithub_u10_c u10.txt twithub.h5 taz2.h5 --clobber) + CHECKFILE (twithub_u10_c tall.h5 taz2.h5) +# CLEANUP (twithub_u10_c taz2.h5) + JAMTEST (twithub_u511_c u511.txt twithub.h5 taz3.h5 --clobber) + CHECKFILE (twithub_u511_c tall.h5 taz3.h5) +# CLEANUP (twithub_u511_c taz3.h5) + JAMTEST (twithub_u512_c u512.txt twithub.h5 taz4.h5 --clobber) + CHECKFILE (twithub_u512_c tall.h5 taz4.h5) +# CLEANUP (twithub_u512_c taz4.h5) + JAMTEST (twithub_u513_c u513.txt twithub.h5 taz5.h5 --clobber) + CHECKFILE (twithub_u513_c tall.h5 taz5.h5) +# CLEANUP (twithub_u513_c taz5.h5) + + JAMTEST (twithub513_u10_c u10.txt twithub513.h5 taz6.h5 --clobber) + CHECKFILE (twithub513_u10_c tall.h5 taz6.h5) +# CLEANUP (twithub513_u10_c taz6.h5) + JAMTEST (twithub513_u511_c u511.txt twithub513.h5 taz7.h5 --clobber) + CHECKFILE (twithub513_u511_c tall.h5 taz7.h5) +# CLEANUP (twithub513_u511_c taz7.h5) + JAMTEST (twithub513_u512_c u512.txt twithub513.h5 taz8.h5 --clobber) + CHECKFILE (twithub513_u512_c tall.h5 taz8.h5) +# CLEANUP (twithub513_u512_c taz8.h5) + JAMTEST (twithub513_u513_c u513.txt twithub513.h5 taz9.h5 --clobber) + CHECKFILE (twithub513_u513_c tall.h5 taz9.h5) +# CLEANUP (twithub513_u513_c taz9.h5) + + SETUP (N_twithub_u10_c twithub.h5 tay2.h5) + JAMTEST (N_twithub_u10_c u10.txt tay2.h5 NONE --clobber) + CHECKFILE (N_twithub_u10_c tall.h5 tay2.h5) +# CLEANUP (N_twithub_u10_c tay2.h5) + SETUP (N_twithub_u511_c twithub.h5 tay3.h5) + JAMTEST (N_twithub_u511_c u511.txt tay3.h5 NONE --clobber) + CHECKFILE (N_twithub_u511_c tall.h5 tay3.h5) +# CLEANUP (N_twithub_u511_c tay3.h5) + SETUP (N_twithub_u512_c twithub.h5 tay4.h5) + JAMTEST (N_twithub_u512_c u512.txt tay4.h5 NONE --clobber) + CHECKFILE (N_twithub_u512_c tall.h5 tay4.h5) +# CLEANUP (N_twithub_u512_c tay4.h5) + SETUP (N_twithub_u513_c twithub.h5 tay5.h5) + JAMTEST (N_twithub_u513_c u513.txt tay5.h5 NONE --clobber) + CHECKFILE (N_twithub_u513_c tall.h5 tay5.h5) +# CLEANUP (N_twithub_u513_c tay5.h5) + + SETUP (N_twithub513_u10_c twithub513.h5 tay6.h5) + JAMTEST (N_twithub513_u10_c u10.txt tay6.h5 NONE --clobber) + CHECKFILE (N_twithub513_u10_c tall.h5 tay6.h5) +# CLEANUP (N_twithub513_u10_c tay6.h5) + SETUP (N_twithub513_u511_c twithub513.h5 tay7.h5) + JAMTEST (N_twithub513_u511_c u511.txt tay7.h5 NONE --clobber) + CHECKFILE (N_twithub513_u511_c tall.h5 tay7.h5) +# CLEANUP (N_twithub513_u511_c tay7.h5) + SETUP (N_twithub513_u512_c twithub513.h5 tay8.h5) + JAMTEST (N_twithub513_u512_c u512.txt tay8.h5 NONE --clobber) + CHECKFILE (N_twithub513_u512_c tall.h5 tay8.h5) +# CLEANUP (N_twithub513_u512_c tay8.h5) + SETUP (N_twithub513_u513_c twithub513.h5 tay9.h5) + JAMTEST (N_twithub513_u513_c u513.txt tay9.h5 NONE --clobber) + CHECKFILE (N_twithub513_u513_c tall.h5 tay9.h5) +# CLEANUP (N_twithub513_u513_c tay9.h5) + + SETUP (twithub_tall twithub.h5 tai1.h5) + UNJAMTEST (twithub_tall tai1.h5 o10.txt taa1.h5) + CHECKFILE (twithub_tall tall.h5 taa1.h5) +# CLEANUP (twithub_tall taa1.h5 tai1.h5 o10.txt) + SETUP (twithub513_tall twithub513.h5 tai2.h5) + UNJAMTEST (twithub513_tall tai2.h5 o512.txt taa2.h5) + CHECKFILE (twithub513_tall tall.h5 taa2.h5) +# CLEANUP (twithub513_tall taa2.h5 tai2.h5 o512.txt) + + SETUP (N_twithub_tall twithub.h5 tai3.h5) + UNJAMTEST (N_twithub_tall tai3.h5 NONE taa3.h5) + CHECKFILE (N_twithub_tall tall.h5 taa3.h5) +# CLEANUP (N_twithub_tall taa3.h5 tai3.h5) + SETUP (N_twithub513_tall twithub513.h5 tai4.h5) + UNJAMTEST (N_twithub513_tall tai4.h5 NONE taa4.h5) + CHECKFILE (N_twithub513_tall tall.h5 taa4.h5) +# CLEANUP (N_twithub513_tall taa4.h5 tai4.h5) + + SETUP (D_twithub_tall twithub.h5 taj2.h5) + UNJAMTEST (D_twithub_tall taj2.h5 NONE tac2.h5 --delete) + CHECKFILE (D_twithub_tall tall.h5 tac2.h5) +# CLEANUP (D_twithub_tall tac2.h5 taj2.h5) + SETUP (D_twithub513_tall twithub513.h5 taj3.h5) + UNJAMTEST (D_twithub513_tall taj3.h5 NONE tac3.h5 --delete) + CHECKFILE (D_twithub513_tall tall.h5 tac3.h5) +# CLEANUP (D_twithub513_tall tac3.h5 taj3.h5) + ENDIF (BUILD_TESTING) ############################################################################## diff --git a/tools/h5jam/h5jam.c b/tools/h5jam/h5jam.c index d6d3d8f..5eaa26a 100644 --- a/tools/h5jam/h5jam.c +++ b/tools/h5jam/h5jam.c @@ -13,13 +13,6 @@ * access to either file, you may request a copy from help@hdfgroup.org. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -#include <stdio.h> -#include <fcntl.h> -#include <sys/stat.h> -#ifdef H5_HAVE_UNISTD_H -#include <unistd.h> -#endif - #include "hdf5.h" #include "H5private.h" #include "h5tools_utils.h" @@ -177,8 +170,8 @@ main (int argc, const char *argv[]) hsize_t where; hsize_t newubsize; off_t fsize; - struct stat sbuf; - struct stat sbuf2; + h5_stat_t sbuf; + h5_stat_t sbuf2; int res; h5tools_setprogname(PROGRAMNAME); @@ -375,7 +368,7 @@ copy_some_to_file (int infid, int outfid, hsize_t startin, hsize_t startout, ssize_t limit) { char buf[1024]; - struct stat sbuf; + h5_stat_t sbuf; int res; ssize_t tot = 0; ssize_t howmuch = 0; diff --git a/tools/h5jam/h5unjam.c b/tools/h5jam/h5unjam.c index fd79e1a..bfebc6c 100644 --- a/tools/h5jam/h5unjam.c +++ b/tools/h5jam/h5unjam.c @@ -13,15 +13,6 @@ * access to either file, you may request a copy from help@hdfgroup.org. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -#include <stdio.h> -#include <sys/types.h> -#include <fcntl.h> -#include <sys/stat.h> - -#ifdef H5_HAVE_UNISTD_H -#include <unistd.h> -#endif - #include "hdf5.h" #include "H5private.h" #include "h5tools_utils.h" @@ -177,7 +168,7 @@ main(int argc, const char *argv[]) herr_t status; hid_t plist; int res; - struct stat sbuf; + h5_stat_t sbuf; h5tools_setprogname(PROGRAMNAME); h5tools_setstatus(EXIT_SUCCESS); diff --git a/tools/h5ls/CMakeLists.txt b/tools/h5ls/CMakeLists.txt index 431a693..6956c4e 100644 --- a/tools/h5ls/CMakeLists.txt +++ b/tools/h5ls/CMakeLists.txt @@ -11,7 +11,7 @@ INCLUDE_DIRECTORIES (${HDF5_PROJECT_DIR}/test) # Add the h5ls executable #----------------------------------------------------------------------------- ADD_EXECUTABLE (h5ls ${HDF5_TOOLS_H5LS_SOURCE_DIR}/h5ls.c) -H5_NAMING (h5ls ${LIB_TYPE}) +TARGET_NAMING (h5ls ${LIB_TYPE}) TARGET_LINK_LIBRARIES (h5ls ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET}) SET (H5_DEP_EXECUTABLES @@ -136,17 +136,25 @@ IF (BUILD_TESTING) ############################################################################## MACRO (ADD_H5_TEST resultfile resultcode) - ADD_TEST ( - NAME H5LS-${resultfile} - COMMAND "${CMAKE_COMMAND}" - -D "TEST_PROGRAM=$<TARGET_FILE:h5ls>" - -D "TEST_ARGS=${ARGN}" - -D "TEST_FOLDER=${PROJECT_BINARY_DIR}" - -D "TEST_OUTPUT=${resultfile}.out" - -D "TEST_EXPECT=${resultcode}" - -D "TEST_REFERENCE=${resultfile}.ls" - -P "${HDF5_RESOURCES_DIR}/runTest.cmake" - ) + # If using memchecker add tests without using scripts + IF (HDF5_ENABLE_USING_MEMCHECKER) + ADD_TEST (NAME H5LS-${resultfile} COMMAND $<TARGET_FILE:h5ls> ${ARGN}) + IF (${resultcode} STREQUAL "1") + SET_TESTS_PROPERTIES (H5LS-${resultfile} PROPERTIES WILL_FAIL "true") + ENDIF (${resultcode} STREQUAL "1") + ELSE (HDF5_ENABLE_USING_MEMCHECKER) + ADD_TEST ( + NAME H5LS-${resultfile} + COMMAND "${CMAKE_COMMAND}" + -D "TEST_PROGRAM=$<TARGET_FILE:h5ls>" + -D "TEST_ARGS=${ARGN}" + -D "TEST_FOLDER=${PROJECT_BINARY_DIR}" + -D "TEST_OUTPUT=${resultfile}.out" + -D "TEST_EXPECT=${resultcode}" + -D "TEST_REFERENCE=${resultfile}.ls" + -P "${HDF5_RESOURCES_DIR}/runTest.cmake" + ) + ENDIF (HDF5_ENABLE_USING_MEMCHECKER) IF (NOT "${last_test}" STREQUAL "") SET_TESTS_PROPERTIES (H5LS-${resultfile} PROPERTIES DEPENDS ${last_test}) ENDIF (NOT "${last_test}" STREQUAL "") @@ -276,13 +284,6 @@ IF (BUILD_TESTING) ENDIF (NOT "${last_test}" STREQUAL "") SET (last_test "H5LS-clearall-objects") - # If using memchecker add tests without using scripts - IF (HDF5_ENABLE_USING_MEMCHECKER) - ADD_TEST (NAME H5LS-help COMMAND h5ls -w80 -h) - ADD_TEST (NAME H5LS-tall COMMAND h5ls -w80 tall.h5) - ADD_TEST (NAME H5LS-tsoftlinks COMMAND h5ls --follow-symlinks tsoftlinks.h5) - ENDIF (HDF5_ENABLE_USING_MEMCHECKER) - # test the help syntax ADD_H5_TEST (help-1 0 -w80 -h) ADD_H5_TEST (help-2 0 -w80 --help) diff --git a/tools/h5ls/h5ls.c b/tools/h5ls/h5ls.c index 420ff3f..722f45c 100644 --- a/tools/h5ls/h5ls.c +++ b/tools/h5ls/h5ls.c @@ -105,9 +105,14 @@ usage (void) usage: %s [OPTIONS] [OBJECTS...]\n\ OPTIONS\n\ -h, -?, --help Print a usage message and exit\n\ - -a, --address Print addresses for raw data\n\ + -a, --address Print raw data address. If dataset is contiguous, address\n\ + is offset in file of beginning of raw data. If chunked,\n\ + returned list of addresses indicates offset of each chunk.\n\ + Must be used with -v, --verbose option.\n\ + Provides no information for non-dataset objects.\n\ -d, --data Print the values of datasets\n\ - -e, --errors Show all HDF5 error reporting\n\ + --enable-error-stack\n\ + Prints messages from the HDF5 error stack as they occur.\n\ --follow-symlinks\n\ Follow symbolic links (soft links and external links)\n\ to display target object information.\n\ @@ -152,7 +157,9 @@ usage: %s [OPTIONS] [OBJECTS...]\n\ updated to use the replacement option.\n\ \n\ -E or --external Follow external links.\n\ - Replaced by --follow-symlinks.\n", + Replaced by --follow-symlinks.\n\ + -e, --errors Show all HDF5 error reporting\n\ + Replaced by --enable-error-stack.\n", h5tools_getprogname()); } @@ -1449,6 +1456,13 @@ list_attr(hid_t obj, const char *attr_name, const H5A_info_t UNUSED *ainfo, p_type = h5tools_get_native_type(type); if(p_type >= 0) { + /* VL data special information */ + unsigned int vl_data = 0; /* contains VL datatypes */ + + /* Check if we have VL data in the dataset's datatype */ + if (h5tools_detect_vlen(p_type) == TRUE) + vl_data = TRUE; + temp_need= nelmts * MAX(H5Tget_size(type), H5Tget_size(p_type)); assert(temp_need == (hsize_t)((size_t)temp_need)); need = (size_t)temp_need; @@ -1456,6 +1470,11 @@ list_attr(hid_t obj, const char *attr_name, const H5A_info_t UNUSED *ainfo, assert(buf); if(H5Aread(attr, p_type, buf) >= 0) h5tools_dump_mem(stdout, &info, attr, p_type, space, buf, -1); + + /* Reclaim any VL memory, if necessary */ + if (vl_data) + H5Dvlen_reclaim(p_type, space, H5P_DEFAULT, buf); + free(buf); H5Tclose(p_type); } /* end if */ @@ -2279,6 +2298,9 @@ main(int argc, const char *argv[]) address_g = TRUE; } else if(!HDstrcmp(argv[argno], "--data")) { data_g = TRUE; + } else if(!HDstrcmp(argv[argno], "--enable-error-stack")) { + show_errors_g = TRUE; + /* deprecated --errors */ } else if(!HDstrcmp(argv[argno], "--errors")) { show_errors_g = TRUE; } else if(!HDstrcmp(argv[argno], "--follow-symlinks")) { @@ -2364,6 +2386,7 @@ main(int argc, const char *argv[]) data_g = TRUE; break; + /* deprecated -e */ case 'e': /* --errors */ show_errors_g = TRUE; break; diff --git a/tools/h5repack/CMakeLists.txt b/tools/h5repack/CMakeLists.txt index 92933d4..1593d35 100644 --- a/tools/h5repack/CMakeLists.txt +++ b/tools/h5repack/CMakeLists.txt @@ -21,7 +21,7 @@ SET (REPACK_COMMON_SRCS ) ADD_EXECUTABLE (h5repack ${REPACK_COMMON_SRCS} ${HDF5_TOOLS_H5REPACK_SOURCE_DIR}/h5repack_main.c) -H5_NAMING (h5repack ${LIB_TYPE}) +TARGET_NAMING (h5repack ${LIB_TYPE}) TARGET_LINK_LIBRARIES (h5repack ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET}) SET (H5_DEP_EXECUTABLES h5repack) @@ -37,7 +37,7 @@ IF (BUILD_TESTING) # Add h5Repack test executables # -------------------------------------------------------------------- ADD_EXECUTABLE (testh5repack_detect_szip ${HDF5_TOOLS_H5REPACK_SOURCE_DIR}/testh5repack_detect_szip.c) - H5_NAMING (testh5repack_detect_szip ${LIB_TYPE}) + TARGET_NAMING (testh5repack_detect_szip ${LIB_TYPE}) TARGET_LINK_LIBRARIES (testh5repack_detect_szip ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET} ${HDF5_TEST_LIB_TARGET}) ADD_TEST (NAME testh5repack_detect_szip COMMAND $<TARGET_FILE:testh5repack_detect_szip>) @@ -55,7 +55,7 @@ IF (BUILD_TESTING) ENDIF (HDF5_ENABLE_SZIP_SUPPORT) ADD_EXECUTABLE (h5repacktest ${REPACK_COMMON_SRCS} ${HDF5_TOOLS_H5REPACK_SOURCE_DIR}/h5repacktst.c) - H5_NAMING (h5repacktest ${LIB_TYPE}) + TARGET_NAMING (h5repacktest ${LIB_TYPE}) TARGET_LINK_LIBRARIES (h5repacktest ${HDF5_TOOLS_LIB_TARGET} ${HDF5_TEST_LIB_TARGET}) ADD_TEST (NAME h5repacktest COMMAND $<TARGET_FILE:h5repacktest>) @@ -169,10 +169,12 @@ IF (BUILD_TESTING) MACRO (ADD_H5_TEST testname testtype testfile) IF (${testtype} STREQUAL "SKIP") - ADD_TEST ( - NAME H5REPACK-${testname} - COMMAND ${CMAKE_COMMAND} -E echo "SKIP ${ARGN} ${PROJECT_BINARY_DIR}/testfiles/${testfile} ${PROJECT_BINARY_DIR}/testfiles/out.${testfile}" - ) + IF (NOT HDF5_ENABLE_USING_MEMCHECKER) + ADD_TEST ( + NAME H5REPACK-${testname}-SKIPPED + COMMAND ${CMAKE_COMMAND} -E echo "SKIP ${ARGN} ${PROJECT_BINARY_DIR}/testfiles/${testfile} ${PROJECT_BINARY_DIR}/testfiles/out.${testfile}" + ) + ENDIF (NOT HDF5_ENABLE_USING_MEMCHECKER) ELSE (${testtype} STREQUAL "SKIP") ADD_TEST ( NAME H5REPACK-${testname} @@ -192,23 +194,30 @@ IF (BUILD_TESTING) MACRO (ADD_H5_CMP_TEST testname testfilter testtype resultcode resultfile) IF (${testtype} STREQUAL "SKIP") - ADD_TEST ( - NAME H5REPACK-${testname} - COMMAND ${CMAKE_COMMAND} -E echo "SKIP ${ARGN} ${PROJECT_BINARY_DIR}/testfiles/${resultfile} ${PROJECT_BINARY_DIR}/testfiles/out.${resultfile}" - ) + IF (NOT HDF5_ENABLE_USING_MEMCHECKER) + ADD_TEST ( + NAME H5REPACK-${testname}-SKIPPED + COMMAND ${CMAKE_COMMAND} -E echo "SKIP ${ARGN} ${PROJECT_BINARY_DIR}/testfiles/${resultfile} ${PROJECT_BINARY_DIR}/testfiles/out.${resultfile}" + ) + ENDIF (NOT HDF5_ENABLE_USING_MEMCHECKER) ELSE (${testtype} STREQUAL "SKIP") - ADD_TEST ( - NAME H5REPACK-${testname} - COMMAND "${CMAKE_COMMAND}" - -D "TEST_PROGRAM=$<TARGET_FILE:h5repack>" - -D "TEST_ARGS:STRING=${ARGN};testfiles/${resultfile};testfiles/out.${resultfile}" - -D "TEST_FOLDER=${PROJECT_BINARY_DIR}" - -D "TEST_OUTPUT=${resultfile}.out" - -D "TEST_EXPECT=${resultcode}" - -D "TEST_FILTER:STRING=${testfilter}" - -D "TEST_REFERENCE=testfiles/${resultfile}.ddl" - -P "${HDF5_RESOURCES_DIR}/runTest.cmake" - ) + # If using memchecker add tests without using scripts + IF (HDF5_ENABLE_USING_MEMCHECKER) + ADD_TEST (NAME H5REPACK-${testname} COMMAND $<TARGET_FILE:h5repack> ${ARGN} testfiles/${resultfile} testfiles/out.${resultfile}) + ELSE (HDF5_ENABLE_USING_MEMCHECKER) + ADD_TEST ( + NAME H5REPACK-${testname} + COMMAND "${CMAKE_COMMAND}" + -D "TEST_PROGRAM=$<TARGET_FILE:h5repack>" + -D "TEST_ARGS:STRING=${ARGN};testfiles/${resultfile};testfiles/out.${resultfile}" + -D "TEST_FOLDER=${PROJECT_BINARY_DIR}" + -D "TEST_OUTPUT=${resultfile}.out" + -D "TEST_EXPECT=${resultcode}" + -D "TEST_FILTER:STRING=${testfilter}" + -D "TEST_REFERENCE=testfiles/${resultfile}.ddl" + -P "${HDF5_RESOURCES_DIR}/runTest.cmake" + ) + ENDIF (HDF5_ENABLE_USING_MEMCHECKER) IF (NOT "${last_test}" STREQUAL "") SET_TESTS_PROPERTIES (H5REPACK-${testname} PROPERTIES DEPENDS ${last_test}) ENDIF (NOT "${last_test}" STREQUAL "") @@ -218,51 +227,59 @@ IF (BUILD_TESTING) MACRO (ADD_H5_VERIFY_TEST testname testtype resultcode testfile testdset testfilter) IF (${testtype} STREQUAL "SKIP") - ADD_TEST ( - NAME H5REPACK_VERIFY_LAYOUT-${testname} - COMMAND ${CMAKE_COMMAND} -E echo "SKIP -d ${testdset} -pH ${PROJECT_BINARY_DIR}/testfiles/out.${resultfile}" - ) - ELSE (${testtype} STREQUAL "SKIP") - IF (${resultcode} STREQUAL "0") - ADD_TEST ( - NAME H5REPACK_VERIFY_LAYOUT-${testname} - COMMAND "${CMAKE_COMMAND}" - -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>" - -D "TEST_ARGS:STRING=-d;${testdset};-pH;testfiles/out.${testfile}" - -D "TEST_FOLDER=${PROJECT_BINARY_DIR}" - -D "TEST_OUTPUT=${testfile}-v.out" - -D "TEST_EXPECT=${resultcode}" - -D "TEST_FILTER:STRING=${testfilter}" - -D "TEST_REFERENCE=${testfilter}" - -P "${HDF5_RESOURCES_DIR}/grepTest.cmake" - ) - SET_TESTS_PROPERTIES (H5REPACK_VERIFY_LAYOUT-${testname} PROPERTIES DEPENDS H5REPACK-${testname}) - SET (last_test "H5REPACK_VERIFY_LAYOUT-${testname}") - ELSE (${resultcode} STREQUAL "0") - IF (${testfilter} STREQUAL "CHUNKED") - SET (nottestfilter "(CONTIGUOUS|COMPACT)") - ENDIF (${testfilter} STREQUAL "CHUNKED") - IF (${testfilter} STREQUAL "CONTIGUOUS") - SET (nottestfilter "(CHUNK|COMPACT)") - ENDIF (${testfilter} STREQUAL "CONTIGUOUS") - IF (${testfilter} STREQUAL "COMPACT") - SET (nottestfilter "(CONTIGUOUS|CHUNK)") - ENDIF (${testfilter} STREQUAL "COMPACT") + IF (NOT HDF5_ENABLE_USING_MEMCHECKER) ADD_TEST ( - NAME H5REPACK_VERIFY_LAYOUT_ALL-${testname} - COMMAND "${CMAKE_COMMAND}" - -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>" - -D "TEST_ARGS:STRING=-pH;testfiles/out.${testfile}" - -D "TEST_FOLDER=${PROJECT_BINARY_DIR}" - -D "TEST_OUTPUT=${testfile}-v.out" - -D "TEST_EXPECT=${resultcode}" - -D "TEST_FILTER:STRING=${nottestfilter}" - -D "TEST_REFERENCE=${testfilter}" - -P "${HDF5_RESOURCES_DIR}/grepTest.cmake" + NAME H5REPACK_VERIFY_LAYOUT-${testname}-SKIPPED + COMMAND ${CMAKE_COMMAND} -E echo "SKIP -d ${testdset} -pH ${PROJECT_BINARY_DIR}/testfiles/out.${resultfile}" ) - SET_TESTS_PROPERTIES (H5REPACK_VERIFY_LAYOUT_ALL-${testname} PROPERTIES DEPENDS H5REPACK-${testname}) - SET (last_test "H5REPACK_VERIFY_LAYOUT-${testname}") - ENDIF (${resultcode} STREQUAL "0") + ENDIF (NOT HDF5_ENABLE_USING_MEMCHECKER) + ELSE (${testtype} STREQUAL "SKIP") + IF (NOT HDF5_ENABLE_USING_MEMCHECKER) + IF (${resultcode} STREQUAL "0") + ADD_TEST ( + NAME H5REPACK_VERIFY_LAYOUT-${testname} + COMMAND "${CMAKE_COMMAND}" + -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>" + -D "TEST_ARGS:STRING=-d;${testdset};-pH;testfiles/out.${testfile}" + -D "TEST_FOLDER=${PROJECT_BINARY_DIR}" + -D "TEST_OUTPUT=${testfile}-v.out" + -D "TEST_EXPECT=${resultcode}" + -D "TEST_FILTER:STRING=${testfilter}" + -D "TEST_REFERENCE=${testfilter}" + -P "${HDF5_RESOURCES_DIR}/grepTest.cmake" + ) + IF (NOT "${last_test}" STREQUAL "") + SET_TESTS_PROPERTIES (H5REPACK_VERIFY_LAYOUT-${testname} PROPERTIES DEPENDS ${last_test}) + ENDIF (NOT "${last_test}" STREQUAL "") + SET (last_test "H5REPACK_VERIFY_LAYOUT-${testname}") + ELSE (${resultcode} STREQUAL "0") + IF (${testfilter} STREQUAL "CHUNKED") + SET (nottestfilter "(CONTIGUOUS|COMPACT)") + ENDIF (${testfilter} STREQUAL "CHUNKED") + IF (${testfilter} STREQUAL "CONTIGUOUS") + SET (nottestfilter "(CHUNK|COMPACT)") + ENDIF (${testfilter} STREQUAL "CONTIGUOUS") + IF (${testfilter} STREQUAL "COMPACT") + SET (nottestfilter "(CONTIGUOUS|CHUNK)") + ENDIF (${testfilter} STREQUAL "COMPACT") + ADD_TEST ( + NAME H5REPACK_VERIFY_LAYOUT_ALL-${testname} + COMMAND "${CMAKE_COMMAND}" + -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>" + -D "TEST_ARGS:STRING=-pH;testfiles/out.${testfile}" + -D "TEST_FOLDER=${PROJECT_BINARY_DIR}" + -D "TEST_OUTPUT=${testfile}-v.out" + -D "TEST_EXPECT=${resultcode}" + -D "TEST_FILTER:STRING=${nottestfilter}" + -D "TEST_REFERENCE=${testfilter}" + -P "${HDF5_RESOURCES_DIR}/grepTest.cmake" + ) + IF (NOT "${last_test}" STREQUAL "") + SET_TESTS_PROPERTIES (H5REPACK_VERIFY_LAYOUT_ALL-${testname} PROPERTIES DEPENDS ${last_test}) + ENDIF (NOT "${last_test}" STREQUAL "") + SET (last_test "H5REPACK_VERIFY_LAYOUT_ALL-${testname}") + ENDIF (${resultcode} STREQUAL "0") + ENDIF (NOT HDF5_ENABLE_USING_MEMCHECKER) ENDIF (${testtype} STREQUAL "SKIP") ENDMACRO (ADD_H5_VERIFY_TEST) diff --git a/tools/h5stat/CMakeLists.txt b/tools/h5stat/CMakeLists.txt index 8dceae8..86ad3ad 100644 --- a/tools/h5stat/CMakeLists.txt +++ b/tools/h5stat/CMakeLists.txt @@ -11,7 +11,7 @@ INCLUDE_DIRECTORIES (${HDF5_PROJECT_DIR}/test) # Add the h5stat executables # -------------------------------------------------------------------- ADD_EXECUTABLE (h5stat ${HDF5_TOOLS_H5STAT_SOURCE_DIR}/h5stat.c) -H5_NAMING (h5stat ${LIB_TYPE}) +TARGET_NAMING (h5stat ${LIB_TYPE}) TARGET_LINK_LIBRARIES (h5stat ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET}) SET (H5_DEP_EXECUTABLES h5stat) @@ -28,7 +28,7 @@ IF (BUILD_TESTING) # -------------------------------------------------------------------- IF (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS) ADD_EXECUTABLE (h5stat_gentest ${HDF5_TOOLS_H5STAT_SOURCE_DIR}/h5stat_gentest.c) - H5_NAMING (h5stat_gentest ${LIB_TYPE}) + TARGET_NAMING (h5stat_gentest ${LIB_TYPE}) TARGET_LINK_LIBRARIES (h5stat_gentest ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET}) #ADD_TEST (NAME h5stat_gentest COMMAND $<TARGET_FILE:h5stat_gentest>) @@ -88,17 +88,22 @@ IF (BUILD_TESTING) ############################################################################## MACRO (ADD_H5_TEST resultfile resultcode) - ADD_TEST ( - NAME H5STAT-${resultfile} - COMMAND "${CMAKE_COMMAND}" - -D "TEST_PROGRAM=$<TARGET_FILE:h5stat>" - -D "TEST_ARGS=${ARGN}" - -D "TEST_FOLDER=${PROJECT_BINARY_DIR}" - -D "TEST_OUTPUT=${resultfile}.out" - -D "TEST_EXPECT=${resultcode}" - -D "TEST_REFERENCE=${resultfile}.ddl" - -P "${HDF5_RESOURCES_DIR}/runTest.cmake" - ) + # If using memchecker add tests without using scripts + IF (HDF5_ENABLE_USING_MEMCHECKER) + ADD_TEST (NAME H5STAT-${resultfile} COMMAND $<TARGET_FILE:h5stat> ${ARGN}) + ELSE (HDF5_ENABLE_USING_MEMCHECKER) + ADD_TEST ( + NAME H5STAT-${resultfile} + COMMAND "${CMAKE_COMMAND}" + -D "TEST_PROGRAM=$<TARGET_FILE:h5stat>" + -D "TEST_ARGS=${ARGN}" + -D "TEST_FOLDER=${PROJECT_BINARY_DIR}" + -D "TEST_OUTPUT=${resultfile}.out" + -D "TEST_EXPECT=${resultcode}" + -D "TEST_REFERENCE=${resultfile}.ddl" + -P "${HDF5_RESOURCES_DIR}/runTest.cmake" + ) + ENDIF (HDF5_ENABLE_USING_MEMCHECKER) IF (NOT "${last_test}" STREQUAL "") SET_TESTS_PROPERTIES (H5STAT-${resultfile} PROPERTIES DEPENDS ${last_test}) ENDIF (NOT "${last_test}" STREQUAL "") diff --git a/tools/lib/h5diff.c b/tools/lib/h5diff.c index 5f406cf..a4d8469 100644 --- a/tools/lib/h5diff.c +++ b/tools/lib/h5diff.c @@ -47,8 +47,7 @@ * 2) when diff was found (normal mode) *------------------------------------------------------------------------- */ -int -print_objname (diff_opt_t * options, hsize_t nfound) +int print_objname (diff_opt_t * options, hsize_t nfound) { return ((options->m_verbose || nfound) && !options->m_quiet) ? 1 : 0; } @@ -60,13 +59,31 @@ print_objname (diff_opt_t * options, hsize_t nfound) * *------------------------------------------------------------------------- */ -void -do_print_objname (const char *OBJ, const char *path1, const char *path2) +void do_print_objname (const char *OBJ, const char *path1, const char *path2, diff_opt_t * opts) { + /* if verbose level is higher than 0, put space line before + * displaying any object or symbolic links. This improves + * readability of the output. + */ + if (opts->m_verbose_level >= 1) + parallel_print("\n"); parallel_print("%-7s: <%s> and <%s>\n", OBJ, path1, path2); } /*------------------------------------------------------------------------- + * Function: do_print_attrname + * + * Purpose: print attribute name + * + *------------------------------------------------------------------------- + */ +void +do_print_attrname (const char *attr, const char *path1, const char *path2) +{ + parallel_print("%-7s: <%s> and <%s>\n", attr, path1, path2); +} + +/*------------------------------------------------------------------------- * Function: print_warn * * Purpose: check print warning condition. @@ -1689,7 +1706,7 @@ out: { if(print_objname(options, nfound)) { - do_print_objname("dangling link", obj1name, obj2name); + do_print_objname("dangling link", obj1name, obj2name, options); print_found(nfound); } } @@ -1828,7 +1845,7 @@ hsize_t diff(hid_t file1_id, /* verbose (-v) and report (-r) mode */ if(options->m_verbose || options->m_report) { - do_print_objname("dataset", path1, path2); + do_print_objname("dataset", path1, path2, options); nfound = diff_dataset(file1_id, file2_id, path1, path2, options); print_found(nfound); } @@ -1844,7 +1861,7 @@ hsize_t diff(hid_t file1_id, /* print info if compatible and difference found */ if (!options->not_cmp && nfound) { - do_print_objname("dataset", path1, path2); + do_print_objname("dataset", path1, path2, options); print_found(nfound); } } @@ -1867,7 +1884,7 @@ hsize_t diff(hid_t file1_id, nfound = (ret > 0) ? 0 : 1; if(print_objname(options,nfound)) - do_print_objname("datatype", path1, path2); + do_print_objname("datatype", path1, path2, options); /* always print the number of differences found in verbose mode */ if(options->m_verbose) @@ -1894,7 +1911,7 @@ hsize_t diff(hid_t file1_id, */ case H5TRAV_TYPE_GROUP: if(print_objname(options, nfound)) - do_print_objname("group", path1, path2); + do_print_objname("group", path1, path2, options); /* always print the number of differences found in verbose mode */ if(options->m_verbose) @@ -1933,7 +1950,7 @@ hsize_t diff(hid_t file1_id, nfound = (ret != 0) ? 1 : 0; if(print_objname(options, nfound)) - do_print_objname("link", path1, path2); + do_print_objname("link", path1, path2, options); if (options->follow_links) { @@ -1958,9 +1975,6 @@ hsize_t diff(hid_t file1_id, if(options->m_verbose) print_found(nfound); - /* free link info buffer */ - HDfree(linkinfo1.trg_path); - HDfree(linkinfo2.trg_path); } break; @@ -1988,7 +2002,7 @@ hsize_t diff(hid_t file1_id, nfound = (ret != 0) ? 1 : 0; if(print_objname(options, nfound)) - do_print_objname("external link", path1, path2); + do_print_objname("external link", path1, path2, options); if (options->follow_links) { @@ -2007,10 +2021,6 @@ hsize_t diff(hid_t file1_id, file2_id, path2, options, linkinfo1.trg_type); } - - /* free link info buffer */ - HDfree(linkinfo1.trg_path); - HDfree(linkinfo2.trg_path); } /* end if */ else { @@ -2028,7 +2038,7 @@ hsize_t diff(hid_t file1_id, nfound = 0; if (print_objname (options, nfound)) - do_print_objname ("user defined link", path1, path2); + do_print_objname ("user defined link", path1, path2, options); } /* end else */ /* always print the number of differences found in verbose mode */ @@ -2045,6 +2055,12 @@ hsize_t diff(hid_t file1_id, break; } + /* free link info buffer */ + if (linkinfo1.trg_path) + HDfree(linkinfo1.trg_path); + if (linkinfo2.trg_path) + HDfree(linkinfo2.trg_path); + return nfound; out: @@ -2059,7 +2075,7 @@ out2: { if(print_objname(options, nfound)) { - do_print_objname("dangling link", path1, path2); + do_print_objname("dangling link", path1, path2, options); print_found(nfound); } } diff --git a/tools/lib/h5diff.h b/tools/lib/h5diff.h index 7e4e016..19d5ed5 100644 --- a/tools/lib/h5diff.h +++ b/tools/lib/h5diff.h @@ -36,6 +36,7 @@ typedef struct { int m_quiet; /* quiet mide: no output at all */ int m_report; /* report mode: print the data */ int m_verbose; /* verbose mode: print the data, list of objcets, warnings */ + int m_verbose_level; /* control verbose details */ int d; /* delta, absolute value to compare */ double delta; /* delta value */ int p; /* relative error to compare*/ @@ -169,7 +170,8 @@ const char* get_class(H5T_class_t tclass); const char* get_sign(H5T_sign_t sign); void print_dimensions (int rank, hsize_t *dims); int print_objname(diff_opt_t *options, hsize_t nfound); -void do_print_objname (const char *OBJ, const char *path1, const char *path2); +void do_print_objname (const char *OBJ, const char *path1, const char *path2, diff_opt_t * opts); +void do_print_attrname (const char *attr, const char *path1, const char *path2); /*------------------------------------------------------------------------- diff --git a/tools/lib/h5diff_attr.c b/tools/lib/h5diff_attr.c index 7e5fb04..e5c5965 100644 --- a/tools/lib/h5diff_attr.c +++ b/tools/lib/h5diff_attr.c @@ -18,6 +18,262 @@ #include "h5tools_utils.h" #include "h5diff.h" +#define ATTR_NAME_MAX 255 + +typedef struct table_attr_t { + char *name; + unsigned exist[2]; +} match_attr_t; + +typedef struct table_attrs_t { + size_t size; + size_t nattrs; + size_t nattrs_only1; + size_t nattrs_only2; + match_attr_t *attrs; +} table_attrs_t; + + +/*------------------------------------------------------------------------- + * Function: table_attrs_init + * + * Purpose: Initialize the table + * + * Parameter: + * - tbl [OUT] + * + * Programmer: Jonathan Kim + * + * Date: March 15, 2011 + *------------------------------------------------------------------------*/ +static void table_attrs_init(table_attrs_t **tbl) +{ + table_attrs_t* table_attrs = (table_attrs_t*) HDmalloc(sizeof(table_attrs_t)); + + table_attrs->size = 0; + table_attrs->nattrs = 0; + table_attrs->nattrs_only1 = 0; + table_attrs->nattrs_only2 = 0; + table_attrs->attrs = NULL; + + *tbl = table_attrs; +} + +/*------------------------------------------------------------------------- + * Function: table_attrs_free + * + * Purpose: free given table + * + * Parameter: + * - table [IN] + * + * Programmer: Jonathan Kim + * + * Date: March 15, 2011 + *------------------------------------------------------------------------*/ +static void table_attrs_free( table_attrs_t *table ) +{ + unsigned int i; + + if (table) + { + if(table->attrs) + { + for(i = 0; i < table->nattrs; i++) + { + if(table->attrs[i].name) + HDfree(table->attrs[i].name ); + } /* end for */ + HDfree(table->attrs); + table->attrs = NULL; + } /* end if */ + HDfree(table); + table = NULL; + } +} + +/*------------------------------------------------------------------------- + * Function: table_attr_mark_exist + * + * Purpose: mark given attribute name to table as sign of exsit + * + * Parameter: + * - exist [IN] + * - name [IN] : attribute name + * - table [OUT] + * + * Programmer: Jonathan Kim + * + * Date: March 15, 2011 + *------------------------------------------------------------------------*/ +static void table_attr_mark_exist(unsigned *exist, char *name, table_attrs_t *table) +{ + unsigned int new; + + if(table->nattrs == table->size) { + table->size = MAX(1, table->size * 2); + table->attrs = (match_attr_t *)HDrealloc(table->attrs, table->size * sizeof(match_attr_t)); + } /* end if */ + + new = table->nattrs++; + table->attrs[new].exist[0] = exist[0]; + table->attrs[new].exist[1] = exist[1]; + table->attrs[new].name = (char *)HDstrdup(name); +} + +/*------------------------------------------------------------------------- + * Function: build_match_list_attrs + * + * Purpose: get list of matching attribute name from obj1 and obj2 + * + * Note: + * Find common attribute; the algorithm for search is referred from + * build_match_list() in h5diff.c . + * + * Parameter: + * table_out [OUT] : return the list + * + * Programmer: Jonathan Kim + * + * Date: March 15, 2011 + *------------------------------------------------------------------------*/ +static herr_t build_match_list_attrs(hid_t loc1_id, hid_t loc2_id, table_attrs_t ** table_out, diff_opt_t *options) +{ + H5O_info_t oinfo1, oinfo2; /* Object info */ + hid_t attr1_id=-1; /* attr ID */ + hid_t attr2_id=-1; /* attr ID */ + size_t curr1 = 0; + size_t curr2 = 0; + unsigned infile[2]; + char name1[ATTR_NAME_MAX]; + char name2[ATTR_NAME_MAX]; + int cmp; + unsigned i; + table_attrs_t *table_lp = NULL; + + if(H5Oget_info(loc1_id, &oinfo1) < 0) + goto error; + if(H5Oget_info(loc2_id, &oinfo2) < 0) + goto error; + + table_attrs_init( &table_lp ); + + + /*-------------------------------------------------- + * build the list + */ + while(curr1 < oinfo1.num_attrs && curr2 < oinfo2.num_attrs) + { + /*------------------ + * open attribute1 */ + if((attr1_id = H5Aopen_by_idx(loc1_id, ".", H5_INDEX_NAME, H5_ITER_INC, (hsize_t)curr1, H5P_DEFAULT, H5P_DEFAULT)) < 0) + goto error; + /* get name */ + if(H5Aget_name(attr1_id, ATTR_NAME_MAX, name1) < 0) + goto error; + + /*------------------ + * open attribute2 */ + if((attr2_id = H5Aopen_by_idx(loc2_id, ".", H5_INDEX_NAME, H5_ITER_INC, (hsize_t)curr2, H5P_DEFAULT, H5P_DEFAULT)) < 0) + goto error; + /* get name */ + if(H5Aget_name(attr2_id, ATTR_NAME_MAX, name2) < 0) + goto error; + + /* criteria is string compare */ + cmp = HDstrcmp(name1, name2); + + if(cmp == 0) + { + infile[0] = 1; + infile[1] = 1; + table_attr_mark_exist(infile, name1, table_lp); + curr1++; + curr2++; + } + else if(cmp < 0) + { + infile[0] = 1; + infile[1] = 0; + table_attr_mark_exist(infile, name1, table_lp); + table_lp->nattrs_only1++; + curr1++; + } + else + { + infile[0] = 0; + infile[1] = 1; + table_attr_mark_exist(infile, name2, table_lp); + table_lp->nattrs_only2++; + curr2++; + } + } /* end while */ + + /* list1 did not end */ + infile[0] = 1; + infile[1] = 0; + while(curr1 < oinfo1.num_attrs) + { + /*------------------ + * open attribute1 */ + if((attr1_id = H5Aopen_by_idx(loc1_id, ".", H5_INDEX_NAME, H5_ITER_INC, (hsize_t)curr1, H5P_DEFAULT, H5P_DEFAULT)) < 0) + goto error; + /* get name */ + if(H5Aget_name(attr1_id, ATTR_NAME_MAX, name1) < 0) + goto error; + + table_attr_mark_exist(infile, name1, table_lp); + table_lp->nattrs_only1++; + curr1++; + } + + /* list2 did not end */ + infile[0] = 0; + infile[1] = 1; + while(curr2 < oinfo2.num_attrs) + { + /*------------------ + * open attribute2 */ + if((attr2_id = H5Aopen_by_idx(loc2_id, ".", H5_INDEX_NAME, H5_ITER_INC, (hsize_t)curr2, H5P_DEFAULT, H5P_DEFAULT)) < 0) + goto error; + /* get name */ + if(H5Aget_name(attr2_id, ATTR_NAME_MAX, name2) < 0) + goto error; + + table_attr_mark_exist(infile, name2, table_lp); + table_lp->nattrs_only2++; + curr2++; + } + + /*------------------------------------------------------ + * print the list + */ + if(options->m_verbose_level == 2) + { + /* if '-v2' is detected */ + parallel_print(" obj1 obj2\n"); + parallel_print(" --------------------------------------\n"); + for(i = 0; i < (unsigned int) table_lp->nattrs; i++) + { + char c1, c2; + c1 = (table_lp->attrs[i].exist[0]) ? 'x' : ' '; + c2 = (table_lp->attrs[i].exist[1]) ? 'x' : ' '; + parallel_print("%5c %6c %-15s\n", c1, c2, table_lp->attrs[i].name); + } /* end for */ + } + + if(options->m_verbose_level >= 1) + { + parallel_print("Attributes status: %d common, %d only in obj1, %d only in obj2\n", table_lp->nattrs - table_lp->nattrs_only1 - table_lp->nattrs_only2, table_lp->nattrs_only1, table_lp->nattrs_only2 ); + } + + *table_out = table_lp; + + return 0; + +error: + return -1; +} /*------------------------------------------------------------------------- * Function: diff_attr @@ -63,45 +319,33 @@ hsize_t diff_attr(hid_t loc1_id, int rank2; /* rank of dataset */ hsize_t dims1[H5S_MAX_RANK];/* dimensions of dataset */ hsize_t dims2[H5S_MAX_RANK];/* dimensions of dataset */ - char name1[512]; - char name2[512]; + char *name1; + char *name2; char np1[512]; char np2[512]; - H5O_info_t oinfo1, oinfo2; /* Object info */ unsigned u; /* Local index variable */ hsize_t nfound = 0; hsize_t nfound_total = 0; int j; - if(H5Oget_info(loc1_id, &oinfo1) < 0) - goto error; - if(H5Oget_info(loc2_id, &oinfo2) < 0) + table_attrs_t * match_list_attrs = NULL; + if( build_match_list_attrs(loc1_id, loc2_id, &match_list_attrs, options) < 0) goto error; - if(oinfo1.num_attrs != oinfo2.num_attrs) - return 1; - - for(u = 0; u < (unsigned)oinfo1.num_attrs; u++) { - /* reset buffers for every attribute, we might goto out and call free */ - buf1 = NULL; - buf2 = NULL; + for(u = 0; u < (unsigned)match_list_attrs->nattrs; u++) + { + if( (match_list_attrs->attrs[u].exist[0]) && (match_list_attrs->attrs[u].exist[1]) ) + { + name1 = name2 = match_list_attrs->attrs[u].name; - /* open attribute */ - if((attr1_id = H5Aopen_by_idx(loc1_id, ".", H5_INDEX_CRT_ORDER, H5_ITER_INC, (hsize_t)u, H5P_DEFAULT, H5P_DEFAULT)) < 0) - goto error; - /* get name */ - if(H5Aget_name(attr1_id, 255, name1) < 0) + /*-------------- + * attribute 1 */ + if((attr1_id = H5Aopen(loc1_id, name1, H5P_DEFAULT)) < 0) goto error; - /* use the name on the first file to open the second file */ - H5E_BEGIN_TRY - { - if((attr2_id = H5Aopen(loc2_id, name1, H5P_DEFAULT)) < 0) - goto error; - } H5E_END_TRY; - - /* get name */ - if(H5Aget_name(attr2_id, 255, name2) < 0) + /*-------------- + * attribute 2 */ + if((attr2_id = H5Aopen(loc2_id, name2, H5P_DEFAULT)) < 0) goto error; /* get the datatypes */ @@ -192,7 +436,7 @@ hsize_t diff_attr(hid_t loc1_id, /* always print name */ /* verbose (-v) and report (-r) mode */ if(options->m_verbose || options->m_report) { - do_print_objname("attribute", np1, np2); + do_print_attrname("attribute", np1, np2); nfound = diff_array(buf1, buf2, nelmts1, (hsize_t)0, rank1, dims1, options, np1, np2, mtype1_id, attr1_id, attr2_id); @@ -210,7 +454,7 @@ hsize_t diff_attr(hid_t loc1_id, /* not comparable, no display the different number */ if(!options->not_cmp && nfound) { - do_print_objname("attribute", np1, np2); + do_print_attrname("attribute", np1, np2); print_found(nfound); } /* end if */ } /* end else */ @@ -221,12 +465,14 @@ hsize_t diff_attr(hid_t loc1_id, *---------------------------------------------------------------------- */ - /* Free buf1 and buf2, being careful to reclaim any VL data first */ - if(TRUE == H5Tdetect_class(mtype1_id, H5T_VLEN)) + /* Free buf1 and buf2, check both VLEN-data VLEN-string to reclaim any + * VLEN memory first */ + if(TRUE == h5tools_detect_vlen(mtype1_id)) H5Dvlen_reclaim(mtype1_id, space1_id, H5P_DEFAULT, buf1); HDfree(buf1); + buf1 = NULL; - if(TRUE == H5Tdetect_class(mtype2_id, H5T_VLEN)) + if(TRUE == h5tools_detect_vlen(mtype2_id)) H5Dvlen_reclaim(mtype2_id, space2_id, H5P_DEFAULT, buf2); HDfree(buf2); buf2 = NULL; @@ -249,22 +495,28 @@ hsize_t diff_attr(hid_t loc1_id, goto error; nfound_total += nfound; + } } /* u */ + table_attrs_free(match_list_attrs); + return nfound_total; error: H5E_BEGIN_TRY { if(buf1) { - if(TRUE == H5Tdetect_class(mtype1_id, H5T_VLEN)) + if(TRUE == h5tools_detect_vlen(mtype1_id)) H5Dvlen_reclaim(mtype1_id, space1_id, H5P_DEFAULT, buf1); HDfree(buf1); } /* end if */ if(buf2) { - if(TRUE == H5Tdetect_class(mtype2_id, H5T_VLEN)) + if(TRUE == h5tools_detect_vlen(mtype2_id)) H5Dvlen_reclaim(mtype2_id, space2_id, H5P_DEFAULT, buf2); HDfree(buf2); } /* end if */ + + table_attrs_free(match_list_attrs); + H5Tclose(ftype1_id); H5Tclose(ftype2_id); H5Tclose(mtype1_id); diff --git a/tools/lib/h5diff_dset.c b/tools/lib/h5diff_dset.c index f8fc493..230e7bb 100644 --- a/tools/lib/h5diff_dset.c +++ b/tools/lib/h5diff_dset.c @@ -213,8 +213,10 @@ hsize_t diff_datasetid( hid_t did1, void *buf2=NULL; void *sm_buf1=NULL; void *sm_buf2=NULL; + hid_t sm_space; /*stripmine data space */ size_t need; /* bytes needed for malloc */ int i; + unsigned int vl_data = 0; /*contains VL datatypes */ /* Get the dataspace handle */ if ( (sid1 = H5Dget_space(did1)) < 0 ) @@ -325,6 +327,11 @@ hsize_t diff_datasetid( hid_t did1, can_compare=0; options->not_cmp=1; } + + /* Check if type is either VLEN-data or VLEN-string to reclaim any + * VLEN memory buffer later */ + if( TRUE == h5tools_detect_vlen(m_tid1) ) + vl_data = TRUE; /*------------------------------------------------------------------------- * only attempt to compare if possible @@ -332,7 +339,6 @@ hsize_t diff_datasetid( hid_t did1, */ if(can_compare) /* it is possible to compare */ { - unsigned int vl_data = 0; /*contains VL datatypes */ /*------------------------------------------------------------------------- * get number of elements @@ -380,10 +386,6 @@ hsize_t diff_datasetid( hid_t did1, name2 = diff_basename(obj2_name); - /* check if we have VL data in the dataset's datatype */ - if(TRUE == H5Tdetect_class(m_tid1, H5T_VLEN)) - vl_data = TRUE; - /*------------------------------------------------------------------------- * read/compare *------------------------------------------------------------------------- @@ -417,13 +419,11 @@ hsize_t diff_datasetid( hid_t did1, hsize_t p_nelmts = nelmts1; /*total selected elmts */ hsize_t elmtno; /*counter */ int carry; /*counter carry value */ - unsigned int vl_data = 0; /*contains VL datatypes */ /* stripmine info */ hsize_t sm_size[H5S_MAX_RANK]; /*stripmine size */ hsize_t sm_nbytes; /*bytes per stripmine */ hsize_t sm_nelmts; /*elements per stripmine*/ - hid_t sm_space; /*stripmine data space */ /* hyperslab info */ hsize_t hs_offset[H5S_MAX_RANK]; /*starting offset */ @@ -558,40 +558,52 @@ hsize_t diff_datasetid( hid_t did1, error: options->err_stat=1; - /* free */ - if (buf1!=NULL) - { - free(buf1); - buf1=NULL; - } - if (buf2!=NULL) - { - free(buf2); - buf2=NULL; - } - if (sm_buf1!=NULL) - { - free(sm_buf1); - sm_buf1=NULL; - } - if (sm_buf2!=NULL) - { - free(sm_buf2); - sm_buf2=NULL; - } - - /* disable error reporting */ - H5E_BEGIN_TRY { - H5Sclose(sid1); - H5Sclose(sid2); - H5Tclose(f_tid1); - H5Tclose(f_tid2); - H5Tclose(m_tid1); - H5Tclose(m_tid2); - /* enable error reporting */ - } H5E_END_TRY; - - return nfound; + /* free */ + if (buf1!=NULL) + { + /* reclaim any VL memory, if necessary */ + if(vl_data) + H5Dvlen_reclaim(m_tid1, sid1, H5P_DEFAULT, buf1); + free(buf1); + buf1=NULL; + } + if (buf2!=NULL) + { + /* reclaim any VL memory, if necessary */ + if(vl_data) + H5Dvlen_reclaim(m_tid2, sid2, H5P_DEFAULT, buf2); + free(buf2); + buf2=NULL; + } + if (sm_buf1!=NULL) + { + /* reclaim any VL memory, if necessary */ + if(vl_data) + H5Dvlen_reclaim(m_tid1, sm_space, H5P_DEFAULT, sm_buf1); + free(sm_buf1); + sm_buf1=NULL; + } + if (sm_buf2!=NULL) + { + /* reclaim any VL memory, if necessary */ + if(vl_data) + H5Dvlen_reclaim(m_tid1, sm_space, H5P_DEFAULT, sm_buf2); + free(sm_buf2); + sm_buf2=NULL; + } + + /* disable error reporting */ + H5E_BEGIN_TRY { + H5Sclose(sid1); + H5Sclose(sid2); + H5Tclose(f_tid1); + H5Tclose(f_tid2); + H5Tclose(m_tid1); + H5Tclose(m_tid2); + /* enable error reporting */ + } H5E_END_TRY; + + return nfound; } /*------------------------------------------------------------------------- diff --git a/tools/lib/h5tools.c b/tools/lib/h5tools.c index dbb20a0..14f4ad5 100644 --- a/tools/lib/h5tools.c +++ b/tools/lib/h5tools.c @@ -623,6 +623,114 @@ h5tools_ncols(const char *s) } /*------------------------------------------------------------------------- + * Function: h5tools_detect_vlen + * + * Purpose: Recursive check for any variable length data in given type. + * + * Return: + * TRUE : type conatains any variable length data + * FALSE : type doesn't contain any variable length data + * Negative value: error occur + * + * Programmer: Jonathan Kim March 18, 2011 + *------------------------------------------------------------------------- + */ +htri_t +h5tools_detect_vlen(hid_t tid) +{ + htri_t status; + htri_t ret = FALSE; + /* recursive detect any vlen data values in type (compound, array ...) */ + status = H5Tdetect_class(tid, H5T_VLEN); + if ( (status == TRUE) || (status < 0) ) + { + ret = status; + goto done; + } + + /* recursive detect any vlen string in type (compound, array ...) */ + status = h5tools_detect_vlen_str(tid); + if ( (status == TRUE) || (status < 0) ) + + { + ret = status; + goto done; + } + +done: + return ret; +} + + +/*------------------------------------------------------------------------- + * Function: h5tools_detect_vlen_str + * + * Purpose: Recursive check for variable length string of a datatype. + * + * Return: + * TRUE : type conatains any variable length string + * FALSE : type doesn't contain any variable length string + * Negative value: error occur + * + *------------------------------------------------------------------------- + */ +htri_t +h5tools_detect_vlen_str(hid_t tid) +{ + int i = 0; + int n = 0; + htri_t ret = FALSE; + H5T_class_t tclass = -1; + hid_t btid; + hid_t mtid; + + ret = H5Tis_variable_str(tid); + if ( (ret == TRUE) || (ret < 0) ) + goto done; + + tclass = H5Tget_class(tid); + if (tclass == H5T_ARRAY) + { + btid = H5Tget_super(tid); + if (btid < 0) + { + ret = (htri_t) btid; + goto done; + } + ret = h5tools_detect_vlen_str(btid); + if ( (ret == TRUE) || (ret < 0) ) + { + H5Tclose(btid); + goto done; + } + } + else if (tclass == H5T_COMPOUND) + { + n = H5Tget_nmembers(tid); + if (n < 0) + { + n = ret; + goto done; + } + + for (i = 0; i < n; i++) + { + mtid = H5Tget_member_type(tid, i); + ret = h5tools_detect_vlen_str(mtid); + if ( (ret == TRUE) || (ret < 0) ) + { + H5Tclose(mtid); + goto done; + } + H5Tclose(mtid); + } + } + +done: + return ret; +} + +/*------------------------------------------------------------------------- * Audience: Public * Chapter: H5Tools Library * Purpose: Emit a simple prefix to STREAM. @@ -910,19 +1018,19 @@ h5tools_dump_simple_data(FILE *stream, const h5tool_format_t *info, hid_t contai h5tools_str_append(&buffer, info->dset_format, ref_name); - dimension_break = h5tools_render_element(stream, info, + dimension_break = h5tools_render_element(stdout, info, ctx, &buffer, &curr_pos, ncols, i, elmt_counter); region_type = H5Sget_select_type(region_space); if(region_type==H5S_SEL_POINTS) /* Print point information */ dimension_break = h5tools_dump_region_data_points( - region_space, region_id, stream, info, ctx, + region_space, region_id, stdout, info, ctx, &buffer, &curr_pos, ncols, i, elmt_counter); else if(region_type==H5S_SEL_HYPERSLABS) /* Print block information */ dimension_break = h5tools_dump_region_data_blocks( - region_space, region_id, stream, info, ctx, + region_space, region_id, stdout, info, ctx, &buffer, &curr_pos, ncols, i, elmt_counter); else HERROR(H5E_tools_g, H5E_tools_min_id_g, "invalid region type"); @@ -951,7 +1059,7 @@ h5tools_dump_simple_data(FILE *stream, const h5tool_format_t *info, hid_t contai if (i + 1 < nelmts || (flags & END_OF_DATA) == 0) h5tools_str_append(&buffer, "%s", OPT(info->elmt_suf1, ",")); - dimension_break = h5tools_render_element(rawdatastream, info, ctx, &buffer, + dimension_break = h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, ncols, i, elmt_counter); /* Render the data element end*/ @@ -1977,6 +2085,9 @@ h5tools_print_simple_subset(FILE *stream, const h5tool_format_t *info, h5tools_c hsize_t size_row_block; /* size for blocks along rows */ hsize_t row_counter = 0; + /* VL data special information */ + unsigned int vl_data = 0; /* contains VL datatypes */ + if ((size_t) ctx->ndims > NELMTS(sm_size)) H5E_THROW(FAIL, H5E_tools_min_id_g, "ndims and sm_size comparision failed"); @@ -1985,6 +2096,12 @@ h5tools_print_simple_subset(FILE *stream, const h5tool_format_t *info, h5tools_c size_row_block = sset->block.data[row_dim]; + /* Check if we have VL data in the dataset's datatype */ + if (h5tools_detect_vlen_str(p_type) == TRUE) + vl_data = TRUE; + if (H5Tdetect_class(p_type, H5T_VLEN) == TRUE) + vl_data = TRUE; + /* display loop */ for (; hyperslab_count > 0; temp_start[row_dim] += temp_stride[row_dim], hyperslab_count--) { /* jump rows if size of block exceeded @@ -2068,6 +2185,10 @@ h5tools_print_simple_subset(FILE *stream, const h5tool_format_t *info, h5tools_c h5tools_dump_simple_data(stream, info, dset, ctx, flags, sm_nelmts, p_type, sm_buf); + /* Reclaim any VL memory, if necessary */ + if (vl_data) + H5Dvlen_reclaim(p_type, sm_space, H5P_DEFAULT, sm_buf); + if(H5Sclose(sm_space) < 0) H5E_THROW(H5E_tools_g, H5E_tools_min_id_g, "H5Sclose failed"); if(sm_buf) @@ -2319,9 +2440,9 @@ h5tools_dump_simple_subset(FILE *stream, const h5tool_format_t *info, hid_t dset /* Terminate the output */ if (ctx.cur_column) { - fputs(OPT(info->line_suf, ""), stream); - putc('\n', stream); - fputs(OPT(info->line_sep, ""), stream); + fputs(OPT(info->line_suf, ""), stdout); + putc('\n', stdout); + fputs(OPT(info->line_sep, ""), stdout); } CATCH @@ -2425,9 +2546,11 @@ h5tools_dump_simple_dset(FILE *stream, const h5tool_format_t *info, } /* Check if we have VL data in the dataset's datatype */ + if (h5tools_detect_vlen_str(p_type) == TRUE) + vl_data = TRUE; if (H5Tdetect_class(p_type, H5T_VLEN) == TRUE) vl_data = TRUE; - + /* * Determine the strip mine size and allocate a buffer. The strip mine is * a hyperslab whose size is manageable. @@ -2667,9 +2790,9 @@ h5tools_dump_dset(FILE *stream, const h5tool_format_t *info, hid_t dset, /* Print the data */ if (space_type == H5S_SIMPLE || space_type == H5S_SCALAR) { if(!sset) - status = h5tools_dump_simple_dset(stream, info, dset, p_type, indentlevel); + status = h5tools_dump_simple_dset(rawdatastream, info, dset, p_type, indentlevel); else - status = h5tools_dump_simple_subset(stream, info, dset, p_type, sset, indentlevel); + status = h5tools_dump_simple_subset(rawdatastream, info, dset, p_type, sset, indentlevel); } else /* space is H5S_NULL */ diff --git a/tools/lib/h5tools.h b/tools/lib/h5tools.h index 17abbd5..baec893 100644 --- a/tools/lib/h5tools.h +++ b/tools/lib/h5tools.h @@ -561,6 +561,8 @@ H5TOOLS_DLL hid_t h5tools_get_native_type(hid_t type); H5TOOLS_DLL hid_t h5tools_get_little_endian_type(hid_t type); H5TOOLS_DLL hid_t h5tools_get_big_endian_type(hid_t type); +H5TOOLS_DLL htri_t h5tools_detect_vlen(hid_t tid); +H5TOOLS_DLL htri_t h5tools_detect_vlen_str(hid_t tid); H5TOOLS_DLL void h5tools_dump_simple_data(FILE *stream, const h5tool_format_t *info, hid_t container, h5tools_context_t *ctx/*in,out*/, unsigned flags, diff --git a/tools/lib/h5tools_str.c b/tools/lib/h5tools_str.c index ae0646a..5166a80 100644 --- a/tools/lib/h5tools_str.c +++ b/tools/lib/h5tools_str.c @@ -132,6 +132,7 @@ char * h5tools_str_append(h5tools_str_t *str/*in,out*/, const char *fmt, ...) { va_list ap; + hbool_t isReallocated = FALSE; /* Make sure we have some memory into which to print */ if (!str->s || str->nalloc <= 0) { @@ -157,12 +158,23 @@ h5tools_str_append(h5tools_str_t *str/*in,out*/, const char *fmt, ...) nchars = HDvsnprintf(str->s + str->len, avail, fmt, ap); va_end(ap); - if (nchars < 0) { + /* Note: HDvsnprintf() behaves differently on Windows as Unix, when + * buffer is smaller than source string. On Unix, this function + * returns length of the source string and copy string upto the + * buffer size with NULL at the end of the buffer. However on + * Windows with the same condition, this function returns -1 and + * doesn't add NULL at the end of the buffer. + * Because of this different return results, isReallocated variable + * is used to handle when HDvsnprintf() returns -1 on Windows due + * to lack of buffer size, so try one more time after realloc more + * buffer size before return NULL. + */ + if (nchars < 0 && isReallocated == TRUE) { /* failure, such as bad format */ return NULL; } - if ((size_t) nchars >= avail || (0 == nchars && (strcmp(fmt, "%s")))) { + if (nchars < 0 || (size_t) nchars >= avail || (0 == nchars && (strcmp(fmt, "%s")))) { /* Truncation return value as documented by C99, or zero return value with either of the * following conditions, each of which indicates that the proper C99 return value probably * should have been positive when the format string is @@ -174,6 +186,7 @@ h5tools_str_append(h5tools_str_t *str/*in,out*/, const char *fmt, ...) str->s = realloc(str->s, newsize); assert(str->s); str->nalloc = newsize; + isReallocated = TRUE; } else { /* Success */ diff --git a/tools/lib/h5tools_utils.c b/tools/lib/h5tools_utils.c index 7586fd0..5048b87 100644 --- a/tools/lib/h5tools_utils.c +++ b/tools/lib/h5tools_utils.c @@ -231,8 +231,11 @@ get_option(int argc, const char **argv, const char *opts, const struct long_opti if (l_opts[i].has_arg != no_arg) { if (arg[len] == '=') { opt_arg = &arg[len + 1]; - } else if (opt_ind < (argc - 1) && argv[opt_ind + 1][0] != '-') { - opt_arg = argv[++opt_ind]; + } + else if (l_opts[i].has_arg != optional_arg) { + if (opt_ind < (argc - 1)) + if (argv[opt_ind + 1][0] != '-') + opt_arg = argv[++opt_ind]; } else if (l_opts[i].has_arg == require_arg) { if (opt_err) HDfprintf(stderr, diff --git a/tools/misc/CMakeLists.txt b/tools/misc/CMakeLists.txt index 6694458..b4e7078 100644 --- a/tools/misc/CMakeLists.txt +++ b/tools/misc/CMakeLists.txt @@ -12,15 +12,15 @@ INCLUDE_DIRECTORIES (${HDF5_PROJECT_DIR}/test) # -------------------------------------------------------------------- #-- Misc Executables ADD_EXECUTABLE (h5debug ${HDF5_TOOLS_MISC_SOURCE_DIR}/h5debug.c) -H5_NAMING (h5debug ${LIB_TYPE}) +TARGET_NAMING (h5debug ${LIB_TYPE}) TARGET_LINK_LIBRARIES (h5debug ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET}) ADD_EXECUTABLE (h5repart ${HDF5_TOOLS_MISC_SOURCE_DIR}/h5repart.c) -H5_NAMING (h5repart ${LIB_TYPE}) +TARGET_NAMING (h5repart ${LIB_TYPE}) TARGET_LINK_LIBRARIES (h5repart ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET}) ADD_EXECUTABLE (h5mkgrp ${HDF5_TOOLS_MISC_SOURCE_DIR}/h5mkgrp.c) -H5_NAMING (h5mkgrp ${LIB_TYPE}) +TARGET_NAMING (h5mkgrp ${LIB_TYPE}) TARGET_LINK_LIBRARIES (h5mkgrp ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET}) SET (H5_DEP_EXECUTABLES @@ -41,13 +41,13 @@ IF (BUILD_TESTING) # -------------------------------------------------------------------- IF (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS) ADD_EXECUTABLE (h5repart_gentest ${HDF5_TOOLS_MISC_SOURCE_DIR}/h5repart_gentest.c) - H5_NAMING (h5repart_gentest ${LIB_TYPE}) + TARGET_NAMING (h5repart_gentest ${LIB_TYPE}) TARGET_LINK_LIBRARIES (h5repart_gentest ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET}) #ADD_TEST (NAME h5repart_gentest COMMAND $<TARGET_FILE:h5repart_gentest>) ENDIF (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS) ADD_EXECUTABLE (h5repart_test ${HDF5_TOOLS_MISC_SOURCE_DIR}/repart_test.c) - H5_NAMING (h5repart_test ${LIB_TYPE}) + TARGET_NAMING (h5repart_test ${LIB_TYPE}) TARGET_LINK_LIBRARIES (h5repart_test ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET}) # -------------------------------------------------------------------- @@ -125,53 +125,92 @@ IF (BUILD_TESTING) ############################################################################## MACRO (ADD_H5_TEST resultfile resultcode resultoption) - ADD_TEST ( - NAME H5MKGRP-clear-${resultfile}${resultoption} - COMMAND ${CMAKE_COMMAND} - -E remove - ${PROJECT_BINARY_DIR}/../testfiles/${resultfile}.h5 - ${PROJECT_BINARY_DIR}/${resultfile}.out - ${PROJECT_BINARY_DIR}/${resultfile}.out.err - ) IF (NOT ${resultoption} STREQUAL " ") ADD_TEST ( + NAME H5MKGRP-clear-${resultfile}${resultoption} + COMMAND ${CMAKE_COMMAND} + -E remove + ${PROJECT_BINARY_DIR}/../testfiles/${resultfile}.h5 + ${PROJECT_BINARY_DIR}/${resultfile}.out + ${PROJECT_BINARY_DIR}/${resultfile}.out.err + ) + ADD_TEST ( NAME H5MKGRP-${resultfile}${resultoption} COMMAND $<TARGET_FILE:h5mkgrp> ${resultoption} ${PROJECT_BINARY_DIR}/../testfiles/${resultfile}.h5 ${ARGN} ) + SET_TESTS_PROPERTIES (H5MKGRP-${resultfile}${resultoption} PROPERTIES DEPENDS H5MKGRP-clear-${resultfile}${resultoption}) + IF (NOT HDF5_ENABLE_USING_MEMCHECKER) + ADD_TEST ( + NAME H5MKGRP-H5LS-${resultfile}${resultoption} + COMMAND "${CMAKE_COMMAND}" + -D "TEST_PROGRAM=$<TARGET_FILE:h5ls>" + -D "TEST_ARGS:STRING=-v;-r;../testfiles/${resultfile}.h5" + -D "TEST_FOLDER=${PROJECT_BINARY_DIR}" + -D "TEST_OUTPUT=${resultfile}.out" + -D "TEST_EXPECT=${resultcode}" + -D "TEST_MASK_MOD=true" + -D "TEST_REFERENCE=${resultfile}.ls" + -P "${HDF5_RESOURCES_DIR}/runTest.cmake" + ) + SET_TESTS_PROPERTIES (H5MKGRP-H5LS-${resultfile}${resultoption} PROPERTIES DEPENDS H5MKGRP-${resultfile}${resultoption}) + ENDIF (NOT HDF5_ENABLE_USING_MEMCHECKER) ELSE (NOT ${resultoption} STREQUAL " ") ADD_TEST ( - NAME H5MKGRP-${resultfile}${resultoption} + NAME H5MKGRP-clear-${resultfile} + COMMAND ${CMAKE_COMMAND} + -E remove + ${PROJECT_BINARY_DIR}/../testfiles/${resultfile}.h5 + ${PROJECT_BINARY_DIR}/${resultfile}.out + ${PROJECT_BINARY_DIR}/${resultfile}.out.err + ) + ADD_TEST ( + NAME H5MKGRP-${resultfile} COMMAND $<TARGET_FILE:h5mkgrp> ${PROJECT_BINARY_DIR}/../testfiles/${resultfile}.h5 ${ARGN} ) + SET_TESTS_PROPERTIES (H5MKGRP-${resultfile} PROPERTIES DEPENDS H5MKGRP-clear-${resultfile}) + IF (NOT HDF5_ENABLE_USING_MEMCHECKER) + ADD_TEST ( + NAME H5MKGRP-H5LS-${resultfile} + COMMAND "${CMAKE_COMMAND}" + -D "TEST_PROGRAM=$<TARGET_FILE:h5ls>" + -D "TEST_ARGS:STRING=-v;-r;../testfiles/${resultfile}.h5" + -D "TEST_FOLDER=${PROJECT_BINARY_DIR}" + -D "TEST_OUTPUT=${resultfile}.out" + -D "TEST_EXPECT=${resultcode}" + -D "TEST_MASK_MOD=true" + -D "TEST_REFERENCE=${resultfile}.ls" + -P "${HDF5_RESOURCES_DIR}/runTest.cmake" + ) + SET_TESTS_PROPERTIES (H5MKGRP-H5LS-${resultfile} PROPERTIES DEPENDS H5MKGRP-${resultfile}) + ENDIF (NOT HDF5_ENABLE_USING_MEMCHECKER) ENDIF (NOT ${resultoption} STREQUAL " ") - SET_TESTS_PROPERTIES (H5MKGRP-${resultfile}${resultoption} PROPERTIES DEPENDS H5MKGRP-clear-${resultfile}${resultoption}) - ADD_TEST ( - NAME H5MKGRP-H5LS-${resultfile}${resultoption} - COMMAND "${CMAKE_COMMAND}" - -D "TEST_PROGRAM=$<TARGET_FILE:h5ls>" - -D "TEST_ARGS:STRING=-v;-r;../testfiles/${resultfile}.h5" - -D "TEST_FOLDER=${PROJECT_BINARY_DIR}" - -D "TEST_OUTPUT=${resultfile}.out" - -D "TEST_EXPECT=${resultcode}" - -D "TEST_MASK_MOD=true" - -D "TEST_REFERENCE=${resultfile}.ls" - -P "${HDF5_RESOURCES_DIR}/runTest.cmake" - ) - SET_TESTS_PROPERTIES (H5MKGRP-H5LS-${resultfile}${resultoption} PROPERTIES DEPENDS H5MKGRP-${resultfile}${resultoption}) ENDMACRO (ADD_H5_TEST resultfile resultcode resultoption) MACRO (ADD_H5_CMP resultfile resultcode) ADD_TEST ( - NAME H5MKGRP-${resultfile} - COMMAND "${CMAKE_COMMAND}" - -D "TEST_PROGRAM=$<TARGET_FILE:h5mkgrp>" - -D "TEST_ARGS:STRING=${ARGN}" - -D "TEST_FOLDER=${PROJECT_BINARY_DIR}" - -D "TEST_OUTPUT=${resultfile}.out" - -D "TEST_EXPECT=${resultcode}" - -D "TEST_REFERENCE=${resultfile}.txt" - -P "${HDF5_RESOURCES_DIR}/runTest.cmake" + NAME H5MKGRP_CMP-clear-${resultfile} + COMMAND ${CMAKE_COMMAND} + -E remove + ${PROJECT_BINARY_DIR}/../testfiles/${resultfile}.h5 + ${PROJECT_BINARY_DIR}/${resultfile}.out + ${PROJECT_BINARY_DIR}/${resultfile}.out.err ) + IF (HDF5_ENABLE_USING_MEMCHECKER) + ADD_TEST (NAME H5MKGRP_CMP-${resultfile} COMMAND $<TARGET_FILE:h5mkgrp> ${ARGN}) + ELSE (HDF5_ENABLE_USING_MEMCHECKER) + ADD_TEST ( + NAME H5MKGRP_CMP-${resultfile} + COMMAND "${CMAKE_COMMAND}" + -D "TEST_PROGRAM=$<TARGET_FILE:h5mkgrp>" + -D "TEST_ARGS:STRING=${ARGN}" + -D "TEST_FOLDER=${PROJECT_BINARY_DIR}" + -D "TEST_OUTPUT=${resultfile}.out" + -D "TEST_EXPECT=${resultcode}" + -D "TEST_REFERENCE=${resultfile}.txt" + -P "${HDF5_RESOURCES_DIR}/runTest.cmake" + ) + ENDIF (HDF5_ENABLE_USING_MEMCHECKER) + SET_TESTS_PROPERTIES (H5MKGRP_CMP-${resultfile} PROPERTIES DEPENDS H5MKGRP_CMP-clear-${resultfile}) ENDMACRO (ADD_H5_CMP resultfile resultcode) ############################################################################## @@ -201,6 +240,7 @@ IF (BUILD_TESTING) scd_family00002.h5 scd_family00003.h5 ) + SET_TESTS_PROPERTIES (h5repart_5K-clear-objects PROPERTIES DEPENDS h5repart_20K) # repartition family member size to 5 KB. ADD_TEST (NAME h5repart_5K COMMAND $<TARGET_FILE:h5repart> -m 5k family_file%05d.h5 scd_family%05d.h5) SET_TESTS_PROPERTIES (h5repart_5K PROPERTIES DEPENDS h5repart_5K-clear-objects) @@ -212,24 +252,19 @@ IF (BUILD_TESTING) -E remove family_to_sec2.h5 ) + SET_TESTS_PROPERTIES (h5repart_sec2-clear-objects PROPERTIES DEPENDS h5repart_5K) # convert family file to sec2 file of 20,000 bytes ADD_TEST (NAME h5repart_sec2 COMMAND $<TARGET_FILE:h5repart> -m 20000 -family_to_sec2 family_file%05d.h5 family_to_sec2.h5) SET_TESTS_PROPERTIES (h5repart_sec2 PROPERTIES DEPENDS h5repart_sec2-clear-objects) # test the output files repartitioned above. ADD_TEST (NAME h5repart_test COMMAND $<TARGET_FILE:h5repart_test>) - SET_TESTS_PROPERTIES (h5repart_test PROPERTIES DEPENDS h5repart_sec2 h5repart_5K h5repart_20K) + SET_TESTS_PROPERTIES (h5repart_test PROPERTIES DEPENDS h5repart_sec2) SET (H5_DEP_EXECUTABLES ${H5_DEP_EXECUTABLES} h5repart_test ) - # If using memchecker add tests without using scripts - IF (HDF5_ENABLE_USING_MEMCHECKER) - ADD_TEST (NAME H5MKGRP-help COMMAND h5mkgrp -h) - ADD_TEST (NAME H5MKGRP-version COMMAND h5mkgrp -V) - ENDIF (HDF5_ENABLE_USING_MEMCHECKER) - # Check that help & version is displayed properly ADD_H5_CMP (h5mkgrp_help 0 "-h") ADD_H5_CMP (h5mkgrp_version 0 "-V") @@ -264,7 +299,7 @@ ENDIF (BUILD_TESTING) #-----------------------------------------------------------------------------
INSTALL ( TARGETS - h5debug h5repart + h5debug h5repart h5mkgrp RUNTIME DESTINATION ${HDF5_INSTALL_BIN_DIR}/tools COMPONENT diff --git a/tools/testfiles/filter_fail.ddl b/tools/testfiles/filter_fail.ddl new file mode 100644 index 0000000..354ac0f --- /dev/null +++ b/tools/testfiles/filter_fail.ddl @@ -0,0 +1,30 @@ +############################# +Expected output for 'h5dump --enable-error-stack filter_fail.h5' +############################# +HDF5 "filter_fail.h5" { +GROUP "/" { + DATASET "dset_fail" { + DATATYPE H5T_STD_I32LE + DATASPACE SIMPLE { ( 10 ) / ( 10 ) } + DATA { + } + } +} +} +HDF5-DIAG: Error detected in HDF5 (version (number)) thread (IDs): + #000: (file name) line (number) in H5Dread(): can't read data + major: Dataset + minor: Read failed + #001: (file name) line (number) in H5D_read(): can't read data + major: Dataset + minor: Read failed + #002: (file name) line (number) in H5D_chunk_read(): unable to read raw data chunk + major: Low-level I/O + minor: Read failed + #003: (file name) line (number) in H5D_chunk_lock(): data pipeline read failed + major: Data filters + minor: Filter operation failed + #004: (file name) line (number) in H5Z_pipeline(): required filter is not registered + major: Data filters + minor: Read failed +h5dump error: unable to print data diff --git a/tools/testfiles/filter_fail.h5 b/tools/testfiles/filter_fail.h5 Binary files differnew file mode 100644 index 0000000..c140a69 --- /dev/null +++ b/tools/testfiles/filter_fail.h5 diff --git a/tools/testfiles/help-1.ls b/tools/testfiles/help-1.ls index 6a2904e..e15a88b 100644 --- a/tools/testfiles/help-1.ls +++ b/tools/testfiles/help-1.ls @@ -4,9 +4,14 @@ usage: h5ls [OPTIONS] [OBJECTS...] OPTIONS -h, -?, --help Print a usage message and exit - -a, --address Print addresses for raw data + -a, --address Print raw data address. If dataset is contiguous, address + is offset in file of beginning of raw data. If chunked, + returned list of addresses indicates offset of each chunk. + Must be used with -v, --verbose option. + Provides no information for non-dataset objects. -d, --data Print the values of datasets - -e, --errors Show all HDF5 error reporting + --enable-error-stack + Prints messages from the HDF5 error stack as they occur. --follow-symlinks Follow symbolic links (soft links and external links) to display target object information. @@ -52,3 +57,5 @@ usage: h5ls [OPTIONS] [OBJECTS...] -E or --external Follow external links. Replaced by --follow-symlinks. + -e, --errors Show all HDF5 error reporting + Replaced by --enable-error-stack. diff --git a/tools/testfiles/help-2.ls b/tools/testfiles/help-2.ls index 92163d1..7d035c0 100644 --- a/tools/testfiles/help-2.ls +++ b/tools/testfiles/help-2.ls @@ -4,9 +4,14 @@ usage: h5ls [OPTIONS] [OBJECTS...] OPTIONS -h, -?, --help Print a usage message and exit - -a, --address Print addresses for raw data + -a, --address Print raw data address. If dataset is contiguous, address + is offset in file of beginning of raw data. If chunked, + returned list of addresses indicates offset of each chunk. + Must be used with -v, --verbose option. + Provides no information for non-dataset objects. -d, --data Print the values of datasets - -e, --errors Show all HDF5 error reporting + --enable-error-stack + Prints messages from the HDF5 error stack as they occur. --follow-symlinks Follow symbolic links (soft links and external links) to display target object information. @@ -52,3 +57,5 @@ usage: h5ls [OPTIONS] [OBJECTS...] -E or --external Follow external links. Replaced by --follow-symlinks. + -e, --errors Show all HDF5 error reporting + Replaced by --enable-error-stack. diff --git a/tools/testfiles/help-3.ls b/tools/testfiles/help-3.ls index 7199815..8de1003 100644 --- a/tools/testfiles/help-3.ls +++ b/tools/testfiles/help-3.ls @@ -4,9 +4,14 @@ usage: h5ls [OPTIONS] [OBJECTS...] OPTIONS -h, -?, --help Print a usage message and exit - -a, --address Print addresses for raw data + -a, --address Print raw data address. If dataset is contiguous, address + is offset in file of beginning of raw data. If chunked, + returned list of addresses indicates offset of each chunk. + Must be used with -v, --verbose option. + Provides no information for non-dataset objects. -d, --data Print the values of datasets - -e, --errors Show all HDF5 error reporting + --enable-error-stack + Prints messages from the HDF5 error stack as they occur. --follow-symlinks Follow symbolic links (soft links and external links) to display target object information. @@ -52,3 +57,5 @@ usage: h5ls [OPTIONS] [OBJECTS...] -E or --external Follow external links. Replaced by --follow-symlinks. + -e, --errors Show all HDF5 error reporting + Replaced by --enable-error-stack. diff --git a/tools/testfiles/tall-6.ddl b/tools/testfiles/tall-6.ddl new file mode 100644 index 0000000..199c7f3 --- /dev/null +++ b/tools/testfiles/tall-6.ddl @@ -0,0 +1,27 @@ +############################# +Expected output for 'h5dump -y -o data -d /g1/g1.1/dset1.1.1 tall.h5' +############################# +HDF5 "tall.h5" { +DATASET "/g1/g1.1/dset1.1.1" { + DATATYPE H5T_STD_I32BE + DATASPACE SIMPLE { ( 10, 10 ) / ( 10, 10 ) } + DATA { + } + ATTRIBUTE "attr1" { + DATATYPE H5T_STD_I8BE + DATASPACE SIMPLE { ( 27 ) / ( 27 ) } + DATA { + 49, 115, 116, 32, 97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 111, + 102, 32, 100, 115, 101, 116, 49, 46, 49, 46, 49, 0 + } + } + ATTRIBUTE "attr2" { + DATATYPE H5T_STD_I8BE + DATASPACE SIMPLE { ( 27 ) / ( 27 ) } + DATA { + 50, 110, 100, 32, 97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 111, + 102, 32, 100, 115, 101, 116, 49, 46, 49, 46, 49, 0 + } + } +} +} diff --git a/tools/testfiles/tattrreg.ddl b/tools/testfiles/tattrreg.ddl index 5b64b18..989daf7 100644 --- a/tools/testfiles/tattrreg.ddl +++ b/tools/testfiles/tattrreg.ddl @@ -9,7 +9,7 @@ GROUP "/" { DATA { } ATTRIBUTE "Attribute1" { - DATATYPE H5T_REFERENCE + DATATYPE H5T_REFERENCE { H5T_STD_REF_DSETREG } DATASPACE SIMPLE { ( 4 ) / ( 4 ) } DATA { (0): DATASET /Dataset2 {(2,2)-(7,7)}, DATASET /Dataset2 {(6,9), diff --git a/tools/testfiles/tdatareg.ddl b/tools/testfiles/tdatareg.ddl index ea85fb9..d68401f 100644 --- a/tools/testfiles/tdatareg.ddl +++ b/tools/testfiles/tdatareg.ddl @@ -4,7 +4,7 @@ Expected output for 'h5dump tdatareg.h5' HDF5 "tdatareg.h5" { GROUP "/" { DATASET "Dataset1" { - DATATYPE H5T_REFERENCE + DATATYPE H5T_REFERENCE { H5T_STD_REF_DSETREG } DATASPACE SIMPLE { ( 4 ) / ( 4 ) } DATA { DATASET /Dataset2 {(2,2)-(7,7)}, DATASET /Dataset2 {(6,9), (2,2), diff --git a/tools/testfiles/textlinksrc-nodangle-1.ls b/tools/testfiles/textlinksrc-nodangle-1.ls index 8a6144b..9240761 100644 --- a/tools/testfiles/textlinksrc-nodangle-1.ls +++ b/tools/testfiles/textlinksrc-nodangle-1.ls @@ -6,9 +6,14 @@ Error: --no-dangling-links must be used along with --follow-symlinks option! usage: h5ls [OPTIONS] [OBJECTS...] OPTIONS -h, -?, --help Print a usage message and exit - -a, --address Print addresses for raw data + -a, --address Print raw data address. If dataset is contiguous, address + is offset in file of beginning of raw data. If chunked, + returned list of addresses indicates offset of each chunk. + Must be used with -v, --verbose option. + Provides no information for non-dataset objects. -d, --data Print the values of datasets - -e, --errors Show all HDF5 error reporting + --enable-error-stack + Prints messages from the HDF5 error stack as they occur. --follow-symlinks Follow symbolic links (soft links and external links) to display target object information. @@ -54,3 +59,5 @@ usage: h5ls [OPTIONS] [OBJECTS...] -E or --external Follow external links. Replaced by --follow-symlinks. + -e, --errors Show all HDF5 error reporting + Replaced by --enable-error-stack. diff --git a/tools/testfiles/tgroup-1.ls b/tools/testfiles/tgroup-1.ls index 03a70fd..04066ca 100644 --- a/tools/testfiles/tgroup-1.ls +++ b/tools/testfiles/tgroup-1.ls @@ -6,9 +6,14 @@ Error: 'recursive' option not compatible with 'group info' option! usage: h5ls [OPTIONS] [OBJECTS...] OPTIONS -h, -?, --help Print a usage message and exit - -a, --address Print addresses for raw data + -a, --address Print raw data address. If dataset is contiguous, address + is offset in file of beginning of raw data. If chunked, + returned list of addresses indicates offset of each chunk. + Must be used with -v, --verbose option. + Provides no information for non-dataset objects. -d, --data Print the values of datasets - -e, --errors Show all HDF5 error reporting + --enable-error-stack + Prints messages from the HDF5 error stack as they occur. --follow-symlinks Follow symbolic links (soft links and external links) to display target object information. @@ -54,3 +59,5 @@ usage: h5ls [OPTIONS] [OBJECTS...] -E or --external Follow external links. Replaced by --follow-symlinks. + -e, --errors Show all HDF5 error reporting + Replaced by --enable-error-stack. diff --git a/tools/testfiles/tnofilename.ddl b/tools/testfiles/tnofilename.ddl index 5b9299b..0e78217 100644 --- a/tools/testfiles/tnofilename.ddl +++ b/tools/testfiles/tnofilename.ddl @@ -35,6 +35,8 @@ usage: h5dump [OPTIONS] file -X S, --xml-ns=S (XML Schema) Use qualified names n the XML ":": no namespace, default: "hdf5:" E.g., to dump a file called `-f', use h5dump -- -f + --enable-error-stack Prints messages from the HDF5 error stack as they + occur. Subsetting is available by using the following options with a dataset attribute. Subsetting is done by selecting a hyperslab from the data. diff --git a/tools/testfiles/treference.ddl b/tools/testfiles/treference.ddl index b34fa8d..b94802f 100644 --- a/tools/testfiles/treference.ddl +++ b/tools/testfiles/treference.ddl @@ -853,14 +853,14 @@ GROUP "/" { } } ATTRIBUTE "reference" { - DATATYPE H5T_REFERENCE + DATATYPE H5T_REFERENCE { H5T_STD_REF_OBJECT } DATASPACE SIMPLE { ( 2 ) / ( 2 ) } DATA { (0): DATASET 976 /dset , DATASET 976 /dset } } ATTRIBUTE "reference2D" { - DATATYPE H5T_REFERENCE + DATATYPE H5T_REFERENCE { H5T_STD_REF_OBJECT } DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } DATA { (0,0): DATASET 976 /dset , DATASET 976 /dset , @@ -869,7 +869,7 @@ GROUP "/" { } } ATTRIBUTE "reference3D" { - DATATYPE H5T_REFERENCE + DATATYPE H5T_REFERENCE { H5T_STD_REF_OBJECT } DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } DATA { (0,0,0): DATASET 976 /dset , DATASET 976 /dset , @@ -1817,14 +1817,14 @@ GROUP "/" { } } DATASET "reference" { - DATATYPE H5T_REFERENCE + DATATYPE H5T_REFERENCE { H5T_STD_REF_OBJECT } DATASPACE SIMPLE { ( 2 ) / ( 2 ) } DATA { (0): DATASET 976 /dset , DATASET 976 /dset } } DATASET "reference2D" { - DATATYPE H5T_REFERENCE + DATATYPE H5T_REFERENCE { H5T_STD_REF_OBJECT } DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } DATA { (0,0): DATASET 976 /dset , DATASET 976 /dset , @@ -1833,7 +1833,7 @@ GROUP "/" { } } DATASET "reference3D" { - DATATYPE H5T_REFERENCE + DATATYPE H5T_REFERENCE { H5T_STD_REF_OBJECT } DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } DATA { (0,0,0): DATASET 976 /dset , DATASET 976 /dset , |