mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-03-31 17:10:47 +08:00
HDFFV-10297 Merge from develop
This commit is contained in:
parent
6029b679a3
commit
0b3b55f791
8
MANIFEST
8
MANIFEST
@ -1346,6 +1346,7 @@
|
||||
./tools/test/h5format_convert/testfiles/h5fc_v_n_all.ddl
|
||||
./tools/test/h5format_convert/testfiles/h5fc_v_bt1.ddl
|
||||
./tools/test/h5format_convert/testfiles/h5fc_v_err.ddl
|
||||
./tools/test/h5format_convert/testfiles/h5fc_v_err.ddl.err
|
||||
./tools/test/h5format_convert/testfiles/h5fc_v_non_chunked.ddl
|
||||
./tools/test/h5format_convert/testfiles/h5fc_d_file.ddl
|
||||
./tools/test/h5format_convert/testfiles/h5fc_v_ndata_bt1.ddl
|
||||
@ -1425,6 +1426,7 @@
|
||||
./tools/test/h5copy/Makefile.am
|
||||
./tools/test/h5copy/h5copygentest.c
|
||||
./tools/test/h5copy/testh5copy.sh.in
|
||||
./tools/test/h5copy/dynlib_copy.c
|
||||
|
||||
|
||||
./tools/lib/Makefile.am
|
||||
@ -2515,6 +2517,12 @@
|
||||
./tools/test/h5copy/testfiles/h5copy_misc1.out
|
||||
./tools/test/h5copy/testfiles/h5copytst_new.h5
|
||||
./tools/test/h5copy/testfiles/h5copytst_new.out.ls
|
||||
./tools/test/h5copy/testfiles/h5copy_plugin_fail_ERR.out.h5.txt
|
||||
./tools/test/h5copy/testfiles/h5copy_plugin_test.out.h5.txt
|
||||
./tools/test/h5copy/testfiles/tudfilter.h5
|
||||
./tools/test/h5copy/testfiles/tudfilter2.h5
|
||||
./tools/test/h5copy/testfiles/tudfilter.h5.txt
|
||||
./tools/test/h5copy/testfiles/tudfilter.h5_ERR.txt
|
||||
|
||||
# test files for h5mkgrp
|
||||
./tools/testfiles/h5mkgrp_nested_p.ls
|
||||
|
1089
tools/lib/h5diff.c
1089
tools/lib/h5diff.c
File diff suppressed because it is too large
Load Diff
@ -38,7 +38,7 @@
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* This is used to pass multiple args into diff().
|
||||
* Passing this instead of several each arg provides smoother extensibility
|
||||
* Passing this instead of several each arg provides smoother extensibility
|
||||
* through its members along with MPI code for ph5diff
|
||||
* as it doesn't require interface change.
|
||||
*------------------------------------------------------------------------*/
|
||||
@ -95,13 +95,13 @@ H5TOOLS_DLL hsize_t h5diff(const char *fname1,
|
||||
const char *fname2,
|
||||
const char *objname1,
|
||||
const char *objname2,
|
||||
diff_opt_t *options);
|
||||
diff_opt_t *opts);
|
||||
|
||||
H5TOOLS_DLL hsize_t diff( hid_t file1_id,
|
||||
const char *path1,
|
||||
hid_t file2_id,
|
||||
const char *path2,
|
||||
diff_opt_t *options,
|
||||
diff_opt_t *opts,
|
||||
diff_args_t *argdata);
|
||||
|
||||
#ifdef H5_HAVE_PARALLEL
|
||||
@ -125,18 +125,18 @@ hsize_t diff_dataset( hid_t file1_id,
|
||||
hid_t file2_id,
|
||||
const char *obj1_name,
|
||||
const char *obj2_name,
|
||||
diff_opt_t *options);
|
||||
diff_opt_t *opts);
|
||||
|
||||
hsize_t diff_datasetid( hid_t dset1_id,
|
||||
hid_t dset2_id,
|
||||
const char *obj1_name,
|
||||
const char *obj2_name,
|
||||
diff_opt_t *options);
|
||||
diff_opt_t *opts);
|
||||
|
||||
|
||||
hsize_t diff_match( hid_t file1_id, const char *grp1, trav_info_t *info1,
|
||||
hid_t file2_id, const char *grp2, trav_info_t *info2,
|
||||
trav_table_t *table, diff_opt_t *options );
|
||||
trav_table_t *table, diff_opt_t *opts );
|
||||
|
||||
hsize_t diff_array( void *_mem1,
|
||||
void *_mem2,
|
||||
@ -144,7 +144,7 @@ hsize_t diff_array( void *_mem1,
|
||||
hsize_t hyper_start,
|
||||
int rank,
|
||||
hsize_t *dims,
|
||||
diff_opt_t *options,
|
||||
diff_opt_t *opts,
|
||||
const char *name1,
|
||||
const char *name2,
|
||||
hid_t m_type,
|
||||
@ -162,7 +162,7 @@ int diff_can_type( hid_t f_type1, /* file data type */
|
||||
hsize_t *maxdim2,
|
||||
const char *obj1_name,
|
||||
const char *obj2_name,
|
||||
diff_opt_t *options,
|
||||
diff_opt_t *opts,
|
||||
int is_compound);
|
||||
|
||||
|
||||
@ -170,7 +170,7 @@ hsize_t diff_attr(hid_t loc1_id,
|
||||
hid_t loc2_id,
|
||||
const char *path1,
|
||||
const char *path2,
|
||||
diff_opt_t *options);
|
||||
diff_opt_t *opts);
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
@ -187,10 +187,10 @@ const char* get_class(H5T_class_t tclass);
|
||||
const char* get_sign(H5T_sign_t sign);
|
||||
void print_dimensions (int rank, hsize_t *dims);
|
||||
herr_t match_up_memsize (hid_t f_tid1_id, hid_t f_tid2_id,
|
||||
hid_t *m_tid1, hid_t *m_tid2,
|
||||
hid_t *m_tid1, hid_t *m_tid2,
|
||||
size_t *m_size1, size_t *m_size2);
|
||||
/* in h5diff.c */
|
||||
int print_objname(diff_opt_t *options, hsize_t nfound);
|
||||
int print_objname(diff_opt_t *opts, hsize_t nfound);
|
||||
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);
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -136,52 +136,55 @@ static void table_attr_mark_exist(unsigned *exist, char *name, table_attrs_t *ta
|
||||
*
|
||||
* 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)
|
||||
static herr_t build_match_list_attrs(hid_t loc1_id, hid_t loc2_id, table_attrs_t ** table_out, diff_opt_t *opts)
|
||||
{
|
||||
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;
|
||||
int ret_value = 0;
|
||||
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;
|
||||
|
||||
h5difftrace("build_match_list_attrs start\n");
|
||||
|
||||
if(H5Oget_info(loc1_id, &oinfo1) < 0)
|
||||
goto error;
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "H5Oget_info first object failed");
|
||||
if(H5Oget_info(loc2_id, &oinfo2) < 0)
|
||||
goto error;
|
||||
|
||||
table_attrs_init( &table_lp );
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "H5Oget_info second object failed");
|
||||
|
||||
table_attrs_init(&table_lp);
|
||||
if (table_lp == NULL)
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "Table allocation failed");
|
||||
|
||||
/*--------------------------------------------------
|
||||
* build the list
|
||||
*/
|
||||
while(curr1 < oinfo1.num_attrs && curr2 < oinfo2.num_attrs) {
|
||||
h5diffdebug3("build_match_list_attrs 1: %ld - %ld\n", curr1, oinfo1.num_attrs);
|
||||
h5diffdebug3("build_match_list_attrs 2: %ld - %ld\n", 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;
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "H5Aopen_by_idx first attribute failed");
|
||||
/* get name */
|
||||
if(H5Aget_name(attr1_id, (size_t)ATTR_NAME_MAX, name1) < 0)
|
||||
goto error;
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "H5Aget_name first attribute failed");
|
||||
|
||||
/*------------------
|
||||
* 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;
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "H5Aopen_by_idx second attribute failed");
|
||||
/* get name */
|
||||
if(H5Aget_name(attr2_id, (size_t)ATTR_NAME_MAX, name2) < 0)
|
||||
goto error;
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "H5Aget_name second attribute failed");
|
||||
|
||||
/* criteria is string compare */
|
||||
cmp = HDstrcmp(name1, name2);
|
||||
@ -219,13 +222,16 @@ static herr_t build_match_list_attrs(hid_t loc1_id, hid_t loc2_id, table_attrs_t
|
||||
infile[0] = 1;
|
||||
infile[1] = 0;
|
||||
while(curr1 < oinfo1.num_attrs) {
|
||||
h5diffdebug3("build_match_list_attrs 1: %ld - %ld\n", 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;
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "H5Aopen_by_idx first attribute failed");
|
||||
/* get name */
|
||||
if(H5Aget_name(attr1_id, (size_t)ATTR_NAME_MAX, name1) < 0)
|
||||
goto error;
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "H5Aget_name first attribute failed");
|
||||
h5diffdebug2("build_match_list_attrs #1 name - %s\n", name1);
|
||||
|
||||
table_attr_mark_exist(infile, name1, table_lp);
|
||||
table_lp->nattrs_only1++;
|
||||
@ -240,13 +246,15 @@ static herr_t build_match_list_attrs(hid_t loc1_id, hid_t loc2_id, table_attrs_t
|
||||
infile[0] = 0;
|
||||
infile[1] = 1;
|
||||
while(curr2 < oinfo2.num_attrs) {
|
||||
h5diffdebug3("build_match_list_attrs 2: %ld - %ld\n", 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;
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "H5Aopen_by_idx second attribute failed");
|
||||
/* get name */
|
||||
if(H5Aget_name(attr2_id, (size_t)ATTR_NAME_MAX, name2) < 0)
|
||||
goto error;
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "H5Aget_name second attribute failed");
|
||||
h5diffdebug2("build_match_list_attrs #2 name - %s\n", name2);
|
||||
|
||||
table_attr_mark_exist(infile, name2, table_lp);
|
||||
table_lp->nattrs_only2++;
|
||||
@ -254,12 +262,13 @@ static herr_t build_match_list_attrs(hid_t loc1_id, hid_t loc2_id, table_attrs_t
|
||||
|
||||
/* close for next turn */
|
||||
H5Aclose(attr2_id);
|
||||
attr2_id = -1;
|
||||
}
|
||||
|
||||
/*------------------------------------------------------
|
||||
* print the list
|
||||
*/
|
||||
if(options->m_verbose_level == 2) {
|
||||
if(opts->m_verbose_level == 2) {
|
||||
/* if '-v2' is detected */
|
||||
parallel_print(" obj1 obj2\n");
|
||||
parallel_print(" --------------------------------------\n");
|
||||
@ -271,42 +280,35 @@ static herr_t build_match_list_attrs(hid_t loc1_id, hid_t loc2_id, table_attrs_t
|
||||
} /* end for */
|
||||
}
|
||||
|
||||
if(options->m_verbose_level >= 1)
|
||||
if(opts->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);
|
||||
|
||||
done:
|
||||
*table_out = table_lp;
|
||||
|
||||
return 0;
|
||||
|
||||
error:
|
||||
if (0 < attr1_id)
|
||||
/* disable error reporting */
|
||||
H5E_BEGIN_TRY {
|
||||
H5Aclose(attr1_id);
|
||||
if (0 < attr2_id)
|
||||
H5Aclose(attr2_id);
|
||||
} H5E_END_TRY;
|
||||
|
||||
return -1;
|
||||
h5diffdebug2("build_match_list_attrs end - errstat:%d\n", opts->err_stat);
|
||||
|
||||
return ret_value;
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: diff_attr
|
||||
*
|
||||
* Purpose: compare attributes located in LOC1_ID and LOC2_ID, which are
|
||||
* obtained either from
|
||||
* loc_id = H5Gopen2(fid, name, H5P_DEFAULT);
|
||||
* loc_id = H5Dopen2(fid, name);
|
||||
* loc_id = H5Topen2(fid, name, H5P_DEFAULT);
|
||||
*
|
||||
* Return: number of differences found
|
||||
*
|
||||
* Programmer: Pedro Vicente, pvn@ncsa.uiuc.edu
|
||||
*
|
||||
* Date: November, 03, 2003
|
||||
*
|
||||
* Modifications:
|
||||
* March, 02, 2007: return the number of differences found
|
||||
* Purpose: compare attributes located in LOC1_ID and LOC2_ID, which are
|
||||
* obtained either from
|
||||
* loc_id = H5Gopen2(fid, name, H5P_DEFAULT);
|
||||
* loc_id = H5Dopen2(fid, name);
|
||||
* loc_id = H5Topen2(fid, name, H5P_DEFAULT);
|
||||
*
|
||||
* Return: number of differences found
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
@ -314,107 +316,118 @@ hsize_t diff_attr(hid_t loc1_id,
|
||||
hid_t loc2_id,
|
||||
const char *path1,
|
||||
const char *path2,
|
||||
diff_opt_t *options)
|
||||
diff_opt_t *opts)
|
||||
{
|
||||
hid_t attr1_id=-1; /* attr ID */
|
||||
hid_t attr2_id=-1; /* attr ID */
|
||||
hid_t space1_id=-1; /* space ID */
|
||||
hid_t space2_id=-1; /* space ID */
|
||||
hid_t ftype1_id=-1; /* file data type ID */
|
||||
hid_t ftype2_id=-1; /* file data type ID */
|
||||
int vstrtype1=0; /* ftype1 is a variable string */
|
||||
int vstrtype2=0; /* ftype2 is a variable string */
|
||||
hid_t mtype1_id=-1; /* memory data type ID */
|
||||
hid_t mtype2_id=-1; /* memory data type ID */
|
||||
size_t msize1; /* memory size of memory type */
|
||||
size_t msize2; /* memory size of memory type */
|
||||
void *buf1=NULL; /* data buffer */
|
||||
void *buf2=NULL; /* data buffer */
|
||||
hbool_t buf1hasdata=FALSE; /* buffer has data */
|
||||
hbool_t buf2hasdata=FALSE; /* buffer has data */
|
||||
hsize_t nelmts1; /* number of elements in dataset */
|
||||
int rank1; /* rank of dataset */
|
||||
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;
|
||||
char *name2;
|
||||
int ret_value = opts->err_stat;
|
||||
hid_t attr1_id = -1; /* attr ID */
|
||||
hid_t attr2_id = -1; /* attr ID */
|
||||
hid_t space1_id = -1; /* space ID */
|
||||
hid_t space2_id = -1; /* space ID */
|
||||
hid_t ftype1_id = -1; /* file data type ID */
|
||||
hid_t ftype2_id = -1; /* file data type ID */
|
||||
int vstrtype1 = 0; /* ftype1 is a variable string */
|
||||
int vstrtype2 = 0; /* ftype2 is a variable string */
|
||||
hid_t mtype1_id = -1; /* memory data type ID */
|
||||
hid_t mtype2_id = -1; /* memory data type ID */
|
||||
size_t msize1; /* memory size of memory type */
|
||||
size_t msize2; /* memory size of memory type */
|
||||
void *buf1 = NULL; /* data buffer */
|
||||
void *buf2 = NULL; /* data buffer */
|
||||
hbool_t buf1hasdata = FALSE; /* buffer has data */
|
||||
hbool_t buf2hasdata = FALSE; /* buffer has data */
|
||||
hsize_t nelmts1; /* number of elements in dataset */
|
||||
int rank1; /* rank of dataset */
|
||||
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 = NULL;
|
||||
char *name2 = NULL;
|
||||
char np1[512];
|
||||
char np2[512];
|
||||
unsigned u; /* Local index variable */
|
||||
unsigned u; /* Local index variable */
|
||||
hsize_t nfound = 0;
|
||||
hsize_t nfound_total = 0;
|
||||
int j;
|
||||
|
||||
table_attrs_t *match_list_attrs = NULL;
|
||||
if(build_match_list_attrs(loc1_id, loc2_id, &match_list_attrs, options) < 0)
|
||||
goto error;
|
||||
h5difftrace("diff_attr start\n");
|
||||
|
||||
if(build_match_list_attrs(loc1_id, loc2_id, &match_list_attrs, opts) < 0) {
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "build_match_list_attrs failed");
|
||||
}
|
||||
h5diffdebug2("build_match_list_attrs - errstat:%d\n", opts->err_stat);
|
||||
|
||||
/* if detect any unique extra attr */
|
||||
if(match_list_attrs->nattrs_only1 || match_list_attrs->nattrs_only2) {
|
||||
h5difftrace("diff_attr attributes only in one file\n");
|
||||
/* exit will be 1 */
|
||||
options->contents = 0;
|
||||
opts->contents = 0;
|
||||
}
|
||||
h5diffdebug2("match_list_attrs info - errstat:%d\n", opts->err_stat);
|
||||
|
||||
for(u = 0; u < (unsigned)match_list_attrs->nattrs; u++) {
|
||||
h5diffdebug3("match_list_attrs loop[%d] - errstat:%d\n", u, opts->err_stat);
|
||||
if((match_list_attrs->attrs[u].exist[0]) && (match_list_attrs->attrs[u].exist[1])) {
|
||||
name1 = name2 = match_list_attrs->attrs[u].name;
|
||||
h5diffdebug2("diff_attr name - %s\n", name1);
|
||||
|
||||
/*--------------
|
||||
* attribute 1 */
|
||||
if((attr1_id = H5Aopen(loc1_id, name1, H5P_DEFAULT)) < 0)
|
||||
goto error;
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Aopen first attribute failed");
|
||||
|
||||
/*--------------
|
||||
* attribute 2 */
|
||||
if((attr2_id = H5Aopen(loc2_id, name2, H5P_DEFAULT)) < 0)
|
||||
goto error;
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Aopen second attribute failed");
|
||||
|
||||
h5difftrace("diff_attr got attributes\n");
|
||||
/* get the datatypes */
|
||||
if((ftype1_id = H5Aget_type(attr1_id)) < 0)
|
||||
goto error;
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Aget_type first attribute failed");
|
||||
vstrtype1 = H5Tis_variable_str(ftype1_id);
|
||||
if((ftype2_id = H5Aget_type(attr2_id)) < 0)
|
||||
goto error;
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Aget_type second attribute failed");
|
||||
vstrtype2 = H5Tis_variable_str(ftype2_id);
|
||||
|
||||
/* no compare if either one but not both are variable string type */
|
||||
if (vstrtype1 != vstrtype2) {
|
||||
if((options->m_verbose || options->m_list_not_cmp))
|
||||
if((opts->m_verbose || opts->m_list_not_cmp))
|
||||
parallel_print("Not comparable: one of attribute <%s/%s> or <%s/%s> is of variable length type\n",
|
||||
path1, name1, path2, name2);
|
||||
options->not_cmp = 1;
|
||||
opts->not_cmp = 1;
|
||||
if (H5Tclose(ftype1_id) < 0)
|
||||
goto error;
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Tclose first attribute ftype failed");
|
||||
if (H5Tclose(ftype2_id) < 0)
|
||||
goto error;
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Tclose second attribute ftype failed");
|
||||
if (H5Aclose(attr1_id) < 0)
|
||||
goto error;
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Aclose first attribute failed");
|
||||
if (H5Aclose(attr2_id) < 0)
|
||||
goto error;
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Aclose second attribute failed");
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
if((mtype1_id = H5Tget_native_type(ftype1_id, H5T_DIR_DEFAULT)) < 0)
|
||||
goto error;
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Tget_native_type first attribute ftype failed");
|
||||
if((mtype2_id = H5Tget_native_type(ftype2_id, H5T_DIR_DEFAULT)) < 0)
|
||||
goto error;
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Tget_native_type second attribute ftype failed");
|
||||
if((msize1 = H5Tget_size(mtype1_id)) == 0)
|
||||
goto error;
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Tget_size first attribute mtype failed");
|
||||
if((msize2 = H5Tget_size(mtype2_id)) == 0)
|
||||
goto error;
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Tget_size second attribute mtype failed");
|
||||
|
||||
/* get the dataspace */
|
||||
if((space1_id = H5Aget_space(attr1_id)) < 0)
|
||||
goto error;
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Aget_space first attribute failed");
|
||||
if((space2_id = H5Aget_space(attr2_id)) < 0)
|
||||
goto error;
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Aget_space second attribute failed");
|
||||
|
||||
/* get dimensions */
|
||||
if((rank1 = H5Sget_simple_extent_dims(space1_id, dims1, NULL)) < 0)
|
||||
goto error;
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Sget_simple_extent_dims first attribute failed");
|
||||
if((rank2 = H5Sget_simple_extent_dims(space2_id, dims2, NULL)) < 0)
|
||||
goto error;
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Sget_simple_extent_dims second attribute failed");
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
* check for comparable TYPE and SPACE
|
||||
@ -424,23 +437,23 @@ hsize_t diff_attr(hid_t loc1_id,
|
||||
/* pass dims1 and dims2 for maxdims as well since attribute's maxdims
|
||||
* are always same */
|
||||
if(diff_can_type(ftype1_id, ftype2_id, rank1, rank2, dims1, dims2,
|
||||
dims1, dims2, name1, name2, options, 0) != 1) {
|
||||
dims1, dims2, name1, name2, opts, 0) != 1) {
|
||||
if(H5Tclose(ftype1_id) < 0)
|
||||
goto error;
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Tclose first attribute ftype failed");
|
||||
if(H5Tclose(ftype2_id) < 0)
|
||||
goto error;
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Tclose second attribute ftype failed");
|
||||
if(H5Sclose(space1_id) < 0)
|
||||
goto error;
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Sclose first attribute failed");
|
||||
if(H5Sclose(space2_id) < 0)
|
||||
goto error;
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Sclose second attribute failed");
|
||||
if(H5Aclose(attr1_id) < 0)
|
||||
goto error;
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Aclose first attribute failed");
|
||||
if(H5Aclose(attr2_id) < 0)
|
||||
goto error;
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Aclose second attribute failed");
|
||||
if(H5Tclose(mtype1_id) < 0)
|
||||
goto error;
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Tclose first attribute mtype failed");
|
||||
if(H5Tclose(mtype2_id) < 0)
|
||||
goto error;
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Tclose second attribute mtype failed");
|
||||
|
||||
continue;
|
||||
}
|
||||
@ -451,7 +464,7 @@ hsize_t diff_attr(hid_t loc1_id,
|
||||
*/
|
||||
if(FAIL == match_up_memsize(ftype1_id, ftype2_id, &mtype1_id,
|
||||
&mtype2_id, &msize1, &msize2))
|
||||
goto error;
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "match_up_memsize failed");
|
||||
|
||||
/*---------------------------------------------------------------------
|
||||
* read
|
||||
@ -465,18 +478,18 @@ hsize_t diff_attr(hid_t loc1_id,
|
||||
buf2 = (void *)HDcalloc((size_t)(nelmts1), msize2);
|
||||
if(buf1 == NULL || buf2 == NULL) {
|
||||
parallel_print("cannot read into memory\n");
|
||||
goto error;
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "buffer allocation failed");
|
||||
}
|
||||
if(H5Aread(attr1_id, mtype1_id, buf1) < 0) {
|
||||
parallel_print("Failed reading attribute1 %s/%s\n", path1, name1);
|
||||
goto error;
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Aget_type first attribute failed");
|
||||
}
|
||||
else
|
||||
buf1hasdata = TRUE;
|
||||
|
||||
if(H5Aread(attr2_id, mtype2_id, buf2) < 0) {
|
||||
parallel_print("Failed reading attribute2 %s/%s\n", path2, name2);
|
||||
goto error;
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Aget_type second attribute failed");
|
||||
}
|
||||
else
|
||||
buf2hasdata = TRUE;
|
||||
@ -492,22 +505,22 @@ hsize_t diff_attr(hid_t loc1_id,
|
||||
|
||||
/* always print name */
|
||||
/* verbose (-v) and report (-r) mode */
|
||||
if(options->m_verbose || options->m_report) {
|
||||
if(opts->m_verbose || opts->m_report) {
|
||||
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);
|
||||
dims1, opts, np1, np2, mtype1_id, attr1_id, attr2_id);
|
||||
print_found(nfound);
|
||||
}
|
||||
/* quiet mode (-q), just count differences */
|
||||
else if(options->m_quiet) {
|
||||
else if(opts->m_quiet) {
|
||||
nfound = diff_array(buf1, buf2, nelmts1, (hsize_t) 0, rank1,
|
||||
dims1, options, np1, np2, mtype1_id, attr1_id, attr2_id);
|
||||
dims1, opts, np1, np2, mtype1_id, attr1_id, attr2_id);
|
||||
}
|
||||
/* the rest (-c, none, ...) */
|
||||
else {
|
||||
nfound = diff_array(buf1, buf2, nelmts1, (hsize_t) 0, rank1,
|
||||
dims1, options, np1, np2, mtype1_id, attr1_id, attr2_id);
|
||||
dims1, opts, np1, np2, mtype1_id, attr1_id, attr2_id);
|
||||
|
||||
/* print info if compatible and difference found */
|
||||
if (nfound) {
|
||||
@ -534,31 +547,29 @@ hsize_t diff_attr(hid_t loc1_id,
|
||||
buf2 = NULL;
|
||||
|
||||
if(H5Tclose(ftype1_id) < 0)
|
||||
goto error;
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Aget_type first attribute failed");
|
||||
if(H5Tclose(ftype2_id) < 0)
|
||||
goto error;
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Aget_type second attribute failed");
|
||||
if(H5Sclose(space1_id) < 0)
|
||||
goto error;
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Aget_type first attribute failed");
|
||||
if(H5Sclose(space2_id) < 0)
|
||||
goto error;
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Aget_type second attribute failed");
|
||||
if(H5Aclose(attr1_id) < 0)
|
||||
goto error;
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Aget_type first attribute failed");
|
||||
if(H5Aclose(attr2_id) < 0)
|
||||
goto error;
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Aget_type second attribute failed");
|
||||
if(H5Tclose(mtype1_id) < 0)
|
||||
goto error;
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Tclose first attribute mtype failed");
|
||||
if(H5Tclose(mtype2_id) < 0)
|
||||
goto error;
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Tclose second attribute mtype failed");
|
||||
|
||||
nfound_total += nfound;
|
||||
}
|
||||
} /* u */
|
||||
|
||||
table_attrs_free(match_list_attrs);
|
||||
done:
|
||||
opts->err_stat = opts->err_stat | ret_value;
|
||||
|
||||
return nfound_total;
|
||||
|
||||
error:
|
||||
H5E_BEGIN_TRY {
|
||||
if(buf1) {
|
||||
if(buf1hasdata && TRUE == h5tools_detect_vlen(mtype1_id))
|
||||
@ -583,7 +594,7 @@ error:
|
||||
H5Aclose(attr2_id);
|
||||
} H5E_END_TRY;
|
||||
|
||||
options->err_stat = 1;
|
||||
h5diffdebug2("diff_attr end - errstat:%d\n", opts->err_stat);
|
||||
return nfound_total;
|
||||
}
|
||||
|
||||
|
@ -1,15 +1,15 @@
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Copyright by The HDF Group. *
|
||||
* Copyright by the Board of Trustees of the University of Illinois. *
|
||||
* All rights reserved. *
|
||||
* *
|
||||
* This file is part of HDF5. The full HDF5 copyright notice, including *
|
||||
* terms governing use, modification, and redistribution, is contained in *
|
||||
* Copyright by The HDF Group. *
|
||||
* Copyright by the Board of Trustees of the University of Illinois. *
|
||||
* All rights reserved. *
|
||||
* *
|
||||
* This file is part of HDF5. The full HDF5 copyright notice, including *
|
||||
* terms governing use, modification, and redistribution, is contained in *
|
||||
* the COPYING file, which can be found at the root of the source code *
|
||||
* distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases. *
|
||||
* If you do not have access to either file, you may request a copy from *
|
||||
* help@hdfgroup.org. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
#include "H5private.h"
|
||||
#include "h5tools.h"
|
||||
@ -19,25 +19,22 @@
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: diff_dataset
|
||||
*
|
||||
* Purpose: check for comparable datasets and read into a compatible
|
||||
* memory type
|
||||
*
|
||||
* Return: Number of differences found
|
||||
*
|
||||
* Programmer: Pedro Vicente, pvn@ncsa.uiuc.edu
|
||||
*
|
||||
* Date: May 9, 2003
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
hsize_t diff_dataset( hid_t file1_id,
|
||||
hid_t file2_id,
|
||||
const char *obj1_name,
|
||||
const char *obj2_name,
|
||||
diff_opt_t *options)
|
||||
* Function: diff_dataset
|
||||
*
|
||||
* Purpose: check for comparable datasets and read into a compatible
|
||||
* memory type
|
||||
*
|
||||
* Return: Number of differences found
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
hsize_t diff_dataset(hid_t file1_id,
|
||||
hid_t file2_id,
|
||||
const char *obj1_name,
|
||||
const char *obj2_name,
|
||||
diff_opt_t *opts)
|
||||
{
|
||||
int ret_value = opts->err_stat;
|
||||
int status = -1;
|
||||
hid_t did1 = -1;
|
||||
hid_t did2 = -1;
|
||||
hid_t dcpl1 = -1;
|
||||
@ -46,53 +43,45 @@ hsize_t diff_dataset( hid_t file1_id,
|
||||
|
||||
h5difftrace("diff_dataset start\n");
|
||||
/*-------------------------------------------------------------------------
|
||||
* open the handles
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
/* disable error reporting */
|
||||
H5E_BEGIN_TRY
|
||||
{
|
||||
/* Open the datasets */
|
||||
if((did1 = H5Dopen2(file1_id, obj1_name, H5P_DEFAULT)) < 0) {
|
||||
parallel_print("Cannot open dataset <%s>\n", obj1_name);
|
||||
goto error;
|
||||
}
|
||||
if((did2 = H5Dopen2(file2_id, obj2_name, H5P_DEFAULT)) < 0) {
|
||||
parallel_print("Cannot open dataset <%s>\n", obj2_name);
|
||||
goto error;
|
||||
}
|
||||
/* enable error reporting */
|
||||
} H5E_END_TRY;
|
||||
|
||||
* open the handles
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
/* Open the datasets */
|
||||
if((did1 = H5Dopen2(file1_id, obj1_name, H5P_DEFAULT)) < 0) {
|
||||
parallel_print("Cannot open dataset <%s>\n", obj1_name);
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Dopen2 first dataset failed");
|
||||
}
|
||||
if((did2 = H5Dopen2(file2_id, obj2_name, H5P_DEFAULT)) < 0) {
|
||||
parallel_print("Cannot open dataset <%s>\n", obj2_name);
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Dopen2 second dataset failed");
|
||||
}
|
||||
|
||||
if((dcpl1 = H5Dget_create_plist(did1)) < 0)
|
||||
goto error;
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Dget_create_plist first dataset failed");
|
||||
if((dcpl2 = H5Dget_create_plist(did2)) < 0)
|
||||
goto error;
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Dget_create_plist second dataset failed");
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* check if the dataset creation property list has filters that
|
||||
* are not registered in the current configuration
|
||||
* 1) the external filters GZIP and SZIP might not be available
|
||||
* 2) the internal filters might be turned off
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
if ((h5tools_canreadf((options->m_verbose ? obj1_name : NULL), dcpl1) == 1) &&
|
||||
(h5tools_canreadf((options->m_verbose ? obj2_name : NULL), dcpl2) == 1))
|
||||
nfound = diff_datasetid(did1, did2, obj1_name, obj2_name, options);
|
||||
else
|
||||
goto error;
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* close
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
goto done;
|
||||
|
||||
error:
|
||||
options->err_stat = 1;
|
||||
* check if the dataset creation property list has filters that
|
||||
* are not registered in the current configuration
|
||||
* 1) the external filters GZIP and SZIP might not be available
|
||||
* 2) the internal filters might be turned off
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
if ((status = h5tools_canreadf((opts->m_verbose ? obj1_name : NULL), dcpl1) == 1) &&
|
||||
(status = h5tools_canreadf((opts->m_verbose ? obj2_name : NULL), dcpl2) == 1))
|
||||
nfound = diff_datasetid(did1, did2, obj1_name, obj2_name, opts);
|
||||
else if (status < 0) {
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "h5tools_canreadf failed");
|
||||
}
|
||||
else {
|
||||
ret_value = 1;
|
||||
opts->not_cmp = 1;
|
||||
}
|
||||
|
||||
done:
|
||||
opts->err_stat = opts->err_stat | ret_value;
|
||||
|
||||
/* disable error reporting */
|
||||
H5E_BEGIN_TRY {
|
||||
H5Pclose(dcpl1);
|
||||
@ -102,82 +91,75 @@ done:
|
||||
/* enable error reporting */
|
||||
} H5E_END_TRY;
|
||||
|
||||
h5difftrace("diff_dataset end\n");
|
||||
h5diffdebug3("diff_dataset finish:%d - errstat:%d\n", nfound, opts->err_stat);
|
||||
return nfound;
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: diff_datasetid
|
||||
*
|
||||
* Purpose: check for comparable datasets and read into a compatible
|
||||
* memory type
|
||||
*
|
||||
* Return: Number of differences found
|
||||
*
|
||||
* Programmer: Pedro Vicente, pvn@ncsa.uiuc.edu
|
||||
*
|
||||
* Date: May 9, 2003
|
||||
*
|
||||
* Modifications:
|
||||
*
|
||||
*
|
||||
* October 2006: Read by hyperslabs for big datasets.
|
||||
*
|
||||
* A threshold of H5TOOLS_MALLOCSIZE (128 MB) is the limit upon which I/O hyperslab is done
|
||||
* i.e., if the memory needed to read a dataset is greater than this limit,
|
||||
* then hyperslab I/O is done instead of one operation I/O
|
||||
* For each dataset, the memory needed is calculated according to
|
||||
*
|
||||
* memory needed = number of elements * size of each element
|
||||
*
|
||||
* if the memory needed is lower than H5TOOLS_MALLOCSIZE, then the following operations
|
||||
* are done
|
||||
*
|
||||
* H5Dread( input_dataset1 )
|
||||
* H5Dread( input_dataset2 )
|
||||
*
|
||||
* with all elements in the datasets selected. If the memory needed is greater than
|
||||
* H5TOOLS_MALLOCSIZE, then the following operations are done instead:
|
||||
*
|
||||
* a strip mine is defined for each dimension k (a strip mine is defined as a
|
||||
* hyperslab whose size is memory manageable) according to the formula
|
||||
*
|
||||
* (1) strip_mine_size[k ] = MIN(dimension[k ], H5TOOLS_BUFSIZE / size of memory type)
|
||||
*
|
||||
* where H5TOOLS_BUFSIZE is a constant currently defined as 1MB. This formula assures
|
||||
* that for small datasets (small relative to the H5TOOLS_BUFSIZE constant), the strip
|
||||
* mine size k is simply defined as its dimension k, but for larger datasets the
|
||||
* hyperslab size is still memory manageable.
|
||||
* a cycle is done until the number of elements in the dataset is reached. In each
|
||||
* iteration, two parameters are defined for the function H5Sselect_hyperslab,
|
||||
* the start and size of each hyperslab, according to
|
||||
*
|
||||
* (2) hyperslab_size [k] = MIN(dimension[k] - hyperslab_offset[k], strip_mine_size [k])
|
||||
*
|
||||
* where hyperslab_offset [k] is initially set to zero, and later incremented in
|
||||
* hyperslab_size[k] offsets. The reason for the operation
|
||||
*
|
||||
* dimension[k] - hyperslab_offset[k]
|
||||
*
|
||||
* in (2) is that, when using the strip mine size, it assures that the "remaining" part
|
||||
* of the dataset that does not fill an entire strip mine is processed.
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
hsize_t diff_datasetid( hid_t did1,
|
||||
hid_t did2,
|
||||
const char *obj1_name,
|
||||
const char *obj2_name,
|
||||
diff_opt_t *options)
|
||||
* Function: diff_datasetid
|
||||
*
|
||||
* Purpose: check for comparable datasets and read into a compatible
|
||||
* memory type
|
||||
*
|
||||
* Return: Number of differences found
|
||||
*
|
||||
* October 2006: Read by hyperslabs for big datasets.
|
||||
*
|
||||
* A threshold of H5TOOLS_MALLOCSIZE (128 MB) is the limit upon which I/O hyperslab is done
|
||||
* i.e., if the memory needed to read a dataset is greater than this limit,
|
||||
* then hyperslab I/O is done instead of one operation I/O
|
||||
* For each dataset, the memory needed is calculated according to
|
||||
*
|
||||
* memory needed = number of elements * size of each element
|
||||
*
|
||||
* if the memory needed is lower than H5TOOLS_MALLOCSIZE, then the following operations
|
||||
* are done
|
||||
*
|
||||
* H5Dread( input_dataset1 )
|
||||
* H5Dread( input_dataset2 )
|
||||
*
|
||||
* with all elements in the datasets selected. If the memory needed is greater than
|
||||
* H5TOOLS_MALLOCSIZE, then the following operations are done instead:
|
||||
*
|
||||
* a strip mine is defined for each dimension k (a strip mine is defined as a
|
||||
* hyperslab whose size is memory manageable) according to the formula
|
||||
*
|
||||
* (1) strip_mine_size[k ] = MIN(dimension[k ], H5TOOLS_BUFSIZE / size of memory type)
|
||||
*
|
||||
* where H5TOOLS_BUFSIZE is a constant currently defined as 1MB. This formula assures
|
||||
* that for small datasets (small relative to the H5TOOLS_BUFSIZE constant), the strip
|
||||
* mine size k is simply defined as its dimension k, but for larger datasets the
|
||||
* hyperslab size is still memory manageable.
|
||||
* a cycle is done until the number of elements in the dataset is reached. In each
|
||||
* iteration, two parameters are defined for the function H5Sselect_hyperslab,
|
||||
* the start and size of each hyperslab, according to
|
||||
*
|
||||
* (2) hyperslab_size [k] = MIN(dimension[k] - hyperslab_offset[k], strip_mine_size [k])
|
||||
*
|
||||
* where hyperslab_offset [k] is initially set to zero, and later incremented in
|
||||
* hyperslab_size[k] offsets. The reason for the operation
|
||||
*
|
||||
* dimension[k] - hyperslab_offset[k]
|
||||
*
|
||||
* in (2) is that, when using the strip mine size, it assures that the "remaining" part
|
||||
* of the dataset that does not fill an entire strip mine is processed.
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
hsize_t diff_datasetid(hid_t did1,
|
||||
hid_t did2,
|
||||
const char *obj1_name,
|
||||
const char *obj2_name,
|
||||
diff_opt_t *opts)
|
||||
{
|
||||
int ret_value = 0; /*no need to LEAVE() on ERROR: HERR_INIT(int, SUCCEED) */
|
||||
hid_t sid1=-1;
|
||||
hid_t sid2=-1;
|
||||
hid_t f_tid1=-1;
|
||||
hid_t f_tid2=-1;
|
||||
hid_t dam_tid=-1; /* m_tid for diff_array function */
|
||||
hid_t m_tid1=-1;
|
||||
hid_t m_tid2=-1;
|
||||
int ret_value = opts->err_stat;
|
||||
hid_t sid1 = -1;
|
||||
hid_t sid2 = -1;
|
||||
hid_t f_tid1 = -1;
|
||||
hid_t f_tid2 = -1;
|
||||
hid_t dam_tid = -1; /* m_tid for diff_array function */
|
||||
hid_t m_tid1 = -1;
|
||||
hid_t m_tid2 = -1;
|
||||
hid_t dcpl1 = -1;
|
||||
hid_t dcpl2 = -1;
|
||||
H5D_layout_t stl1 = -1;
|
||||
@ -197,42 +179,41 @@ hsize_t diff_datasetid( hid_t did1,
|
||||
hsize_t dims2[H5S_MAX_RANK];
|
||||
hsize_t maxdim1[H5S_MAX_RANK];
|
||||
hsize_t maxdim2[H5S_MAX_RANK];
|
||||
const char *name1=NULL; /* relative names */
|
||||
const char *name2=NULL;
|
||||
const char *name1 = NULL; /* relative names */
|
||||
const char *name2 = NULL;
|
||||
hsize_t storage_size1;
|
||||
hsize_t storage_size2;
|
||||
hsize_t nfound=0; /* number of differences found */
|
||||
int can_compare=1; /* do diff or not */
|
||||
void *buf1=NULL;
|
||||
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 */
|
||||
hsize_t nfound = 0; /* number of differences found */
|
||||
int can_compare = 1; /* do diff or not */
|
||||
void *buf1 = NULL;
|
||||
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 */
|
||||
unsigned int vl_data = 0; /*contains VL datatypes */
|
||||
|
||||
options->err_stat = 1;
|
||||
h5difftrace("diff_datasetid start\n");
|
||||
/* Get the dataspace handle */
|
||||
if((sid1 = H5Dget_space(did1)) < 0)
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "H5Dget_space failed");
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Dget_space failed");
|
||||
|
||||
/* Get rank */
|
||||
if((rank1 = H5Sget_simple_extent_ndims(sid1)) < 0)
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "H5Sget_simple_extent_ndims failed");
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Sget_simple_extent_ndims failed");
|
||||
|
||||
/* Get the dataspace handle */
|
||||
if((sid2 = H5Dget_space(did2)) < 0 )
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "H5Dget_space failed");
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Dget_space failed");
|
||||
|
||||
/* Get rank */
|
||||
if((rank2 = H5Sget_simple_extent_ndims(sid2)) < 0)
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "H5Sget_simple_extent_ndims failed");
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Sget_simple_extent_ndims failed");
|
||||
|
||||
/* Get dimensions */
|
||||
if(H5Sget_simple_extent_dims(sid1, dims1, maxdim1) < 0)
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "H5Sget_simple_extent_dims failed");
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Sget_simple_extent_dims failed");
|
||||
|
||||
/* Get dimensions */
|
||||
if(H5Sget_simple_extent_dims(sid2, dims2, maxdim2) < 0)
|
||||
@ -240,36 +221,36 @@ hsize_t diff_datasetid( hid_t did1,
|
||||
h5diffdebug3("rank: %ld - %ld\n", rank1, rank2);
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* get the file data type
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
* get the file data type
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/* Get the data type */
|
||||
if((f_tid1 = H5Dget_type(did1)) < 0)
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "H5Dget_type failed");
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Dget_type failed");
|
||||
|
||||
/* Get the data type */
|
||||
if((f_tid2 = H5Dget_type(did2)) < 0)
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "H5Dget_type failed");
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Dget_type failed");
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* get the storage layout type
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
* get the storage layout type
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
if((dcpl1 = H5Dget_create_plist(did1)) < 0)
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "H5Dget_create_plist failed");
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Dget_create_plist failed");
|
||||
if((dcpl2 = H5Dget_create_plist(did2)) < 0)
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "H5Dget_create_plist failed");
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Dget_create_plist failed");
|
||||
|
||||
if((stl1 = H5Pget_layout(dcpl1)) < 0)
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "H5Pget_layout failed");
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Pget_layout failed");
|
||||
if((stl2 = H5Pget_layout(dcpl2)) < 0)
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "H5Pget_layout failed");
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Pget_layout failed");
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* check for empty datasets
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
* check for empty datasets
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
h5difftrace("check for empty datasets\n");
|
||||
|
||||
storage_size1 = H5Dget_storage_size(did1);
|
||||
@ -278,71 +259,74 @@ hsize_t diff_datasetid( hid_t did1,
|
||||
|
||||
if(storage_size1 == 0 || storage_size2 == 0) {
|
||||
if(stl1 == H5D_VIRTUAL || stl2 == H5D_VIRTUAL) {
|
||||
if((options->m_verbose||options->m_list_not_cmp) && obj1_name && obj2_name)
|
||||
if((opts->m_verbose||opts->m_list_not_cmp) && obj1_name && obj2_name)
|
||||
parallel_print("Warning: <%s> or <%s> is a virtual dataset\n", obj1_name, obj2_name);
|
||||
}
|
||||
else {
|
||||
if((options->m_verbose || options->m_list_not_cmp) && obj1_name && obj2_name)
|
||||
if((opts->m_verbose || opts->m_list_not_cmp) && obj1_name && obj2_name)
|
||||
parallel_print("Not comparable: <%s> or <%s> is an empty dataset\n", obj1_name, obj2_name);
|
||||
can_compare = 0;
|
||||
options->not_cmp = 1;
|
||||
opts->not_cmp = 1;
|
||||
}
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* check for comparable TYPE and SPACE
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
* check for comparable TYPE and SPACE
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
if (diff_can_type(f_tid1, f_tid2, rank1, rank2,
|
||||
dims1, dims2, maxdim1, maxdim2,
|
||||
obj1_name, obj2_name,
|
||||
options, 0) != 1)
|
||||
opts, 0) != 1)
|
||||
can_compare = 0;
|
||||
h5diffdebug2("diff_can_type - errstat:%d\n", opts->err_stat);
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* memory type and sizes
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
* memory type and sizes
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
h5difftrace("check for memory type and sizes\n");
|
||||
if((m_tid1 = H5Tget_native_type(f_tid1, H5T_DIR_DEFAULT)) < 0)
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "H5Tget_native_type failed");
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Tget_native_type failed");
|
||||
|
||||
if((m_tid2 = H5Tget_native_type(f_tid2, H5T_DIR_DEFAULT)) < 0)
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "H5Tget_native_type failed");
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Tget_native_type failed");
|
||||
|
||||
m_size1 = H5Tget_size(m_tid1);
|
||||
m_size2 = H5Tget_size(m_tid2);
|
||||
h5diffdebug3("type size: %ld - %ld\n", m_size1, m_size2);
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* check for different signed/unsigned types
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
* check for different signed/unsigned types
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
if(can_compare) {
|
||||
h5difftrace("can_compare for sign\n");
|
||||
sign1 = H5Tget_sign(m_tid1);
|
||||
sign2 = H5Tget_sign(m_tid2);
|
||||
if(sign1 != sign2) {
|
||||
h5difftrace("sign1 != sign2\n");
|
||||
if((options->m_verbose || options->m_list_not_cmp) && obj1_name && obj2_name) {
|
||||
if((opts->m_verbose || opts->m_list_not_cmp) && obj1_name && obj2_name) {
|
||||
parallel_print("Not comparable: <%s> has sign %s ", obj1_name, get_sign(sign1));
|
||||
parallel_print("and <%s> has sign %s\n", obj2_name, get_sign(sign2));
|
||||
}
|
||||
|
||||
can_compare = 0;
|
||||
options->not_cmp = 1;
|
||||
opts->not_cmp = 1;
|
||||
}
|
||||
}
|
||||
|
||||
/* Check if type is either VLEN-data or VLEN-string to reclaim any
|
||||
* VLEN memory buffer later */
|
||||
* VLEN memory buffer later
|
||||
*/
|
||||
if(TRUE == h5tools_detect_vlen(m_tid1))
|
||||
vl_data = TRUE;
|
||||
h5diffdebug2("h5tools_detect_vlen - errstat:%d\n", opts->err_stat);
|
||||
|
||||
/*------------------------------------------------------------------------
|
||||
* only attempt to compare if possible
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
* only attempt to compare if possible
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
if(can_compare) { /* it is possible to compare */
|
||||
H5T_class_t tclass = H5Tget_class(f_tid1);
|
||||
h5difftrace("can_compare attempt\n");
|
||||
@ -363,14 +347,14 @@ hsize_t diff_datasetid( hid_t did1,
|
||||
|
||||
if(tclass != H5T_ARRAY) {
|
||||
/*-----------------------------------------------------------------
|
||||
* "upgrade" the smaller memory size
|
||||
*------------------------------------------------------------------
|
||||
*/
|
||||
* "upgrade" the smaller memory size
|
||||
*------------------------------------------------------------------
|
||||
*/
|
||||
h5difftrace("upgrade the smaller memory size?\n");
|
||||
if (FAIL == match_up_memsize (f_tid1, f_tid2,
|
||||
&m_tid1, &m_tid2,
|
||||
&m_size1, &m_size2))
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "match_up_memsize failed");
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "match_up_memsize failed");
|
||||
h5diffdebug3("m_size: %ld - %ld\n", m_size1, m_size2);
|
||||
dadims = dims1;
|
||||
dam_size = m_size1;
|
||||
@ -401,12 +385,13 @@ hsize_t diff_datasetid( hid_t did1,
|
||||
name1 = diff_basename(obj1_name);
|
||||
if(obj2_name)
|
||||
name2 = diff_basename(obj2_name);
|
||||
h5diffdebug3("obj_names: %s - %s\n", name1, name2);
|
||||
|
||||
|
||||
/*----------------------------------------------------------------
|
||||
* read/compare
|
||||
*-----------------------------------------------------------------
|
||||
*/
|
||||
* read/compare
|
||||
*-----------------------------------------------------------------
|
||||
*/
|
||||
if(need < H5TOOLS_MALLOCSIZE) {
|
||||
buf1 = HDmalloc(need);
|
||||
buf2 = HDmalloc(need);
|
||||
@ -415,17 +400,19 @@ hsize_t diff_datasetid( hid_t did1,
|
||||
if(buf1 != NULL && buf2 != NULL) {
|
||||
h5difftrace("buf1 != NULL && buf2 != NULL\n");
|
||||
if(H5Dread(did1, m_tid1, H5S_ALL, H5S_ALL, H5P_DEFAULT, buf1) < 0)
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "H5Dread failed");
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Dread failed");
|
||||
h5difftrace("H5Dread did2\n");
|
||||
if(H5Dread(did2, m_tid2, H5S_ALL, H5S_ALL, H5P_DEFAULT, buf2) < 0)
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "H5Dread failed");
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Dread failed");
|
||||
|
||||
/* array diff */
|
||||
nfound = diff_array(buf1, buf2, danelmts, (hsize_t)0, rank1, dadims,
|
||||
options, name1, name2, dam_tid, did1, did2);
|
||||
opts, name1, name2, dam_tid, did1, did2);
|
||||
h5diffdebug2("diff_array nfound:%d\n", nfound);
|
||||
|
||||
/* reclaim any VL memory, if necessary */
|
||||
if(vl_data) {
|
||||
h5difftrace("check vl_data\n");
|
||||
H5Dvlen_reclaim(m_tid1, sid1, H5P_DEFAULT, buf1);
|
||||
H5Dvlen_reclaim(m_tid2, sid2, H5P_DEFAULT, buf2);
|
||||
} /* end if */
|
||||
@ -468,6 +455,7 @@ hsize_t diff_datasetid( hid_t did1,
|
||||
size = 1;
|
||||
sm_size[i - 1] = MIN(dadims[i - 1], size);
|
||||
sm_nbytes *= sm_size[i - 1];
|
||||
h5diffdebug2("sm_nbytes: %ld\n", sm_nbytes);
|
||||
} /* end for */
|
||||
|
||||
/* malloc return code should be verified.
|
||||
@ -478,9 +466,9 @@ hsize_t diff_datasetid( hid_t did1,
|
||||
* E.g., sm_space.
|
||||
*/
|
||||
if((sm_buf1 = HDmalloc((size_t)sm_nbytes)) == NULL)
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "HDmalloc failed");
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "HDmalloc failed");
|
||||
if((sm_buf2 = HDmalloc((size_t)sm_nbytes)) == NULL)
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "HDmalloc failed");
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "HDmalloc failed");
|
||||
|
||||
sm_nelmts = sm_nbytes / p_type_nbytes;
|
||||
sm_space = H5Screate_simple(1, &sm_nelmts, NULL);
|
||||
@ -497,24 +485,24 @@ hsize_t diff_datasetid( hid_t did1,
|
||||
hs_nelmts *= hs_size[i];
|
||||
} /* end for */
|
||||
if(H5Sselect_hyperslab(sid1, H5S_SELECT_SET, hs_offset, NULL, hs_size, NULL) < 0)
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "H5Sselect_hyperslab failed");
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Sselect_hyperslab failed");
|
||||
if(H5Sselect_hyperslab(sid2, H5S_SELECT_SET, hs_offset, NULL, hs_size, NULL) < 0)
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "H5Sselect_hyperslab failed");
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Sselect_hyperslab failed");
|
||||
if(H5Sselect_hyperslab(sm_space, H5S_SELECT_SET, zero, NULL, &hs_nelmts, NULL) < 0)
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "H5Sselect_hyperslab failed");
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Sselect_hyperslab failed");
|
||||
} /* end if */
|
||||
else
|
||||
hs_nelmts = 1;
|
||||
|
||||
if(H5Dread(did1, m_tid1, sm_space, sid1, H5P_DEFAULT, sm_buf1) < 0)
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "H5Dread failed");
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Dread failed");
|
||||
if(H5Dread(did2, m_tid2, sm_space, sid2, H5P_DEFAULT, sm_buf2) < 0)
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "H5Dread failed");
|
||||
HGOTO_ERROR(1, H5E_tools_min_id_g, "H5Dread failed");
|
||||
|
||||
/* get array differences. in the case of hyperslab read, increment the number of differences
|
||||
found in each hyperslab and pass the position at the beginning for printing */
|
||||
nfound += diff_array(sm_buf1, sm_buf2, hs_nelmts, elmtno, rank1,
|
||||
dadims, options, name1, name2, dam_tid, did1, did2);
|
||||
dadims, opts, name1, name2, dam_tid, did1, did2);
|
||||
|
||||
/* reclaim any VL memory, if necessary */
|
||||
if(vl_data) {
|
||||
@ -549,11 +537,10 @@ hsize_t diff_datasetid( hid_t did1,
|
||||
* close
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
h5difftrace("reclaim any VL memory\n");
|
||||
h5diffdebug2("reclaim any VL memory - errstat:%d\n", opts->err_stat);
|
||||
|
||||
done:
|
||||
|
||||
options->err_stat = ret_value;
|
||||
opts->err_stat = opts->err_stat | ret_value;
|
||||
|
||||
/* free */
|
||||
if(buf1 != NULL) {
|
||||
@ -595,60 +582,55 @@ done:
|
||||
H5Tclose(m_tid2);
|
||||
/* enable error reporting */
|
||||
} H5E_END_TRY;
|
||||
h5diffdebug3("diff_datasetid return:%d with nfound:%d\n", ret_value, nfound);
|
||||
|
||||
h5diffdebug3("diff_datasetid return:%d with nfound:%d\n", ret_value, nfound);
|
||||
return nfound;
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: diff_can_type
|
||||
*
|
||||
* Purpose: check for comparable TYPE and SPACE
|
||||
*
|
||||
* Return:
|
||||
* 1, can compare
|
||||
* 0, cannot compare
|
||||
* -1, error
|
||||
*
|
||||
* Programmer: Pedro Vicente, pvn@ncsa.uiuc.edu
|
||||
*
|
||||
* Date: November 3, 2003
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
* Function: diff_can_type
|
||||
*
|
||||
* Purpose: check for comparable TYPE and SPACE
|
||||
*
|
||||
* Return:
|
||||
* 1, can compare
|
||||
* 0, cannot compare
|
||||
* -1, error
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
int diff_can_type( hid_t f_tid1, /* file data type */
|
||||
hid_t f_tid2, /* file data type */
|
||||
int rank1,
|
||||
int rank2,
|
||||
hsize_t *dims1,
|
||||
hsize_t *dims2,
|
||||
hsize_t *maxdim1,
|
||||
hsize_t *maxdim2,
|
||||
const char *obj1_name,
|
||||
const char *obj2_name,
|
||||
diff_opt_t *options,
|
||||
int is_compound)
|
||||
int diff_can_type(hid_t f_tid1, /* file data type */
|
||||
hid_t f_tid2, /* file data type */
|
||||
int rank1,
|
||||
int rank2,
|
||||
hsize_t *dims1,
|
||||
hsize_t *dims2,
|
||||
hsize_t *maxdim1,
|
||||
hsize_t *maxdim2,
|
||||
const char *obj1_name,
|
||||
const char *obj2_name,
|
||||
diff_opt_t *opts,
|
||||
int is_compound)
|
||||
{
|
||||
int ret_value = 1; /* can_compare value */
|
||||
H5T_class_t tclass1;
|
||||
H5T_class_t tclass2;
|
||||
int maxdim_diff = 0; /* maximum dimensions are different */
|
||||
int dim_diff = 0; /* current dimensions are different */
|
||||
int i;
|
||||
int can_compare = 1; /* return value */
|
||||
|
||||
h5difftrace("diff_can_type start\n");
|
||||
/*-------------------------------------------------------------------------
|
||||
* check for the same class
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
* check for the same class
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
if((tclass1 = H5Tget_class(f_tid1)) < 0)
|
||||
return -1;
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "H5Tget_class first object failed");
|
||||
if((tclass2 = H5Tget_class(f_tid2)) < 0)
|
||||
return -1;
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "H5Tget_class second object failed");
|
||||
|
||||
if(tclass1 != tclass2) {
|
||||
if((options->m_verbose || options->m_list_not_cmp) && obj1_name && obj2_name) {
|
||||
if((opts->m_verbose || opts->m_list_not_cmp) && obj1_name && obj2_name) {
|
||||
if(is_compound) {
|
||||
parallel_print("Not comparable: <%s> has a class %s and <%s> has a class %s\n",
|
||||
obj1_name, get_class(tclass1),
|
||||
@ -660,24 +642,22 @@ int diff_can_type( hid_t f_tid1, /* file data type */
|
||||
obj2_name, get_class(tclass2));
|
||||
}
|
||||
}
|
||||
can_compare = 0;
|
||||
options->not_cmp = 1;
|
||||
goto done;
|
||||
opts->not_cmp = 1;
|
||||
HGOTO_DONE(0);
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* check for non supported classes
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
* check for non supported classes
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
switch (tclass1) {
|
||||
case H5T_TIME:
|
||||
if((options->m_verbose || options->m_list_not_cmp) && obj1_name && obj2_name) {
|
||||
if((opts->m_verbose || opts->m_list_not_cmp) && obj1_name && obj2_name) {
|
||||
parallel_print("Not comparable: <%s> and <%s> are of class %s\n",
|
||||
obj1_name, obj2_name, get_class(tclass2));
|
||||
} /* end if */
|
||||
can_compare = 0;
|
||||
options->not_cmp = 1;
|
||||
goto done;
|
||||
opts->not_cmp = 1;
|
||||
HGOTO_DONE(0);
|
||||
|
||||
case H5T_INTEGER:
|
||||
case H5T_FLOAT:
|
||||
@ -697,10 +677,10 @@ int diff_can_type( hid_t f_tid1, /* file data type */
|
||||
} /* end switch */
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* check for equal file datatype; warning only
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
if((H5Tequal(f_tid1, f_tid2) == 0) && (options->m_verbose) && obj1_name && obj2_name) {
|
||||
* check for equal file datatype; warning only
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
if((H5Tequal(f_tid1, f_tid2) == 0) && (opts->m_verbose) && obj1_name && obj2_name) {
|
||||
H5T_class_t cl = H5Tget_class(f_tid1);
|
||||
|
||||
parallel_print("Warning: different storage datatype\n");
|
||||
@ -715,11 +695,11 @@ int diff_can_type( hid_t f_tid1, /* file data type */
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* check for the same rank
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
* check for the same rank
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
if(rank1 != rank2) {
|
||||
if((options->m_verbose || options->m_list_not_cmp) && obj1_name && obj2_name) {
|
||||
if((opts->m_verbose || opts->m_list_not_cmp) && obj1_name && obj2_name) {
|
||||
parallel_print("Not comparable: <%s> has rank %d, dimensions ", obj1_name, rank1);
|
||||
print_dimensions(rank1, dims1);
|
||||
parallel_print(", max dimensions ");
|
||||
@ -731,15 +711,14 @@ int diff_can_type( hid_t f_tid1, /* file data type */
|
||||
print_dimensions(rank2, maxdim2);
|
||||
parallel_print("\n");
|
||||
}
|
||||
can_compare = 0;
|
||||
options->not_cmp = 1;
|
||||
goto done;
|
||||
opts->not_cmp = 1;
|
||||
HGOTO_DONE(0);
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* check for different dimensions
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
* check for different dimensions
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
for(i = 0; i<rank1; i++) {
|
||||
if(maxdim1 && maxdim2) {
|
||||
if(maxdim1[i] != maxdim2[i])
|
||||
@ -750,11 +729,11 @@ int diff_can_type( hid_t f_tid1, /* file data type */
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* current dimensions
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
* current dimensions
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
if(dim_diff == 1) {
|
||||
if((options->m_verbose || options->m_list_not_cmp) && obj1_name && obj2_name) {
|
||||
if((opts->m_verbose || opts->m_list_not_cmp) && obj1_name && obj2_name) {
|
||||
parallel_print("Not comparable: <%s> has rank %d, dimensions ", obj1_name, rank1);
|
||||
print_dimensions(rank1, dims1);
|
||||
if(maxdim1 && maxdim2) {
|
||||
@ -768,17 +747,16 @@ int diff_can_type( hid_t f_tid1, /* file data type */
|
||||
parallel_print("\n");
|
||||
}
|
||||
}
|
||||
can_compare = 0;
|
||||
options->not_cmp = 1;
|
||||
goto done;
|
||||
opts->not_cmp = 1;
|
||||
HGOTO_DONE(0);
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* maximum dimensions; just give a warning
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
* maximum dimensions; just give a warning
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
if(maxdim1 && maxdim2 && maxdim_diff == 1 && obj1_name) {
|
||||
if(options->m_verbose) {
|
||||
if(opts->m_verbose) {
|
||||
parallel_print( "Warning: different maximum dimensions\n");
|
||||
parallel_print("<%s> has max dimensions ", obj1_name);
|
||||
print_dimensions(rank1, maxdim1);
|
||||
@ -793,21 +771,20 @@ int diff_can_type( hid_t f_tid1, /* file data type */
|
||||
int nmembs1;
|
||||
int nmembs2;
|
||||
int j;
|
||||
hid_t memb_type1;
|
||||
hid_t memb_type2;
|
||||
hid_t memb_type1 = -1;
|
||||
hid_t memb_type2 = -1;
|
||||
|
||||
nmembs1 = H5Tget_nmembers(f_tid1);
|
||||
nmembs2 = H5Tget_nmembers(f_tid2);
|
||||
|
||||
if(nmembs1 != nmembs2) {
|
||||
if((options->m_verbose || options->m_list_not_cmp) && obj1_name && obj2_name) {
|
||||
if((opts->m_verbose || opts->m_list_not_cmp) && obj1_name && obj2_name) {
|
||||
parallel_print("Not comparable: <%s> has %d members ", obj1_name, nmembs1);
|
||||
parallel_print("<%s> has %d members ", obj2_name, nmembs2);
|
||||
parallel_print("\n");
|
||||
}
|
||||
can_compare = 0;
|
||||
options->not_cmp = 1;
|
||||
goto done;
|
||||
opts->not_cmp = 1;
|
||||
HGOTO_DONE(0);
|
||||
}
|
||||
|
||||
for (j = 0; j < nmembs1; j++) {
|
||||
@ -816,30 +793,31 @@ int diff_can_type( hid_t f_tid1, /* file data type */
|
||||
|
||||
if (diff_can_type(memb_type1, memb_type2, rank1, rank2,
|
||||
dims1, dims2, maxdim1, maxdim2, obj1_name, obj2_name,
|
||||
options, 1) != 1) {
|
||||
can_compare = 0;
|
||||
options->not_cmp = 1;
|
||||
opts, 1) != 1) {
|
||||
opts->not_cmp = 1;
|
||||
H5Tclose(memb_type1);
|
||||
H5Tclose(memb_type2);
|
||||
goto done;
|
||||
HGOTO_DONE(0);
|
||||
}
|
||||
H5Tclose(memb_type1);
|
||||
H5Tclose(memb_type2);
|
||||
}
|
||||
}
|
||||
done:
|
||||
h5diffdebug2("diff_can_type end - %d\n", can_compare);
|
||||
return can_compare;
|
||||
if (ret_value < 0)
|
||||
opts->err_stat = 1;
|
||||
|
||||
h5diffdebug2("diff_can_type end - %d\n", ret_value);
|
||||
return ret_value;
|
||||
}
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: print_sizes
|
||||
*
|
||||
* Purpose: Print datatype sizes
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
* Function: print_sizes
|
||||
*
|
||||
* Purpose: Print datatype sizes
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#if defined (H5DIFF_DEBUG)
|
||||
void print_sizes( const char *obj1,
|
||||
const char *obj2,
|
||||
|
@ -24,8 +24,7 @@ int g_nTasks = 1;
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: print_dimensions
|
||||
*
|
||||
* Purpose: print dimensions
|
||||
*
|
||||
* Purpose: print dimensions
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
void
|
||||
@ -33,14 +32,14 @@ print_dimensions (int rank, hsize_t *dims)
|
||||
{
|
||||
int i;
|
||||
|
||||
if( rank <= 0 )
|
||||
if(rank <= 0)
|
||||
parallel_print("H5S_SCALAR" );
|
||||
else {
|
||||
if (!dims)
|
||||
parallel_print("dimension is NULL");
|
||||
else {
|
||||
parallel_print("[");
|
||||
for ( i = 0; i < rank-1; i++) {
|
||||
for (i = 0; i < rank-1; i++) {
|
||||
parallel_print(HSIZE_T_FORMAT, dims[i]);
|
||||
parallel_print("x");
|
||||
}
|
||||
@ -55,16 +54,11 @@ print_dimensions (int rank, hsize_t *dims)
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: print_type
|
||||
*
|
||||
* Purpose: Print name of datatype
|
||||
* Purpose: Print name of datatype
|
||||
*
|
||||
* Return: void
|
||||
*
|
||||
* Programmer: Pedro Vicente, pvn@ncsa.uiuc.edu
|
||||
*
|
||||
* Date: May 9, 2003
|
||||
*
|
||||
* Comments: Adapted from h5dump for H5T_INTEGER and H5T_FLOAT classes only
|
||||
* Return: void
|
||||
*
|
||||
* Comments: Adapted from h5dump for H5T_INTEGER and H5T_FLOAT classes only
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
void print_type(hid_t type)
|
||||
@ -188,12 +182,7 @@ void print_type(hid_t type)
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: diff_basename
|
||||
*
|
||||
* Purpose: Returns a pointer to the last component absolute name
|
||||
*
|
||||
* Programmer: Pedro Vicente, pvn@ncsa.uiuc.edu
|
||||
*
|
||||
* Date: May 9, 2003
|
||||
*
|
||||
* Purpose: Returns a pointer to the last component absolute name
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
H5_ATTR_PURE const char*
|
||||
@ -219,12 +208,7 @@ diff_basename(const char *name)
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: get_type
|
||||
*
|
||||
* Purpose: Returns the type as a string
|
||||
*
|
||||
* Programmer: Pedro Vicente, pvn@ncsa.uiuc.edu
|
||||
*
|
||||
* Date: May 9, 2003
|
||||
*
|
||||
* Purpose: Returns the type as a string
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
H5_ATTR_PURE H5_ATTR_CONST const char*
|
||||
@ -255,21 +239,13 @@ get_type(h5trav_type_t type)
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: get_sign
|
||||
*
|
||||
* Purpose: Returns the sign as a string
|
||||
*
|
||||
* Programmer: Pedro Vicente, pvn@ncsa.uiuc.edu
|
||||
*
|
||||
* Date: May 9, 2003
|
||||
*
|
||||
* Comments:
|
||||
*
|
||||
* Purpose: Returns the sign as a string
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
H5_ATTR_PURE const char*
|
||||
get_sign(H5T_sign_t sign)
|
||||
{
|
||||
switch(sign)
|
||||
{
|
||||
switch(sign) {
|
||||
case H5T_SGN_NONE:
|
||||
return "H5T_SGN_NONE";
|
||||
|
||||
@ -291,12 +267,7 @@ get_sign(H5T_sign_t sign)
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: get_class
|
||||
*
|
||||
* Purpose: Returns the class as a string
|
||||
*
|
||||
* Programmer: Pedro Vicente, pvn@ncsa.uiuc.edu
|
||||
*
|
||||
* Date: May 9, 2003
|
||||
*
|
||||
* Purpose: Returns the class as a string
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
H5_ATTR_PURE const char*
|
||||
@ -346,8 +317,7 @@ get_class(H5T_class_t tclass)
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: print_found
|
||||
*
|
||||
* Purpose: print number of differences found
|
||||
*
|
||||
* Purpose: print number of differences found
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
void print_found(hsize_t nfound)
|
||||
@ -362,43 +332,37 @@ void print_found(hsize_t nfound)
|
||||
/*-----------------------------------------------------------------
|
||||
* Function: match_up_memsize
|
||||
*
|
||||
* Purpose: match smaller memory size up to bigger memory size
|
||||
* Purpose: match smaller memory size up to bigger memory size
|
||||
*------------------------------------------------------------------
|
||||
*/
|
||||
herr_t match_up_memsize (hid_t f_tid1_id, hid_t f_tid2_id,
|
||||
hid_t *m_tid1, hid_t *m_tid2,
|
||||
size_t *m_size1, size_t *m_size2)
|
||||
{
|
||||
herr_t ret = SUCCEED;
|
||||
herr_t ret_value = SUCCEED;
|
||||
|
||||
if((*m_size1) != (*m_size2)) {
|
||||
if((*m_size1) < (*m_size2)) {
|
||||
H5Tclose( *m_tid1 );
|
||||
H5Tclose(*m_tid1);
|
||||
|
||||
if(((*m_tid1) = H5Tget_native_type(f_tid2_id, H5T_DIR_DEFAULT)) < 0) {
|
||||
ret = FAIL;
|
||||
goto out;
|
||||
}
|
||||
if(((*m_tid1) = H5Tget_native_type(f_tid2_id, H5T_DIR_DEFAULT)) < 0)
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "H5Tget_native_type failed");
|
||||
|
||||
*m_size1 = H5Tget_size( *m_tid1 );
|
||||
*m_size1 = H5Tget_size(*m_tid1);
|
||||
} /* end if */
|
||||
else {
|
||||
H5Tclose(*m_tid2);
|
||||
|
||||
if(((*m_tid2) = H5Tget_native_type(f_tid1_id, H5T_DIR_DEFAULT)) < 0) {
|
||||
ret = FAIL;
|
||||
goto out;
|
||||
}
|
||||
if(((*m_tid2) = H5Tget_native_type(f_tid1_id, H5T_DIR_DEFAULT)) < 0)
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "H5Tget_native_type failed");
|
||||
|
||||
*m_size2 = H5Tget_size(*m_tid2);
|
||||
} /* end else */
|
||||
} /* end if */
|
||||
if((*m_size1) != (*m_size2)) {
|
||||
ret = FAIL;
|
||||
goto out;
|
||||
}
|
||||
if((*m_size1) != (*m_size2))
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "native type sizes do not compare");
|
||||
|
||||
out:
|
||||
return ret;
|
||||
done:
|
||||
return ret_value;
|
||||
}
|
||||
|
||||
|
@ -642,8 +642,7 @@ h5tools_dump_region_data_blocks(hid_t region_space, hid_t region_id,
|
||||
|
||||
alloc_size = nblocks * ndims * 2 * sizeof(ptdata[0]);
|
||||
HDassert(alloc_size == (hsize_t) ((size_t) alloc_size)); /*check for overflow*/
|
||||
if((ptdata = (hsize_t*) HDmalloc((size_t) alloc_size)) == NULL)
|
||||
{
|
||||
if((ptdata = (hsize_t*) HDmalloc((size_t) alloc_size)) == NULL) {
|
||||
HERROR(H5E_tools_g, H5E_tools_min_id_g, "Could not allocate buffer for ptdata");
|
||||
HGOTO_DONE(dimension_break);
|
||||
}
|
||||
@ -1910,9 +1909,8 @@ h5tools_print_datatype(FILE *stream, h5tools_str_t *buffer, const h5tool_format_
|
||||
obj = search_obj(h5dump_type_table, oinfo.addr);
|
||||
|
||||
if(obj) {
|
||||
if(!obj->recorded) {
|
||||
if(!obj->recorded)
|
||||
h5tools_str_append(buffer,"\"/#"H5_PRINTF_HADDR_FMT"\"", obj->objno);
|
||||
}
|
||||
else
|
||||
h5tools_str_append(buffer, "\"%s\"", obj->objname);
|
||||
}
|
||||
@ -1929,121 +1927,86 @@ h5tools_print_datatype(FILE *stream, h5tools_str_t *buffer, const h5tool_format_
|
||||
|
||||
switch (type_class) {
|
||||
case H5T_INTEGER:
|
||||
if (H5Tequal(type, H5T_STD_I8BE) == TRUE) {
|
||||
if (H5Tequal(type, H5T_STD_I8BE) == TRUE)
|
||||
h5tools_str_append(buffer, "H5T_STD_I8BE");
|
||||
}
|
||||
else if (H5Tequal(type, H5T_STD_I8LE) == TRUE) {
|
||||
else if (H5Tequal(type, H5T_STD_I8LE) == TRUE)
|
||||
h5tools_str_append(buffer, "H5T_STD_I8LE");
|
||||
}
|
||||
else if (H5Tequal(type, H5T_STD_I16BE) == TRUE) {
|
||||
else if (H5Tequal(type, H5T_STD_I16BE) == TRUE)
|
||||
h5tools_str_append(buffer, "H5T_STD_I16BE");
|
||||
}
|
||||
else if (H5Tequal(type, H5T_STD_I16LE) == TRUE) {
|
||||
else if (H5Tequal(type, H5T_STD_I16LE) == TRUE)
|
||||
h5tools_str_append(buffer, "H5T_STD_I16LE");
|
||||
}
|
||||
else if (H5Tequal(type, H5T_STD_I32BE) == TRUE) {
|
||||
else if (H5Tequal(type, H5T_STD_I32BE) == TRUE)
|
||||
h5tools_str_append(buffer, "H5T_STD_I32BE");
|
||||
}
|
||||
else if (H5Tequal(type, H5T_STD_I32LE) == TRUE) {
|
||||
else if (H5Tequal(type, H5T_STD_I32LE) == TRUE)
|
||||
h5tools_str_append(buffer, "H5T_STD_I32LE");
|
||||
}
|
||||
else if (H5Tequal(type, H5T_STD_I64BE) == TRUE) {
|
||||
else if (H5Tequal(type, H5T_STD_I64BE) == TRUE)
|
||||
h5tools_str_append(buffer, "H5T_STD_I64BE");
|
||||
}
|
||||
else if (H5Tequal(type, H5T_STD_I64LE) == TRUE) {
|
||||
else if (H5Tequal(type, H5T_STD_I64LE) == TRUE)
|
||||
h5tools_str_append(buffer, "H5T_STD_I64LE");
|
||||
}
|
||||
else if (H5Tequal(type, H5T_STD_U8BE) == TRUE) {
|
||||
else if (H5Tequal(type, H5T_STD_U8BE) == TRUE)
|
||||
h5tools_str_append(buffer, "H5T_STD_U8BE");
|
||||
}
|
||||
else if (H5Tequal(type, H5T_STD_U8LE) == TRUE) {
|
||||
else if (H5Tequal(type, H5T_STD_U8LE) == TRUE)
|
||||
h5tools_str_append(buffer, "H5T_STD_U8LE");
|
||||
}
|
||||
else if (H5Tequal(type, H5T_STD_U16BE) == TRUE) {
|
||||
else if (H5Tequal(type, H5T_STD_U16BE) == TRUE)
|
||||
h5tools_str_append(buffer, "H5T_STD_U16BE");
|
||||
}
|
||||
else if (H5Tequal(type, H5T_STD_U16LE) == TRUE) {
|
||||
else if (H5Tequal(type, H5T_STD_U16LE) == TRUE)
|
||||
h5tools_str_append(buffer, "H5T_STD_U16LE");
|
||||
}
|
||||
else if (H5Tequal(type, H5T_STD_U32BE) == TRUE) {
|
||||
else if (H5Tequal(type, H5T_STD_U32BE) == TRUE)
|
||||
h5tools_str_append(buffer, "H5T_STD_U32BE");
|
||||
}
|
||||
else if (H5Tequal(type, H5T_STD_U32LE) == TRUE) {
|
||||
else if (H5Tequal(type, H5T_STD_U32LE) == TRUE)
|
||||
h5tools_str_append(buffer, "H5T_STD_U32LE");
|
||||
}
|
||||
else if (H5Tequal(type, H5T_STD_U64BE) == TRUE) {
|
||||
else if (H5Tequal(type, H5T_STD_U64BE) == TRUE)
|
||||
h5tools_str_append(buffer, "H5T_STD_U64BE");
|
||||
}
|
||||
else if (H5Tequal(type, H5T_STD_U64LE) == TRUE) {
|
||||
else if (H5Tequal(type, H5T_STD_U64LE) == TRUE)
|
||||
h5tools_str_append(buffer, "H5T_STD_U64LE");
|
||||
}
|
||||
else if (H5Tequal(type, H5T_NATIVE_SCHAR) == TRUE) {
|
||||
else if (H5Tequal(type, H5T_NATIVE_SCHAR) == TRUE)
|
||||
h5tools_str_append(buffer, "H5T_NATIVE_SCHAR");
|
||||
}
|
||||
else if (H5Tequal(type, H5T_NATIVE_UCHAR) == TRUE) {
|
||||
else if (H5Tequal(type, H5T_NATIVE_UCHAR) == TRUE)
|
||||
h5tools_str_append(buffer, "H5T_NATIVE_UCHAR");
|
||||
}
|
||||
else if (H5Tequal(type, H5T_NATIVE_SHORT) == TRUE) {
|
||||
else if (H5Tequal(type, H5T_NATIVE_SHORT) == TRUE)
|
||||
h5tools_str_append(buffer, "H5T_NATIVE_SHORT");
|
||||
}
|
||||
else if (H5Tequal(type, H5T_NATIVE_USHORT) == TRUE) {
|
||||
else if (H5Tequal(type, H5T_NATIVE_USHORT) == TRUE)
|
||||
h5tools_str_append(buffer, "H5T_NATIVE_USHORT");
|
||||
}
|
||||
else if (H5Tequal(type, H5T_NATIVE_INT) == TRUE) {
|
||||
else if (H5Tequal(type, H5T_NATIVE_INT) == TRUE)
|
||||
h5tools_str_append(buffer, "H5T_NATIVE_INT");
|
||||
}
|
||||
else if (H5Tequal(type, H5T_NATIVE_UINT) == TRUE) {
|
||||
else if (H5Tequal(type, H5T_NATIVE_UINT) == TRUE)
|
||||
h5tools_str_append(buffer, "H5T_NATIVE_UINT");
|
||||
}
|
||||
else if (H5Tequal(type, H5T_NATIVE_LONG) == TRUE) {
|
||||
else if (H5Tequal(type, H5T_NATIVE_LONG) == TRUE)
|
||||
h5tools_str_append(buffer, "H5T_NATIVE_LONG");
|
||||
}
|
||||
else if (H5Tequal(type, H5T_NATIVE_ULONG) == TRUE) {
|
||||
else if (H5Tequal(type, H5T_NATIVE_ULONG) == TRUE)
|
||||
h5tools_str_append(buffer, "H5T_NATIVE_ULONG");
|
||||
}
|
||||
else if (H5Tequal(type, H5T_NATIVE_LLONG) == TRUE) {
|
||||
else if (H5Tequal(type, H5T_NATIVE_LLONG) == TRUE)
|
||||
h5tools_str_append(buffer, "H5T_NATIVE_LLONG");
|
||||
}
|
||||
else if (H5Tequal(type, H5T_NATIVE_ULLONG) == TRUE) {
|
||||
else if (H5Tequal(type, H5T_NATIVE_ULLONG) == TRUE)
|
||||
h5tools_str_append(buffer, "H5T_NATIVE_ULLONG");
|
||||
}
|
||||
else {
|
||||
|
||||
/* byte order */
|
||||
if (H5Tget_size(type) > 1) {
|
||||
order = H5Tget_order(type);
|
||||
if (H5T_ORDER_LE == order) {
|
||||
if (H5T_ORDER_LE == order)
|
||||
order_s = " little-endian";
|
||||
}
|
||||
else if (H5T_ORDER_BE == order) {
|
||||
else if (H5T_ORDER_BE == order)
|
||||
order_s = " big-endian";
|
||||
}
|
||||
else if (H5T_ORDER_VAX == order) {
|
||||
else if (H5T_ORDER_VAX == order)
|
||||
order_s = " mixed-endian";
|
||||
}
|
||||
else {
|
||||
else
|
||||
order_s = " unknown-byte-order";
|
||||
}
|
||||
}
|
||||
else {
|
||||
else
|
||||
order_s = "";
|
||||
}
|
||||
|
||||
/* sign */
|
||||
if ((sign = H5Tget_sign(type)) >= 0) {
|
||||
if (H5T_SGN_NONE == sign) {
|
||||
if (H5T_SGN_NONE == sign)
|
||||
sign_s = " unsigned";
|
||||
}
|
||||
else if (H5T_SGN_2 == sign) {
|
||||
else if (H5T_SGN_2 == sign)
|
||||
sign_s = "";
|
||||
}
|
||||
else {
|
||||
else
|
||||
sign_s = " unknown-sign";
|
||||
}
|
||||
}
|
||||
else {
|
||||
else
|
||||
sign_s = " unknown-sign";
|
||||
}
|
||||
|
||||
/* print size, order, and sign */
|
||||
h5tools_str_append(buffer, "%lu-bit%s%s integer",
|
||||
@ -2052,56 +2015,42 @@ h5tools_print_datatype(FILE *stream, h5tools_str_t *buffer, const h5tool_format_
|
||||
break;
|
||||
|
||||
case H5T_FLOAT:
|
||||
if (H5Tequal(type, H5T_IEEE_F32BE) == TRUE) {
|
||||
if (H5Tequal(type, H5T_IEEE_F32BE) == TRUE)
|
||||
h5tools_str_append(buffer, "H5T_IEEE_F32BE");
|
||||
}
|
||||
else if (H5Tequal(type, H5T_IEEE_F32LE) == TRUE) {
|
||||
else if (H5Tequal(type, H5T_IEEE_F32LE) == TRUE)
|
||||
h5tools_str_append(buffer, "H5T_IEEE_F32LE");
|
||||
}
|
||||
else if (H5Tequal(type, H5T_IEEE_F64BE) == TRUE) {
|
||||
else if (H5Tequal(type, H5T_IEEE_F64BE) == TRUE)
|
||||
h5tools_str_append(buffer, "H5T_IEEE_F64BE");
|
||||
}
|
||||
else if (H5Tequal(type, H5T_IEEE_F64LE) == TRUE) {
|
||||
else if (H5Tequal(type, H5T_IEEE_F64LE) == TRUE)
|
||||
h5tools_str_append(buffer, "H5T_IEEE_F64LE");
|
||||
}
|
||||
else if (H5Tequal(type, H5T_VAX_F32) == TRUE) {
|
||||
else if (H5Tequal(type, H5T_VAX_F32) == TRUE)
|
||||
h5tools_str_append(buffer, "H5T_VAX_F32");
|
||||
}
|
||||
else if (H5Tequal(type, H5T_VAX_F64) == TRUE) {
|
||||
else if (H5Tequal(type, H5T_VAX_F64) == TRUE)
|
||||
h5tools_str_append(buffer, "H5T_VAX_F64");
|
||||
}
|
||||
else if (H5Tequal(type, H5T_NATIVE_FLOAT) == TRUE) {
|
||||
else if (H5Tequal(type, H5T_NATIVE_FLOAT) == TRUE)
|
||||
h5tools_str_append(buffer, "H5T_NATIVE_FLOAT");
|
||||
}
|
||||
else if (H5Tequal(type, H5T_NATIVE_DOUBLE) == TRUE) {
|
||||
else if (H5Tequal(type, H5T_NATIVE_DOUBLE) == TRUE)
|
||||
h5tools_str_append(buffer, "H5T_NATIVE_DOUBLE");
|
||||
#if H5_SIZEOF_LONG_DOUBLE !=0
|
||||
}
|
||||
else if (H5Tequal(type, H5T_NATIVE_LDOUBLE) == TRUE) {
|
||||
else if (H5Tequal(type, H5T_NATIVE_LDOUBLE) == TRUE)
|
||||
h5tools_str_append(buffer, "H5T_NATIVE_LDOUBLE");
|
||||
#endif
|
||||
}
|
||||
else {
|
||||
|
||||
/* byte order */
|
||||
if (H5Tget_size(type) > 1) {
|
||||
order = H5Tget_order(type);
|
||||
if (H5T_ORDER_LE == order) {
|
||||
if (H5T_ORDER_LE == order)
|
||||
order_s = " little-endian";
|
||||
}
|
||||
else if (H5T_ORDER_BE == order) {
|
||||
else if (H5T_ORDER_BE == order)
|
||||
order_s = " big-endian";
|
||||
}
|
||||
else if (H5T_ORDER_VAX == order) {
|
||||
else if (H5T_ORDER_VAX == order)
|
||||
order_s = " mixed-endian";
|
||||
}
|
||||
else {
|
||||
else
|
||||
order_s = " unknown-byte-order";
|
||||
}
|
||||
}
|
||||
else {
|
||||
else
|
||||
order_s = "";
|
||||
}
|
||||
|
||||
/* print size and byte order */
|
||||
h5tools_str_append(buffer, "%lu-bit%s floating-point",
|
||||
@ -2308,33 +2257,24 @@ h5tools_print_datatype(FILE *stream, h5tools_str_t *buffer, const h5tool_format_
|
||||
break;
|
||||
|
||||
case H5T_BITFIELD:
|
||||
if (H5Tequal(type, H5T_STD_B8BE) == TRUE) {
|
||||
if (H5Tequal(type, H5T_STD_B8BE) == TRUE)
|
||||
h5tools_str_append(buffer, "H5T_STD_B8BE");
|
||||
}
|
||||
else if (H5Tequal(type, H5T_STD_B8LE) == TRUE) {
|
||||
else if (H5Tequal(type, H5T_STD_B8LE) == TRUE)
|
||||
h5tools_str_append(buffer, "H5T_STD_B8LE");
|
||||
}
|
||||
else if (H5Tequal(type, H5T_STD_B16BE) == TRUE) {
|
||||
else if (H5Tequal(type, H5T_STD_B16BE) == TRUE)
|
||||
h5tools_str_append(buffer, "H5T_STD_B16BE");
|
||||
}
|
||||
else if (H5Tequal(type, H5T_STD_B16LE) == TRUE) {
|
||||
else if (H5Tequal(type, H5T_STD_B16LE) == TRUE)
|
||||
h5tools_str_append(buffer, "H5T_STD_B16LE");
|
||||
}
|
||||
else if (H5Tequal(type, H5T_STD_B32BE) == TRUE) {
|
||||
else if (H5Tequal(type, H5T_STD_B32BE) == TRUE)
|
||||
h5tools_str_append(buffer, "H5T_STD_B32BE");
|
||||
}
|
||||
else if (H5Tequal(type, H5T_STD_B32LE) == TRUE) {
|
||||
else if (H5Tequal(type, H5T_STD_B32LE) == TRUE)
|
||||
h5tools_str_append(buffer, "H5T_STD_B32LE");
|
||||
}
|
||||
else if (H5Tequal(type, H5T_STD_B64BE) == TRUE) {
|
||||
else if (H5Tequal(type, H5T_STD_B64BE) == TRUE)
|
||||
h5tools_str_append(buffer, "H5T_STD_B64BE");
|
||||
}
|
||||
else if (H5Tequal(type, H5T_STD_B64LE) == TRUE) {
|
||||
else if (H5Tequal(type, H5T_STD_B64LE) == TRUE)
|
||||
h5tools_str_append(buffer, "H5T_STD_B64LE");
|
||||
}
|
||||
else {
|
||||
else
|
||||
h5tools_str_append(buffer, "undefined bitfield");
|
||||
}
|
||||
break;
|
||||
|
||||
case H5T_OPAQUE:
|
||||
|
@ -18,28 +18,32 @@
|
||||
* print a warning message
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
static void print_warning(const char *dname, const char *fname)
|
||||
static void print_filter_warning(const char *dname, const char *fname)
|
||||
{
|
||||
fprintf(stderr,
|
||||
"warning: dataset <%s> cannot be read, %s filter is not available\n",
|
||||
"Warning: dataset <%s> cannot be read, %s filter is not available\n",
|
||||
dname, fname);
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: h5tools_canreadf
|
||||
*
|
||||
* Purpose: check if the dataset creation property list has filters that
|
||||
* are not registered in the current configuration
|
||||
* 1) the external filters GZIP and SZIP might not be available
|
||||
* 2) the internal filters might be turned off
|
||||
* Purpose: check if the dataset creation property list has filters that
|
||||
* are not registered in the current configuration
|
||||
* 1) the external filters GZIP and SZIP might not be available
|
||||
* 2) the internal filters might be turned off
|
||||
*
|
||||
* Return: 1, can read, 0, cannot, -1 error
|
||||
* Return:
|
||||
* 1 can read,
|
||||
* 0 cannot,
|
||||
* -1 error
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
int h5tools_canreadf(const char* name, /* object name, serves also as boolean print */
|
||||
int
|
||||
h5tools_canreadf(const char* name, /* object name, serves also as boolean print */
|
||||
hid_t dcpl_id) /* dataset creation property list */
|
||||
{
|
||||
int ret_value = 1; /*no need to LEAVE() on ERROR: HERR_INIT(int, SUCCEED) */
|
||||
int ret_value = 1;
|
||||
int nfilters; /* number of filters */
|
||||
H5Z_filter_t filtn; /* filter identification number */
|
||||
int i; /* index */
|
||||
@ -69,7 +73,7 @@ int h5tools_canreadf(const char* name, /* object name, serves also as boolean pr
|
||||
}
|
||||
else if (!udfilter_avail) {
|
||||
if (name)
|
||||
print_warning(name, "user defined");
|
||||
print_filter_warning(name, "user defined");
|
||||
ret_value = 0;
|
||||
}
|
||||
break;
|
||||
@ -81,7 +85,7 @@ int h5tools_canreadf(const char* name, /* object name, serves also as boolean pr
|
||||
case H5Z_FILTER_DEFLATE:
|
||||
#ifndef H5_HAVE_FILTER_DEFLATE
|
||||
if (name)
|
||||
print_warning(name,"deflate");
|
||||
print_filter_warning(name,"deflate");
|
||||
ret_value = 0;
|
||||
#endif
|
||||
break;
|
||||
@ -92,7 +96,7 @@ int h5tools_canreadf(const char* name, /* object name, serves also as boolean pr
|
||||
case H5Z_FILTER_SZIP:
|
||||
#ifndef H5_HAVE_FILTER_SZIP
|
||||
if (name)
|
||||
print_warning(name,"SZIP");
|
||||
print_filter_warning(name,"SZIP");
|
||||
ret_value = 0;
|
||||
#endif
|
||||
break;
|
||||
@ -130,56 +134,58 @@ done:
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: h5tools_canwritef
|
||||
*
|
||||
* Purpose: check if the filter is available and can write data.
|
||||
* At this time, all filters that are available can write data,
|
||||
* except SZIP, which may be configured decoder-only.
|
||||
* Purpose: check if the filter is available and can write data.
|
||||
*
|
||||
* Return: 1, can write, 0, cannot, -1 error
|
||||
* Return: 1 can write,
|
||||
* 0 cannot,
|
||||
* -1 error
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
H5_ATTR_CONST int
|
||||
h5tools_can_encode(H5Z_filter_t filtn) {
|
||||
h5tools_can_encode(H5Z_filter_t filtn)
|
||||
{
|
||||
int ret_value = 1;
|
||||
|
||||
switch (filtn) {
|
||||
/* user defined filter */
|
||||
default:
|
||||
return 0;
|
||||
|
||||
HGOTO_DONE(0)
|
||||
case H5Z_FILTER_DEFLATE:
|
||||
#ifndef H5_HAVE_FILTER_DEFLATE
|
||||
return 0;
|
||||
HGOTO_DONE(0)
|
||||
#endif
|
||||
break;
|
||||
|
||||
case H5Z_FILTER_SZIP:
|
||||
#ifndef H5_HAVE_FILTER_SZIP
|
||||
return 0;
|
||||
HGOTO_DONE(0)
|
||||
#else
|
||||
{
|
||||
{
|
||||
unsigned int filter_config_flags;
|
||||
|
||||
if (H5Zget_filter_info(filtn, &filter_config_flags) < 0)
|
||||
return -1;
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "H5Zget_filter_info failed");
|
||||
if ((filter_config_flags
|
||||
& (H5Z_FILTER_CONFIG_ENCODE_ENABLED | H5Z_FILTER_CONFIG_DECODE_ENABLED)) == 0) {
|
||||
/* filter present but neither encode nor decode is supported (???) */
|
||||
return -1;
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "neither encode nor decode is supported");
|
||||
}
|
||||
else if ((filter_config_flags
|
||||
& (H5Z_FILTER_CONFIG_ENCODE_ENABLED | H5Z_FILTER_CONFIG_DECODE_ENABLED)) == H5Z_FILTER_CONFIG_DECODE_ENABLED) {
|
||||
/* decoder only: read but not write */
|
||||
return 0;
|
||||
HGOTO_DONE(0)
|
||||
}
|
||||
else if ((filter_config_flags
|
||||
& (H5Z_FILTER_CONFIG_ENCODE_ENABLED | H5Z_FILTER_CONFIG_DECODE_ENABLED)) == H5Z_FILTER_CONFIG_ENCODE_ENABLED) {
|
||||
/* encoder only: write but not read (???) */
|
||||
return -1;
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "encoder only: write but not read");
|
||||
}
|
||||
else if ((filter_config_flags
|
||||
& (H5Z_FILTER_CONFIG_ENCODE_ENABLED | H5Z_FILTER_CONFIG_DECODE_ENABLED))
|
||||
== (H5Z_FILTER_CONFIG_ENCODE_ENABLED | H5Z_FILTER_CONFIG_DECODE_ENABLED)) {
|
||||
return 1;
|
||||
HGOTO_DONE(1)
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
break;
|
||||
|
||||
@ -196,6 +202,7 @@ h5tools_can_encode(H5Z_filter_t filtn) {
|
||||
break;
|
||||
}/*switch*/
|
||||
|
||||
return 1;
|
||||
done:
|
||||
return ret_value;
|
||||
}
|
||||
|
||||
|
@ -21,12 +21,6 @@
|
||||
*
|
||||
* Return: Success: datatype ID
|
||||
* Failure: FAIL
|
||||
*
|
||||
* Programmer: Pedro Vicente Nunes
|
||||
* Tuesday, July 18, 2006
|
||||
*
|
||||
* Modifications:
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
hid_t
|
||||
@ -43,40 +37,40 @@ h5tools_get_little_endian_type(hid_t tid)
|
||||
|
||||
switch(type_class) {
|
||||
case H5T_INTEGER:
|
||||
if ( size == 1 && sign == H5T_SGN_2)
|
||||
p_type=H5Tcopy(H5T_STD_I8LE);
|
||||
else if ( size == 2 && sign == H5T_SGN_2)
|
||||
p_type=H5Tcopy(H5T_STD_I16LE);
|
||||
else if ( size == 4 && sign == H5T_SGN_2)
|
||||
p_type=H5Tcopy(H5T_STD_I32LE);
|
||||
else if ( size == 8 && sign == H5T_SGN_2)
|
||||
p_type=H5Tcopy(H5T_STD_I64LE);
|
||||
else if ( size == 1 && sign == H5T_SGN_NONE)
|
||||
p_type=H5Tcopy(H5T_STD_U8LE);
|
||||
else if ( size == 2 && sign == H5T_SGN_NONE)
|
||||
p_type=H5Tcopy(H5T_STD_U16LE);
|
||||
else if ( size == 4 && sign == H5T_SGN_NONE)
|
||||
p_type=H5Tcopy(H5T_STD_U32LE);
|
||||
else if ( size == 8 && sign == H5T_SGN_NONE)
|
||||
p_type=H5Tcopy(H5T_STD_U64LE);
|
||||
if (size == 1 && sign == H5T_SGN_2)
|
||||
p_type = H5Tcopy(H5T_STD_I8LE);
|
||||
else if (size == 2 && sign == H5T_SGN_2)
|
||||
p_type = H5Tcopy(H5T_STD_I16LE);
|
||||
else if (size == 4 && sign == H5T_SGN_2)
|
||||
p_type = H5Tcopy(H5T_STD_I32LE);
|
||||
else if (size == 8 && sign == H5T_SGN_2)
|
||||
p_type = H5Tcopy(H5T_STD_I64LE);
|
||||
else if (size == 1 && sign == H5T_SGN_NONE)
|
||||
p_type = H5Tcopy(H5T_STD_U8LE);
|
||||
else if (size == 2 && sign == H5T_SGN_NONE)
|
||||
p_type = H5Tcopy(H5T_STD_U16LE);
|
||||
else if (size == 4 && sign == H5T_SGN_NONE)
|
||||
p_type = H5Tcopy(H5T_STD_U32LE);
|
||||
else if (size == 8 && sign == H5T_SGN_NONE)
|
||||
p_type = H5Tcopy(H5T_STD_U64LE);
|
||||
break;
|
||||
|
||||
case H5T_FLOAT:
|
||||
if ( size == 4)
|
||||
p_type=H5Tcopy(H5T_IEEE_F32LE);
|
||||
else if ( size == 8)
|
||||
p_type=H5Tcopy(H5T_IEEE_F64LE);
|
||||
if (size == 4)
|
||||
p_type = H5Tcopy(H5T_IEEE_F32LE);
|
||||
else if (size == 8)
|
||||
p_type = H5Tcopy(H5T_IEEE_F64LE);
|
||||
break;
|
||||
|
||||
case H5T_BITFIELD:
|
||||
if ( size == 1)
|
||||
p_type=H5Tcopy(H5T_STD_B8LE);
|
||||
else if ( size == 2)
|
||||
p_type=H5Tcopy(H5T_STD_B16LE);
|
||||
else if ( size == 4)
|
||||
p_type=H5Tcopy(H5T_STD_B32LE);
|
||||
else if ( size == 8)
|
||||
p_type=H5Tcopy(H5T_STD_B64LE);
|
||||
if (size == 1)
|
||||
p_type = H5Tcopy(H5T_STD_B8LE);
|
||||
else if (size == 2)
|
||||
p_type = H5Tcopy(H5T_STD_B16LE);
|
||||
else if (size == 4)
|
||||
p_type = H5Tcopy(H5T_STD_B32LE);
|
||||
else if (size == 8)
|
||||
p_type = H5Tcopy(H5T_STD_B64LE);
|
||||
break;
|
||||
|
||||
case H5T_TIME:
|
||||
@ -107,18 +101,12 @@ h5tools_get_little_endian_type(hid_t tid)
|
||||
*
|
||||
* Return: Success: datatype ID
|
||||
* Failure: FAIL
|
||||
*
|
||||
* Programmer: Pedro Vicente Nunes
|
||||
* Tuesday, July 18, 2006
|
||||
*
|
||||
* Modifications:
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
hid_t
|
||||
h5tools_get_big_endian_type(hid_t tid)
|
||||
{
|
||||
hid_t p_type=-1;
|
||||
hid_t p_type = -1;
|
||||
H5T_class_t type_class;
|
||||
size_t size;
|
||||
H5T_sign_t sign;
|
||||
@ -129,39 +117,39 @@ h5tools_get_big_endian_type(hid_t tid)
|
||||
|
||||
switch(type_class) {
|
||||
case H5T_INTEGER:
|
||||
if ( size == 1 && sign == H5T_SGN_2)
|
||||
p_type=H5Tcopy(H5T_STD_I8BE);
|
||||
else if ( size == 2 && sign == H5T_SGN_2)
|
||||
p_type=H5Tcopy(H5T_STD_I16BE);
|
||||
else if ( size == 4 && sign == H5T_SGN_2)
|
||||
p_type=H5Tcopy(H5T_STD_I32BE);
|
||||
else if ( size == 8 && sign == H5T_SGN_2)
|
||||
p_type=H5Tcopy(H5T_STD_I64BE);
|
||||
else if ( size == 1 && sign == H5T_SGN_NONE)
|
||||
p_type=H5Tcopy(H5T_STD_U8BE);
|
||||
else if ( size == 2 && sign == H5T_SGN_NONE)
|
||||
p_type=H5Tcopy(H5T_STD_U16BE);
|
||||
else if ( size == 4 && sign == H5T_SGN_NONE)
|
||||
p_type=H5Tcopy(H5T_STD_U32BE);
|
||||
else if ( size == 8 && sign == H5T_SGN_NONE)
|
||||
p_type=H5Tcopy(H5T_STD_U64BE);
|
||||
if (size == 1 && sign == H5T_SGN_2)
|
||||
p_type = H5Tcopy(H5T_STD_I8BE);
|
||||
else if (size == 2 && sign == H5T_SGN_2)
|
||||
p_type = H5Tcopy(H5T_STD_I16BE);
|
||||
else if (size == 4 && sign == H5T_SGN_2)
|
||||
p_type = H5Tcopy(H5T_STD_I32BE);
|
||||
else if (size == 8 && sign == H5T_SGN_2)
|
||||
p_type = H5Tcopy(H5T_STD_I64BE);
|
||||
else if (size == 1 && sign == H5T_SGN_NONE)
|
||||
p_type = H5Tcopy(H5T_STD_U8BE);
|
||||
else if (size == 2 && sign == H5T_SGN_NONE)
|
||||
p_type = H5Tcopy(H5T_STD_U16BE);
|
||||
else if (size == 4 && sign == H5T_SGN_NONE)
|
||||
p_type = H5Tcopy(H5T_STD_U32BE);
|
||||
else if (size == 8 && sign == H5T_SGN_NONE)
|
||||
p_type = H5Tcopy(H5T_STD_U64BE);
|
||||
break;
|
||||
|
||||
case H5T_FLOAT:
|
||||
if ( size == 4)
|
||||
p_type=H5Tcopy(H5T_IEEE_F32BE);
|
||||
else if ( size == 8)
|
||||
p_type=H5Tcopy(H5T_IEEE_F64BE);
|
||||
if (size == 4)
|
||||
p_type = H5Tcopy(H5T_IEEE_F32BE);
|
||||
else if (size == 8)
|
||||
p_type = H5Tcopy(H5T_IEEE_F64BE);
|
||||
break;
|
||||
|
||||
case H5T_BITFIELD:
|
||||
if ( size == 1)
|
||||
p_type=H5Tcopy(H5T_STD_B8BE);
|
||||
else if ( size == 2)
|
||||
p_type=H5Tcopy(H5T_STD_B16BE);
|
||||
else if ( size == 4)
|
||||
p_type=H5Tcopy(H5T_STD_B32BE);
|
||||
else if ( size == 8)
|
||||
if (size == 1)
|
||||
p_type = H5Tcopy(H5T_STD_B8BE);
|
||||
else if (size == 2)
|
||||
p_type = H5Tcopy(H5T_STD_B16BE);
|
||||
else if (size == 4)
|
||||
p_type = H5Tcopy(H5T_STD_B32BE);
|
||||
else if (size == 8)
|
||||
p_type=H5Tcopy(H5T_STD_B64BE);
|
||||
break;
|
||||
|
||||
|
@ -58,15 +58,11 @@ static void add_obj(table_t *table, haddr_t objno, const char *objname, hbool_t
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: parallel_print
|
||||
*
|
||||
* Purpose: wrapper for printf for use in parallel mode.
|
||||
*
|
||||
* Programmer: Leon Arber
|
||||
*
|
||||
* Date: December 1, 2004
|
||||
*
|
||||
* Purpose: wrapper for printf for use in parallel mode.
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
void parallel_print(const char* format, ...)
|
||||
void
|
||||
parallel_print(const char* format, ...)
|
||||
{
|
||||
int bytes_written;
|
||||
va_list ap;
|
||||
@ -103,18 +99,12 @@ void parallel_print(const char* format, ...)
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: error_msg
|
||||
* Function: error_msg
|
||||
*
|
||||
* Purpose: Print a nicely formatted error message to stderr flushing the
|
||||
* Purpose: Print a nicely formatted error message to stderr flushing the
|
||||
* stdout stream first.
|
||||
*
|
||||
* Return: Nothing
|
||||
*
|
||||
* Programmer: Bill Wendling
|
||||
* Tuesday, 20. February 2001
|
||||
*
|
||||
* Modifications:
|
||||
*
|
||||
* Return: Nothing
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
void
|
||||
@ -134,18 +124,12 @@ error_msg(const char *fmt, ...)
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: warn_msg
|
||||
* Function: warn_msg
|
||||
*
|
||||
* Purpose: Print a nicely formatted warning message to stderr flushing
|
||||
* Purpose: Print a nicely formatted warning message to stderr flushing
|
||||
* the stdout stream first.
|
||||
*
|
||||
* Return: Nothing
|
||||
*
|
||||
* Programmer: Bill Wendling
|
||||
* Tuesday, 20. February 2001
|
||||
*
|
||||
* Modifications:
|
||||
*
|
||||
* Return: Nothing
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
void
|
||||
@ -163,14 +147,11 @@ warn_msg(const char *fmt, ...)
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: help_ref_msg
|
||||
* Function: help_ref_msg
|
||||
*
|
||||
* Purpose: Print a message to refer help page
|
||||
*
|
||||
* Return: Nothing
|
||||
*
|
||||
* Modifications:
|
||||
* Purpose: Print a message to refer help page
|
||||
*
|
||||
* Return: Nothing
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
void
|
||||
@ -182,24 +163,16 @@ help_ref_msg(FILE *output)
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: get_option
|
||||
* Function: get_option
|
||||
*
|
||||
* Purpose: Determine the command-line options a user specified. We can
|
||||
* accept both short and long type command-lines.
|
||||
* Purpose: Determine the command-line options a user specified. We can
|
||||
* accept both short and long type command-lines.
|
||||
*
|
||||
* Return: Success: The short valued "name" of the command line
|
||||
* parameter or EOF if there are no more
|
||||
* parameters to process.
|
||||
*
|
||||
* Failure: A question mark.
|
||||
*
|
||||
* Programmer: Bill Wendling
|
||||
* Friday, 5. January 2001
|
||||
*
|
||||
* Modifications: Pedro Vicente
|
||||
* October, 27 2008
|
||||
* Wilcard "*" argument type
|
||||
*
|
||||
* Failure: A question mark.
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
int
|
||||
@ -232,9 +205,8 @@ get_option(int argc, const char **argv, const char *opts, const struct long_opti
|
||||
opt_opt = l_opts[i].shortval;
|
||||
|
||||
if (l_opts[i].has_arg != no_arg) {
|
||||
if (arg[len] == '=') {
|
||||
if (arg[len] == '=')
|
||||
opt_arg = &arg[len + 1];
|
||||
}
|
||||
else if (l_opts[i].has_arg != optional_arg) {
|
||||
if (opt_ind < (argc - 1))
|
||||
if (argv[opt_ind + 1][0] != '-')
|
||||
@ -323,16 +295,13 @@ get_option(int argc, const char **argv, const char *opts, const struct long_opti
|
||||
opt_ind++;
|
||||
/* we do have an extra argument, check if not last */
|
||||
if ( (opt_ind+1) < argc ) {
|
||||
if ( argv[opt_ind][0] != '-' ) {
|
||||
if ( argv[opt_ind][0] != '-' )
|
||||
opt_arg = argv[opt_ind++];
|
||||
}
|
||||
else {
|
||||
else
|
||||
opt_arg = NULL;
|
||||
}
|
||||
}
|
||||
else {
|
||||
else
|
||||
opt_arg = NULL;
|
||||
}
|
||||
}
|
||||
else {
|
||||
/* set up to look at next char in token, next time */
|
||||
@ -351,16 +320,11 @@ get_option(int argc, const char **argv, const char *opts, const struct long_opti
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: indentation
|
||||
* Function: indentation
|
||||
*
|
||||
* Purpose: Print spaces for indentation
|
||||
*
|
||||
* Return: void
|
||||
*
|
||||
* Programmer: Ruey-Hsia Li
|
||||
*
|
||||
* Modifications:
|
||||
* Purpose: Print spaces for indentation
|
||||
*
|
||||
* Return: void
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
void
|
||||
@ -378,17 +342,12 @@ indentation(unsigned x)
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: print_version
|
||||
* Function: print_version
|
||||
*
|
||||
* Purpose: Print the program name and the version information which is
|
||||
* defined the same as the HDF5 library version.
|
||||
*
|
||||
* Return: void
|
||||
*
|
||||
* Programmer: unknown
|
||||
*
|
||||
* Modifications:
|
||||
* Purpose: Print the program name and the version information which is
|
||||
* defined the same as the HDF5 library version.
|
||||
*
|
||||
* Return: void
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
void
|
||||
@ -407,11 +366,6 @@ print_version(const char *progname)
|
||||
* and committed types
|
||||
*
|
||||
* Return: void
|
||||
*
|
||||
* Programmer: Ruey-Hsia Li
|
||||
*
|
||||
* Modifications:
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
static void
|
||||
@ -434,11 +388,6 @@ init_table(table_t **tbl)
|
||||
* and committed types
|
||||
*
|
||||
* Return: void
|
||||
*
|
||||
* Programmer: Paul Harten
|
||||
*
|
||||
* Modifications:
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
void
|
||||
@ -462,11 +411,6 @@ free_table(table_t *table)
|
||||
* Purpose: display the contents of tables for debugging purposes
|
||||
*
|
||||
* Return: void
|
||||
*
|
||||
* Programmer: Ruey-Hsia Li
|
||||
*
|
||||
* Modifications:
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
static void
|
||||
@ -488,11 +432,6 @@ dump_table(char* tablename, table_t *table)
|
||||
* Purpose: display the contents of tables for debugging purposes
|
||||
*
|
||||
* Return: void
|
||||
*
|
||||
* Programmer: Ruey-Hsia Li
|
||||
*
|
||||
* Modifications:
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
void
|
||||
@ -513,11 +452,6 @@ dump_tables(find_objs_t *info)
|
||||
* Return: Success: an integer, the location of the object
|
||||
*
|
||||
* Failure: FAIL if object is not found
|
||||
*
|
||||
* Programmer: Ruey-Hsia Li
|
||||
*
|
||||
* Modifications:
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
H5_ATTR_PURE obj_t *
|
||||
@ -541,11 +475,6 @@ search_obj(table_t *table, haddr_t objno)
|
||||
* Return: Success: SUCCEED
|
||||
*
|
||||
* Failure: FAIL
|
||||
*
|
||||
* Programmer: Ruey-Hsia Li
|
||||
*
|
||||
* Modifications:
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
static herr_t
|
||||
@ -623,11 +552,6 @@ find_objs_cb(const char *name, const H5O_info_t *oinfo, const char *already_seen
|
||||
* Return: Success: SUCCEED
|
||||
*
|
||||
* Failure: FAIL
|
||||
*
|
||||
* Programmer: Ruey-Hsia Li
|
||||
*
|
||||
* Modifications:
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
herr_t
|
||||
@ -657,11 +581,6 @@ init_objs(hid_t fid, find_objs_t *info, table_t **group_table,
|
||||
* realloc the table if necessary
|
||||
*
|
||||
* Return: void
|
||||
*
|
||||
* Programmer: Ruey-Hsia Li
|
||||
*
|
||||
* Modifications:
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
static void
|
||||
@ -695,11 +614,6 @@ add_obj(table_t *table, haddr_t objno, const char *objname, hbool_t record)
|
||||
*
|
||||
* Return: a stream description when succeeds.
|
||||
* NULL if fails.
|
||||
*
|
||||
* Programmer: Albert Cheng, 2005/8/9
|
||||
*
|
||||
* Modifications:
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
FILE *
|
||||
@ -723,70 +637,61 @@ tmpfile(void)
|
||||
*
|
||||
* Return:
|
||||
* 2 : given pathname is object
|
||||
* 1 : Succed to get link info.
|
||||
* 1 : Succeed to get link info.
|
||||
* 0 : Detected as a dangling link
|
||||
* -1 : H5 API failed.
|
||||
*
|
||||
* NOTE:
|
||||
* link_info->trg_path must be freed out of this function
|
||||
*
|
||||
* Programmer: Jonathan Kim
|
||||
*
|
||||
* Date: Feb 8, 2010
|
||||
*-------------------------------------------------------------------------*/
|
||||
int
|
||||
H5tools_get_symlink_info(hid_t file_id, const char * linkpath, h5tool_link_info_t *link_info,
|
||||
hbool_t get_obj_type)
|
||||
H5tools_get_symlink_info(hid_t file_id, const char * linkpath, h5tool_link_info_t *link_info, hbool_t get_obj_type)
|
||||
{
|
||||
htri_t l_ret;
|
||||
H5O_info_t trg_oinfo;
|
||||
hid_t fapl = H5P_DEFAULT;
|
||||
hid_t lapl = H5P_DEFAULT;
|
||||
int ret = -1; /* init to fail */
|
||||
int ret_value = -1; /* init to fail */
|
||||
|
||||
/* init */
|
||||
link_info->trg_type = H5O_TYPE_UNKNOWN;
|
||||
|
||||
/* if path is root, return group type */
|
||||
if(!HDstrcmp(linkpath,"/"))
|
||||
{
|
||||
if(!HDstrcmp(linkpath,"/")) {
|
||||
link_info->trg_type = H5O_TYPE_GROUP;
|
||||
ret = 2;
|
||||
goto out;
|
||||
HGOTO_DONE(2);
|
||||
}
|
||||
|
||||
/* check if link itself exist */
|
||||
if(H5Lexists(file_id, linkpath, H5P_DEFAULT) <= 0) {
|
||||
if(link_info->opt.msg_mode == 1)
|
||||
parallel_print("Warning: link <%s> doesn't exist \n",linkpath);
|
||||
goto out;
|
||||
HGOTO_DONE(FAIL);
|
||||
} /* end if */
|
||||
|
||||
/* get info from link */
|
||||
if(H5Lget_info(file_id, linkpath, &(link_info->linfo), H5P_DEFAULT) < 0) {
|
||||
if(link_info->opt.msg_mode == 1)
|
||||
parallel_print("Warning: unable to get link info from <%s>\n",linkpath);
|
||||
goto out;
|
||||
HGOTO_DONE(FAIL);
|
||||
} /* end if */
|
||||
|
||||
/* given path is hard link (object) */
|
||||
if(link_info->linfo.type == H5L_TYPE_HARD) {
|
||||
ret = 2;
|
||||
goto out;
|
||||
} /* end if */
|
||||
if(link_info->linfo.type == H5L_TYPE_HARD)
|
||||
HGOTO_DONE(2);
|
||||
|
||||
/* trg_path must be freed out of this function when finished using */
|
||||
if((link_info->trg_path = (char*)HDcalloc(link_info->linfo.u.val_size, sizeof(char))) == NULL) {
|
||||
if(link_info->opt.msg_mode == 1)
|
||||
parallel_print("Warning: unable to allocate buffer for <%s>\n",linkpath);
|
||||
goto out;
|
||||
HGOTO_DONE(FAIL);
|
||||
} /* end if */
|
||||
|
||||
/* get link value */
|
||||
if(H5Lget_val(file_id, linkpath, (void *)link_info->trg_path, link_info->linfo.u.val_size, H5P_DEFAULT) < 0) {
|
||||
if(link_info->opt.msg_mode == 1)
|
||||
parallel_print("Warning: unable to get link value from <%s>\n",linkpath);
|
||||
goto out;
|
||||
HGOTO_DONE(FAIL);
|
||||
} /* end if */
|
||||
|
||||
/*-----------------------------------------------------
|
||||
@ -795,13 +700,13 @@ H5tools_get_symlink_info(hid_t file_id, const char * linkpath, h5tool_link_info_
|
||||
*/
|
||||
if(link_info->linfo.type == H5L_TYPE_EXTERNAL) {
|
||||
if((fapl = H5Pcreate(H5P_FILE_ACCESS)) < 0)
|
||||
goto out;
|
||||
HGOTO_DONE(FAIL);
|
||||
if(H5Pset_fapl_sec2(fapl) < 0)
|
||||
goto out;
|
||||
HGOTO_DONE(FAIL);
|
||||
if((lapl = H5Pcreate(H5P_LINK_ACCESS)) < 0)
|
||||
goto out;
|
||||
HGOTO_DONE(FAIL);
|
||||
if(H5Pset_elink_fapl(lapl, fapl) < 0)
|
||||
goto out;
|
||||
HGOTO_DONE(FAIL);
|
||||
} /* end if */
|
||||
|
||||
/* Check for retrieving object info */
|
||||
@ -814,25 +719,24 @@ H5tools_get_symlink_info(hid_t file_id, const char * linkpath, h5tool_link_info_
|
||||
|
||||
/* detect dangling link */
|
||||
if(l_ret == FALSE) {
|
||||
ret = 0;
|
||||
goto out;
|
||||
} /* end if */
|
||||
/* function failed */
|
||||
else if(l_ret < 0)
|
||||
goto out;
|
||||
HGOTO_DONE(0);
|
||||
}
|
||||
else if(l_ret < 0) { /* function failed */
|
||||
HGOTO_DONE(FAIL);
|
||||
}
|
||||
|
||||
/* get target object info */
|
||||
if(H5Oget_info_by_name(file_id, linkpath, &trg_oinfo, lapl) < 0) {
|
||||
if(link_info->opt.msg_mode == 1)
|
||||
parallel_print("Warning: unable to get object information for <%s>\n", linkpath);
|
||||
goto out;
|
||||
HGOTO_DONE(FAIL);
|
||||
} /* end if */
|
||||
|
||||
/* check unknown type */
|
||||
if(trg_oinfo.type < H5O_TYPE_GROUP || trg_oinfo.type >=H5O_TYPE_NTYPES) {
|
||||
if(link_info->opt.msg_mode == 1)
|
||||
parallel_print("Warning: target object of <%s> is unknown type\n", linkpath);
|
||||
goto out;
|
||||
HGOTO_DONE(FAIL);
|
||||
} /* end if */
|
||||
|
||||
/* set target obj type to return */
|
||||
@ -844,31 +748,34 @@ H5tools_get_symlink_info(hid_t file_id, const char * linkpath, h5tool_link_info_
|
||||
link_info->trg_type = H5O_TYPE_UNKNOWN;
|
||||
|
||||
/* succeed */
|
||||
ret = 1;
|
||||
ret_value = 1;
|
||||
|
||||
out:
|
||||
done:
|
||||
if(fapl != H5P_DEFAULT)
|
||||
H5Pclose(fapl);
|
||||
if(lapl != H5P_DEFAULT)
|
||||
H5Pclose(lapl);
|
||||
|
||||
return ret;
|
||||
return ret_value;
|
||||
} /* end H5tools_get_symlink_info() */
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Audience: Public
|
||||
* Chapter: H5Tools Library
|
||||
*
|
||||
* Purpose: Initialize the name and operation status of the H5 Tools library
|
||||
*
|
||||
* Description:
|
||||
* These are utility functions to set/get the program name and operation status.
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
void h5tools_setprogname(const char *Progname)
|
||||
void
|
||||
h5tools_setprogname(const char *Progname)
|
||||
{
|
||||
h5tools_progname = Progname;
|
||||
}
|
||||
|
||||
void h5tools_setstatus(int D_status)
|
||||
void
|
||||
h5tools_setstatus(int D_status)
|
||||
{
|
||||
h5tools_d_status = D_status;
|
||||
}
|
||||
@ -892,25 +799,19 @@ h5tools_getstatus(void)
|
||||
* This can be called from each tools main() as part of initial act.
|
||||
* Note: this is more of debugging purpose for now.
|
||||
*/
|
||||
int h5tools_getenv_update_hyperslab_bufsize(void)
|
||||
int
|
||||
h5tools_getenv_update_hyperslab_bufsize(void)
|
||||
{
|
||||
const char *env_str = NULL;
|
||||
long hyperslab_bufsize_mb;
|
||||
int ret_value = 1;
|
||||
|
||||
/* check if environment variable is set for the hyperslab buffer size */
|
||||
if (NULL != (env_str = HDgetenv ("H5TOOLS_BUFSIZE")))
|
||||
{
|
||||
if (NULL != (env_str = HDgetenv ("H5TOOLS_BUFSIZE"))) {
|
||||
errno = 0;
|
||||
hyperslab_bufsize_mb = HDstrtol(env_str, (char**)NULL, 10);
|
||||
if (errno != 0 || hyperslab_bufsize_mb <= 0)
|
||||
{
|
||||
/* TODO: later when pubilshed
|
||||
HDfprintf(rawerrorstream,"Error: Invalid environment variable \"H5TOOLS_BUFSIZE\" : %s\n", env_str);
|
||||
*/
|
||||
|
||||
goto error;
|
||||
}
|
||||
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "hyperslab buffer size failed");
|
||||
|
||||
/* convert MB to byte */
|
||||
H5TOOLS_BUFSIZE = (hsize_t)hyperslab_bufsize_mb * 1024 * 1024;
|
||||
@ -918,9 +819,7 @@ int h5tools_getenv_update_hyperslab_bufsize(void)
|
||||
H5TOOLS_MALLOCSIZE = MAX(H5TOOLS_BUFSIZE, H5TOOLS_MALLOCSIZE);
|
||||
}
|
||||
|
||||
return (1);
|
||||
|
||||
error:
|
||||
return (-1);
|
||||
done:
|
||||
return ret_value;
|
||||
}
|
||||
|
||||
|
@ -13,6 +13,7 @@
|
||||
|
||||
|
||||
#include "h5trav.h"
|
||||
#include "h5tools.h"
|
||||
#include "H5private.h"
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
@ -81,10 +82,9 @@ static int trav_verbosity = 0;
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: h5trav_set_index
|
||||
*
|
||||
* Purpose: Set indexing properties for the objects & links in the file
|
||||
*
|
||||
* Return: none
|
||||
* Purpose: Set indexing properties for the objects & links in the file
|
||||
*
|
||||
* Return: none
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
void
|
||||
@ -97,10 +97,9 @@ h5trav_set_index(H5_index_t print_index_by, H5_iter_order_t print_index_order)
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: h5trav_set_verbose
|
||||
*
|
||||
* Purpose: Set verbosity of file contents 1=>attributes
|
||||
*
|
||||
* Return: none
|
||||
* Purpose: Set verbosity of file contents 1=>attributes
|
||||
*
|
||||
* Return: none
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
void
|
||||
@ -118,14 +117,9 @@ h5trav_set_verbose(int print_verbose)
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: trav_addr_add
|
||||
*
|
||||
* Purpose: Add a hardlink address to visited data structure
|
||||
*
|
||||
* Return: void
|
||||
*
|
||||
* Programmer: Quincey Koziol, koziol@hdfgroup.org
|
||||
*
|
||||
* Date: September 1, 2007
|
||||
* Purpose: Add a hardlink address to visited data structure
|
||||
*
|
||||
* Return: void
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
static void
|
||||
@ -149,14 +143,9 @@ trav_addr_add(trav_addr_t *visited, haddr_t addr, const char *path)
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: trav_addr_visited
|
||||
*
|
||||
* Purpose: Check if an address has already been visited
|
||||
*
|
||||
* Return: TRUE/FALSE
|
||||
*
|
||||
* Programmer: Quincey Koziol, koziol@hdfgroup.org
|
||||
*
|
||||
* Date: September 1, 2007
|
||||
* Purpose: Check if an address has already been visited
|
||||
*
|
||||
* Return: TRUE/FALSE
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
H5_ATTR_PURE static const char *
|
||||
@ -178,12 +167,7 @@ trav_addr_visited(trav_addr_t *visited, haddr_t addr)
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: traverse_cb
|
||||
*
|
||||
* Purpose: Iterator callback for traversing objects in file
|
||||
*
|
||||
* Programmer: Quincey Koziol, koziol@hdfgroup.org
|
||||
*
|
||||
* Date: September 1, 2007
|
||||
*
|
||||
* Purpose: Iterator callback for traversing objects in file
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
static herr_t
|
||||
@ -258,26 +242,23 @@ traverse_cb(hid_t loc_id, const char *path, const H5L_info_t *linfo,
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: traverse
|
||||
*
|
||||
* Purpose: Iterate over all the objects/links in a file. Conforms to the
|
||||
* "visitor" pattern.
|
||||
*
|
||||
* Return: 0 on success, -1 on failure
|
||||
*
|
||||
* Programmer: Quincey Koziol, koziol@hdfgroup.org
|
||||
*
|
||||
* Date: September 1, 2007
|
||||
* Purpose: Iterate over all the objects/links in a file. Conforms to the
|
||||
* "visitor" pattern.
|
||||
*
|
||||
* Return: 0 on success,
|
||||
* -1 on failure
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
static int
|
||||
traverse(hid_t file_id, const char *grp_name, hbool_t visit_start,
|
||||
hbool_t recurse, const trav_visitor_t *visitor)
|
||||
hbool_t recurse, const trav_visitor_t *visitor)
|
||||
{
|
||||
H5O_info_t oinfo; /* Object info for starting group */
|
||||
int ret_value = SUCCEED;
|
||||
|
||||
/* Get info for starting object */
|
||||
if(H5Oget_info_by_name(file_id, grp_name, &oinfo, H5P_DEFAULT) < 0)
|
||||
return -1;
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "H5Oget_info_by_name failed");
|
||||
|
||||
/* Visit the starting object */
|
||||
if(visit_start && visitor->visit_obj)
|
||||
@ -306,12 +287,12 @@ traverse(hid_t file_id, const char *grp_name, hbool_t visit_start,
|
||||
if(recurse) {
|
||||
/* Visit all links in group, recursively */
|
||||
if(H5Lvisit_by_name(file_id, grp_name, trav_index_by, trav_index_order, traverse_cb, &udata, H5P_DEFAULT) < 0)
|
||||
return -1;
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "H5Lvisit_by_name failed");
|
||||
} /* end if */
|
||||
else {
|
||||
/* Iterate over links in group */
|
||||
if(H5Literate_by_name(file_id, grp_name, trav_index_by, trav_index_order, NULL, traverse_cb, &udata, H5P_DEFAULT) < 0)
|
||||
return -1;
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "H5Literate_by_name failed");
|
||||
} /* end else */
|
||||
|
||||
/* Free visited addresses table */
|
||||
@ -325,21 +306,17 @@ traverse(hid_t file_id, const char *grp_name, hbool_t visit_start,
|
||||
} /* end if */
|
||||
} /* end if */
|
||||
|
||||
return 0;
|
||||
done:
|
||||
return ret_value;
|
||||
}
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: trav_info_add
|
||||
*
|
||||
* Purpose: Add a link path & type to info struct
|
||||
*
|
||||
* Return: void
|
||||
*
|
||||
* Programmer: Quincey Koziol, koziol@hdfgroup.org
|
||||
*
|
||||
* Date: September 1, 2007
|
||||
* Purpose: Add a link path & type to info struct
|
||||
*
|
||||
* Return: void
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
void
|
||||
@ -347,18 +324,20 @@ trav_info_add(trav_info_t *info, const char *path, h5trav_type_t obj_type)
|
||||
{
|
||||
size_t idx; /* Index of address to use */
|
||||
|
||||
/* Allocate space if necessary */
|
||||
if(info->nused == info->nalloc) {
|
||||
info->nalloc = MAX(1, info->nalloc * 2);;
|
||||
info->paths = (trav_path_t *)HDrealloc(info->paths, info->nalloc * sizeof(trav_path_t));
|
||||
} /* end if */
|
||||
if (info) {
|
||||
/* Allocate space if necessary */
|
||||
if(info->nused == info->nalloc) {
|
||||
info->nalloc = MAX(1, info->nalloc * 2);;
|
||||
info->paths = (trav_path_t *)HDrealloc(info->paths, info->nalloc * sizeof(trav_path_t));
|
||||
} /* end if */
|
||||
|
||||
/* Append it */
|
||||
idx = info->nused++;
|
||||
info->paths[idx].path = HDstrdup(path);
|
||||
info->paths[idx].type = obj_type;
|
||||
info->paths[idx].fileno = 0;
|
||||
info->paths[idx].objno = HADDR_UNDEF;
|
||||
/* Append it */
|
||||
idx = info->nused++;
|
||||
info->paths[idx].path = HDstrdup(path);
|
||||
info->paths[idx].type = obj_type;
|
||||
info->paths[idx].fileno = 0;
|
||||
info->paths[idx].objno = HADDR_UNDEF;
|
||||
}
|
||||
} /* end trav_info_add() */
|
||||
|
||||
|
||||
@ -368,7 +347,6 @@ trav_info_add(trav_info_t *info, const char *path, h5trav_type_t obj_type)
|
||||
* Purpose: Add a file addr & fileno to info struct
|
||||
*
|
||||
* Return: void
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
void
|
||||
@ -390,22 +368,19 @@ trav_fileinfo_add(trav_info_t *info, hid_t loc_id)
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: trav_info_visit_obj
|
||||
*
|
||||
* Purpose: Callback for visiting object, with 'info' structure
|
||||
*
|
||||
* Return: 0 on success, -1 on failure
|
||||
*
|
||||
* Programmer: Quincey Koziol, koziol@hdfgroup.org
|
||||
*
|
||||
* Date: September 1, 2007
|
||||
* Purpose: Callback for visiting object, with 'info' structure
|
||||
*
|
||||
* Return: 0 on success,
|
||||
* -1 on failure
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
int
|
||||
trav_info_visit_obj(const char *path, const H5O_info_t *oinfo,
|
||||
const char H5_ATTR_UNUSED *already_visited, void *udata)
|
||||
const char H5_ATTR_UNUSED *already_visited, void *udata)
|
||||
{
|
||||
size_t idx;
|
||||
trav_info_t *info_p;
|
||||
|
||||
/* Add the object to the 'info' struct */
|
||||
/* (object types map directly to "traversal" types) */
|
||||
trav_info_add((trav_info_t *)udata, path, (h5trav_type_t)oinfo->type);
|
||||
@ -423,14 +398,10 @@ trav_info_visit_obj(const char *path, const H5O_info_t *oinfo,
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: trav_info_visit_lnk
|
||||
*
|
||||
* Purpose: Callback for visiting link, with 'info' structure
|
||||
*
|
||||
* Return: 0 on success, -1 on failure
|
||||
*
|
||||
* Programmer: Quincey Koziol, koziol@hdfgroup.org
|
||||
*
|
||||
* Date: September 1, 2007
|
||||
* Purpose: Callback for visiting link, with 'info' structure
|
||||
*
|
||||
* Return: 0 on success,
|
||||
* -1 on failure
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
int
|
||||
@ -446,21 +417,18 @@ trav_info_visit_lnk(const char *path, const H5L_info_t *linfo, void *udata)
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: h5trav_getinfo
|
||||
*
|
||||
* Purpose: get an array of "trav_info_t" , containing the name and type of
|
||||
* objects in the file
|
||||
*
|
||||
* Return: number of object names in file
|
||||
*
|
||||
* Programmer: Pedro Vicente, pvn@ncsa.uiuc.edu
|
||||
*
|
||||
* Date: November 6, 2002
|
||||
* Purpose: get an array of "trav_info_t" , containing the name and type of
|
||||
* objects in the file
|
||||
*
|
||||
* Return: 0 on success,
|
||||
* -1 on failure
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
int
|
||||
h5trav_getinfo(hid_t file_id, trav_info_t *info)
|
||||
{
|
||||
trav_visitor_t info_visitor; /* Visitor structure for trav_info_t's */
|
||||
int ret_value = SUCCEED;
|
||||
|
||||
/* Init visitor structure */
|
||||
info_visitor.visit_obj = trav_info_visit_obj;
|
||||
@ -469,25 +437,21 @@ h5trav_getinfo(hid_t file_id, trav_info_t *info)
|
||||
|
||||
/* Traverse all objects in the file, visiting each object & link */
|
||||
if(traverse(file_id, "/", TRUE, TRUE, &info_visitor) < 0)
|
||||
return -1;
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "traverse failed");
|
||||
|
||||
return 0;
|
||||
done:
|
||||
return ret_value;
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: h5trav_getindex
|
||||
*
|
||||
* Purpose: get index of OBJ in list
|
||||
*
|
||||
* Return: index, -1 if not found
|
||||
*
|
||||
* Programmer: Pedro Vicente, pvn@ncsa.uiuc.edu
|
||||
*
|
||||
* Date: May 9, 2003
|
||||
* Purpose: get index of OBJ in list
|
||||
*
|
||||
* Return: index on success,
|
||||
* -1 if not found
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
H5_ATTR_PURE ssize_t
|
||||
h5trav_getindex(const trav_info_t *info, const char *obj)
|
||||
{
|
||||
@ -511,17 +475,11 @@ h5trav_getindex(const trav_info_t *info, const char *obj)
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: trav_info_init
|
||||
*
|
||||
* Purpose: Initialize the info
|
||||
*
|
||||
* Return: void
|
||||
*
|
||||
* Programmer: Quincey Koziol, koziol@hdfgroup.org
|
||||
*
|
||||
* Date: September 6, 2007
|
||||
* Purpose: Initialize the info
|
||||
*
|
||||
* Return: void
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
void
|
||||
trav_info_init(const char *filename, hid_t fileid, trav_info_t **_info)
|
||||
{
|
||||
@ -545,11 +503,9 @@ trav_info_init(const char *filename, hid_t fileid, trav_info_t **_info)
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: trav_info_free
|
||||
*
|
||||
* Purpose: free info memory
|
||||
*
|
||||
* Purpose: free info memory
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
void
|
||||
trav_info_free(trav_info_t *info)
|
||||
{
|
||||
@ -557,11 +513,9 @@ trav_info_free(trav_info_t *info)
|
||||
|
||||
if(info) {
|
||||
/* Free visited symbolic links path and file (if alloc) */
|
||||
for(u=0; u < info->symlink_visited.nused; u++)
|
||||
{
|
||||
for(u = 0; u < info->symlink_visited.nused; u++) {
|
||||
if (info->symlink_visited.objs[u].file)
|
||||
HDfree(info->symlink_visited.objs[u].file);
|
||||
|
||||
HDfree(info->symlink_visited.objs[u].path);
|
||||
}
|
||||
HDfree(info->symlink_visited.objs);
|
||||
@ -586,12 +540,8 @@ trav_info_free(trav_info_t *info)
|
||||
*
|
||||
* Purpose: Callback for visiting object, with 'table' sructure
|
||||
*
|
||||
* Return: 0 on success, -1 on failure
|
||||
*
|
||||
* Programmer: Quincey Koziol, koziol@hdfgroup.org
|
||||
*
|
||||
* Date: September 1, 2007
|
||||
*
|
||||
* Return: 0 on success,
|
||||
* -1 on failure
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
static int
|
||||
@ -608,21 +558,17 @@ trav_table_visit_obj(const char *path, const H5O_info_t *oinfo,
|
||||
/* Add alias for object to table */
|
||||
trav_table_addlink(table, oinfo->addr, path);
|
||||
|
||||
return(0);
|
||||
return 0;
|
||||
} /* end trav_table_visit_obj() */
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: trav_table_visit_lnk
|
||||
*
|
||||
* Purpose: Callback for visiting link, with 'table' sructure
|
||||
*
|
||||
* Return: 0 on success, -1 on failure
|
||||
*
|
||||
* Programmer: Quincey Koziol, koziol@hdfgroup.org
|
||||
*
|
||||
* Date: September 1, 2007
|
||||
* Purpose: Callback for visiting link, with 'table' sructure
|
||||
*
|
||||
* Return: 0 on success,
|
||||
* -1 on failure
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
static int
|
||||
@ -631,28 +577,24 @@ trav_table_visit_lnk(const char *path, const H5L_info_t H5_ATTR_UNUSED *linfo, v
|
||||
/* Add the link to the 'table' struct */
|
||||
trav_table_add((trav_table_t *)udata, path, NULL);
|
||||
|
||||
return(0);
|
||||
return 0;
|
||||
} /* end trav_table_visit_lnk() */
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: h5trav_gettable
|
||||
*
|
||||
* Purpose: get the trav_table_t struct
|
||||
*
|
||||
* Return: 0, -1 on error
|
||||
*
|
||||
* Programmer: Pedro Vicente, pvn@ncsa.uiuc.edu
|
||||
*
|
||||
* Date: December 17, 2003
|
||||
* Purpose: get the trav_table_t struct
|
||||
*
|
||||
* Return: 0 on success,
|
||||
* -1 on failure
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
int
|
||||
h5trav_gettable(hid_t fid, trav_table_t *table)
|
||||
{
|
||||
trav_visitor_t table_visitor; /* Visitor structure for trav_table_t's */
|
||||
int ret_value = SUCCEED;
|
||||
|
||||
/* Init visitor structure */
|
||||
table_visitor.visit_obj = trav_table_visit_obj;
|
||||
@ -661,71 +603,63 @@ h5trav_gettable(hid_t fid, trav_table_t *table)
|
||||
|
||||
/* Traverse all objects in the file, visiting each object & link */
|
||||
if(traverse(fid, "/", TRUE, TRUE, &table_visitor) < 0)
|
||||
return -1;
|
||||
return 0;
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "traverse failed");
|
||||
|
||||
done:
|
||||
return ret_value;
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: h5trav_getindext
|
||||
*
|
||||
* Purpose: get index of NAME in list
|
||||
*
|
||||
* Return: index, -1 if not found
|
||||
*
|
||||
* Programmer: Pedro Vicente, pvn@ncsa.uiuc.edu
|
||||
*
|
||||
* Date: December 18, 2003
|
||||
* Purpose: get index of NAME in list
|
||||
*
|
||||
* Return: index on success,
|
||||
* -1 if not found
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
H5_ATTR_PURE int
|
||||
h5trav_getindext(const char *name, const trav_table_t *table)
|
||||
{
|
||||
unsigned int i;
|
||||
|
||||
for(i = 0; i < table->nobjs; i++) {
|
||||
/* Check for object name having full path (with leading '/') */
|
||||
if(HDstrcmp(name, table->objs[i].name) == 0)
|
||||
return((int)i);
|
||||
if(table) {
|
||||
for(i = 0; i < table->nobjs; i++) {
|
||||
/* Check for object name having full path (with leading '/') */
|
||||
if(HDstrcmp(name, table->objs[i].name) == 0)
|
||||
return((int)i);
|
||||
|
||||
/* Check for object name without leading '/' */
|
||||
if(HDstrcmp(name, table->objs[i].name + 1) == 0)
|
||||
return((int)i);
|
||||
/* Check for object name without leading '/' */
|
||||
if(HDstrcmp(name, table->objs[i].name + 1) == 0)
|
||||
return((int)i);
|
||||
|
||||
/* search also in the list of links */
|
||||
if(table->objs[i].nlinks) {
|
||||
unsigned int j;
|
||||
/* search also in the list of links */
|
||||
if(table->objs[i].nlinks) {
|
||||
unsigned int j;
|
||||
|
||||
for ( j=0; j<table->objs[i].nlinks; j++) {
|
||||
/* Check for object name having full path (with leading '/') */
|
||||
if(HDstrcmp(name, table->objs[i].links[j].new_name) == 0)
|
||||
return((int)i);
|
||||
|
||||
/* Check for object name without leading '/' */
|
||||
if(HDstrcmp(name, table->objs[i].links[j].new_name + 1) == 0)
|
||||
return((int)i);
|
||||
} /* end for */
|
||||
} /* end if */
|
||||
} /* end for */
|
||||
for ( j=0; j<table->objs[i].nlinks; j++) {
|
||||
/* Check for object name having full path (with leading '/') */
|
||||
if(HDstrcmp(name, table->objs[i].links[j].new_name) == 0)
|
||||
return((int)i);
|
||||
|
||||
/* Check for object name without leading '/' */
|
||||
if(HDstrcmp(name, table->objs[i].links[j].new_name + 1) == 0)
|
||||
return((int)i);
|
||||
} /* end for */
|
||||
} /* end if */
|
||||
} /* end for */
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: trav_table_add
|
||||
*
|
||||
* Purpose: Add OBJNO, NAME and TYPE of object to table
|
||||
*
|
||||
* Return: void
|
||||
*
|
||||
* Programmer: Pedro Vicente, pvn@ncsa.uiuc.edu
|
||||
*
|
||||
* Date: November 4, 2002
|
||||
* Purpose: Add OBJNO, NAME and TYPE of object to table
|
||||
*
|
||||
* Return: void
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
static void
|
||||
trav_table_add(trav_table_t *table,
|
||||
const char *path,
|
||||
@ -733,20 +667,22 @@ trav_table_add(trav_table_t *table,
|
||||
{
|
||||
size_t new_obj;
|
||||
|
||||
if(table->nobjs == table->size) {
|
||||
table->size = MAX(1, table->size * 2);
|
||||
table->objs = (trav_obj_t *)HDrealloc(table->objs, table->size * sizeof(trav_obj_t));
|
||||
} /* end if */
|
||||
if(table) {
|
||||
if(table->nobjs == table->size) {
|
||||
table->size = MAX(1, table->size * 2);
|
||||
table->objs = (trav_obj_t *)HDrealloc(table->objs, table->size * sizeof(trav_obj_t));
|
||||
} /* end if */
|
||||
|
||||
new_obj = table->nobjs++;
|
||||
table->objs[new_obj].objno = oinfo ? oinfo->addr : HADDR_UNDEF;
|
||||
table->objs[new_obj].flags[0] = table->objs[new_obj].flags[1] = 0;
|
||||
table->objs[new_obj].is_same_trgobj = 0;
|
||||
table->objs[new_obj].name = (char *)HDstrdup(path);
|
||||
table->objs[new_obj].type = oinfo ? (h5trav_type_t)oinfo->type : H5TRAV_TYPE_LINK;
|
||||
table->objs[new_obj].nlinks = 0;
|
||||
table->objs[new_obj].sizelinks = 0;
|
||||
table->objs[new_obj].links = NULL;
|
||||
new_obj = table->nobjs++;
|
||||
table->objs[new_obj].objno = oinfo ? oinfo->addr : HADDR_UNDEF;
|
||||
table->objs[new_obj].flags[0] = table->objs[new_obj].flags[1] = 0;
|
||||
table->objs[new_obj].is_same_trgobj = 0;
|
||||
table->objs[new_obj].name = (char *)HDstrdup(path);
|
||||
table->objs[new_obj].type = oinfo ? (h5trav_type_t)oinfo->type : H5TRAV_TYPE_LINK;
|
||||
table->objs[new_obj].nlinks = 0;
|
||||
table->objs[new_obj].sizelinks = 0;
|
||||
table->objs[new_obj].links = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
@ -755,58 +691,47 @@ trav_table_add(trav_table_t *table,
|
||||
* Purpose: Add a hardlink name to the object
|
||||
*
|
||||
* Return: void
|
||||
*
|
||||
* Programmer: Pedro Vicente, pvn@ncsa.uiuc.edu
|
||||
*
|
||||
* Date: December 17, 2003
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
static void
|
||||
trav_table_addlink(trav_table_t *table, haddr_t objno, const char *path)
|
||||
{
|
||||
size_t i; /* Local index variable */
|
||||
|
||||
for(i = 0; i < table->nobjs; i++) {
|
||||
if(table->objs[i].objno == objno) {
|
||||
size_t n;
|
||||
if(table) {
|
||||
for(i = 0; i < table->nobjs; i++) {
|
||||
if(table->objs[i].objno == objno) {
|
||||
size_t n;
|
||||
|
||||
/* already inserted? */
|
||||
if(HDstrcmp(table->objs[i].name, path) == 0)
|
||||
return;
|
||||
|
||||
/* allocate space if necessary */
|
||||
if(table->objs[i].nlinks == (unsigned)table->objs[i].sizelinks) {
|
||||
table->objs[i].sizelinks = MAX(1, table->objs[i].sizelinks * 2);
|
||||
table->objs[i].links = (trav_link_t *)HDrealloc(table->objs[i].links, table->objs[i].sizelinks * sizeof(trav_link_t));
|
||||
} /* end if */
|
||||
|
||||
/* insert it */
|
||||
n = table->objs[i].nlinks++;
|
||||
table->objs[i].links[n].new_name = (char *)HDstrdup(path);
|
||||
|
||||
/* already inserted? */
|
||||
if(HDstrcmp(table->objs[i].name, path) == 0)
|
||||
return;
|
||||
|
||||
/* allocate space if necessary */
|
||||
if(table->objs[i].nlinks == (unsigned)table->objs[i].sizelinks) {
|
||||
table->objs[i].sizelinks = MAX(1, table->objs[i].sizelinks * 2);
|
||||
table->objs[i].links = (trav_link_t *)HDrealloc(table->objs[i].links, table->objs[i].sizelinks * sizeof(trav_link_t));
|
||||
} /* end if */
|
||||
|
||||
/* insert it */
|
||||
n = table->objs[i].nlinks++;
|
||||
table->objs[i].links[n].new_name = (char *)HDstrdup(path);
|
||||
|
||||
return;
|
||||
} /* end for */
|
||||
} /* end for */
|
||||
} /* end for */
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: trav_table_addflags
|
||||
*
|
||||
* Purpose: Add FLAGS, NAME and TYPE of object to table
|
||||
*
|
||||
* Return: void
|
||||
*
|
||||
* Programmer: Pedro Vicente, pvn@ncsa.uiuc.edu
|
||||
*
|
||||
* Date: November 4, 2002
|
||||
* Purpose: Add FLAGS, NAME and TYPE of object to table
|
||||
*
|
||||
* Return: void
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
void trav_table_addflags(unsigned *flags,
|
||||
char *name,
|
||||
h5trav_type_t type,
|
||||
@ -814,92 +739,83 @@ void trav_table_addflags(unsigned *flags,
|
||||
{
|
||||
size_t new_obj;
|
||||
|
||||
if(table->nobjs == table->size) {
|
||||
table->size = MAX(1, table->size * 2);
|
||||
table->objs = (trav_obj_t *)HDrealloc(table->objs, table->size * sizeof(trav_obj_t));
|
||||
} /* end if */
|
||||
if(table) {
|
||||
if(table->nobjs == table->size) {
|
||||
table->size = MAX(1, table->size * 2);
|
||||
table->objs = (trav_obj_t *)HDrealloc(table->objs, table->size * sizeof(trav_obj_t));
|
||||
} /* end if */
|
||||
|
||||
new_obj = table->nobjs++;
|
||||
table->objs[new_obj].objno = 0;
|
||||
table->objs[new_obj].flags[0] = flags[0];
|
||||
table->objs[new_obj].flags[1] = flags[1];
|
||||
table->objs[new_obj].is_same_trgobj = 0;
|
||||
table->objs[new_obj].name = (char *)HDstrdup(name);
|
||||
table->objs[new_obj].type = type;
|
||||
table->objs[new_obj].nlinks = 0;
|
||||
table->objs[new_obj].sizelinks = 0;
|
||||
table->objs[new_obj].links = NULL;
|
||||
new_obj = table->nobjs++;
|
||||
table->objs[new_obj].objno = 0;
|
||||
table->objs[new_obj].flags[0] = flags[0];
|
||||
table->objs[new_obj].flags[1] = flags[1];
|
||||
table->objs[new_obj].is_same_trgobj = 0;
|
||||
table->objs[new_obj].name = (char *)HDstrdup(name);
|
||||
table->objs[new_obj].type = type;
|
||||
table->objs[new_obj].nlinks = 0;
|
||||
table->objs[new_obj].sizelinks = 0;
|
||||
table->objs[new_obj].links = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: trav_table_init
|
||||
*
|
||||
* Purpose: Initialize the table
|
||||
*
|
||||
* Return: void
|
||||
*
|
||||
* Programmer: Pedro Vicente, pvn@ncsa.uiuc.edu
|
||||
*
|
||||
* Date: November 4, 2002
|
||||
* Purpose: Initialize the table
|
||||
*
|
||||
* Return: void
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
void trav_table_init(trav_table_t **tbl)
|
||||
{
|
||||
trav_table_t* table = (trav_table_t*) HDmalloc(sizeof(trav_table_t));
|
||||
|
||||
table->size = 0;
|
||||
table->nobjs = 0;
|
||||
table->objs = NULL;
|
||||
|
||||
if(table) {
|
||||
table->size = 0;
|
||||
table->nobjs = 0;
|
||||
table->objs = NULL;
|
||||
}
|
||||
*tbl = table;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: trav_table_free
|
||||
*
|
||||
* Purpose: free table memory
|
||||
*
|
||||
* Return: void
|
||||
*
|
||||
* Programmer: Pedro Vicente, pvn@ncsa.uiuc.edu
|
||||
*
|
||||
* Date: November 4, 2002
|
||||
* Purpose: free table memory
|
||||
*
|
||||
* Return: void
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
void trav_table_free( trav_table_t *table )
|
||||
void trav_table_free(trav_table_t *table)
|
||||
{
|
||||
if(table->objs) {
|
||||
unsigned int i;
|
||||
if(table) {
|
||||
if(table->objs) {
|
||||
unsigned int i;
|
||||
|
||||
for(i = 0; i < table->nobjs; i++) {
|
||||
HDfree(table->objs[i].name );
|
||||
if(table->objs[i].nlinks) {
|
||||
unsigned int j;
|
||||
for(i = 0; i < table->nobjs; i++) {
|
||||
HDfree(table->objs[i].name );
|
||||
if(table->objs[i].nlinks) {
|
||||
unsigned int j;
|
||||
|
||||
for(j = 0; j < table->objs[i].nlinks; j++)
|
||||
HDfree(table->objs[i].links[j].new_name);
|
||||
for(j = 0; j < table->objs[i].nlinks; j++)
|
||||
HDfree(table->objs[i].links[j].new_name);
|
||||
|
||||
HDfree(table->objs[i].links);
|
||||
} /* end if */
|
||||
} /* end for */
|
||||
HDfree(table->objs);
|
||||
} /* end if */
|
||||
HDfree(table);
|
||||
HDfree(table->objs[i].links);
|
||||
} /* end if */
|
||||
} /* end for */
|
||||
HDfree(table->objs);
|
||||
} /* end if */
|
||||
HDfree(table);
|
||||
}
|
||||
}
|
||||
|
||||
static herr_t
|
||||
trav_attr(hid_t
|
||||
#ifndef H5TRAV_PRINT_SPACE
|
||||
H5_ATTR_UNUSED
|
||||
H5_ATTR_UNUSED
|
||||
#endif /* H5TRAV_PRINT_SPACE */
|
||||
obj, const char *attr_name, const H5A_info_t H5_ATTR_UNUSED *ainfo, void *_op_data)
|
||||
obj, const char *attr_name, const H5A_info_t H5_ATTR_UNUSED *ainfo, void *_op_data)
|
||||
{
|
||||
trav_path_op_data_t *op_data = (trav_path_op_data_t *)_op_data;
|
||||
const char *buf = op_data->path;
|
||||
@ -938,7 +854,7 @@ obj, const char *attr_name, const H5A_info_t H5_ATTR_UNUSED *ainfo, void *_op_da
|
||||
case H5S_SIMPLE:
|
||||
/* simple dataspace */
|
||||
printf(" {");
|
||||
for (i=0; i<ndims; i++) {
|
||||
for (i = 0; i < ndims; i++) {
|
||||
printf("%s" HSIZE_T_FORMAT, i?", ":"", size[i]);
|
||||
}
|
||||
printf("}\n");
|
||||
@ -968,19 +884,15 @@ obj, const char *attr_name, const H5A_info_t H5_ATTR_UNUSED *ainfo, void *_op_da
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: trav_print_visit_obj
|
||||
*
|
||||
* Purpose: Callback for visiting object, when printing info
|
||||
*
|
||||
* Return: 0 on success, -1 on failure
|
||||
*
|
||||
* Programmer: Quincey Koziol, koziol@hdfgroup.org
|
||||
*
|
||||
* Date: September 6, 2007
|
||||
* Purpose: Callback for visiting object, when printing info
|
||||
*
|
||||
* Return: 0 on success,
|
||||
* -1 on failure
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
static int
|
||||
trav_print_visit_obj(const char *path, const H5O_info_t *oinfo,
|
||||
const char *already_visited, void *udata)
|
||||
const char *already_visited, void *udata)
|
||||
{
|
||||
trav_print_udata_t *print_udata = (trav_print_udata_t *)udata;
|
||||
/* Print the name of the object */
|
||||
@ -1029,14 +941,10 @@ trav_print_visit_obj(const char *path, const H5O_info_t *oinfo,
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: trav_print_visit_lnk
|
||||
*
|
||||
* Purpose: Callback for visiting link, when printing info
|
||||
*
|
||||
* Return: 0 on success, -1 on failure
|
||||
*
|
||||
* Programmer: Quincey Koziol, koziol@hdfgroup.org
|
||||
*
|
||||
* Date: September 6, 2007
|
||||
* Purpose: Callback for visiting link, when printing info
|
||||
*
|
||||
* Return: 0 on success,
|
||||
* -1 on failure
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
static int
|
||||
@ -1062,7 +970,7 @@ trav_print_visit_lnk(const char *path, const H5L_info_t *linfo, void *udata)
|
||||
|
||||
case H5L_TYPE_EXTERNAL:
|
||||
if(linfo->u.val_size > 0) {
|
||||
char *targbuf;
|
||||
char *targbuf = NULL;
|
||||
const char *filename = NULL;
|
||||
const char *objname = NULL;
|
||||
|
||||
@ -1097,22 +1005,18 @@ trav_print_visit_lnk(const char *path, const H5L_info_t *linfo, void *udata)
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: h5trav_print
|
||||
*
|
||||
* Purpose: Print information about the objects & links in the file
|
||||
*
|
||||
* Return: 0, -1 on error
|
||||
*
|
||||
* Programmer: Quincey Koziol, koziol@hdfgroup.org
|
||||
*
|
||||
* Date: September 6, 2007
|
||||
* Purpose: Print information about the objects & links in the file
|
||||
*
|
||||
* Return: 0 on success,
|
||||
* -1 on failure
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
int
|
||||
h5trav_print(hid_t fid)
|
||||
{
|
||||
trav_print_udata_t print_udata; /* User data for traversal */
|
||||
trav_visitor_t print_visitor; /* Visitor structure for printing objects */
|
||||
int ret_value = SUCCEED;
|
||||
|
||||
/* Init user data for printing */
|
||||
print_udata.fid = fid;
|
||||
@ -1124,9 +1028,10 @@ h5trav_print(hid_t fid)
|
||||
|
||||
/* Traverse all objects in the file, visiting each object & link */
|
||||
if(traverse(fid, "/", TRUE, TRUE, &print_visitor) < 0)
|
||||
return -1;
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "traverse failed");
|
||||
|
||||
return 0;
|
||||
done:
|
||||
return ret_value;
|
||||
}
|
||||
|
||||
|
||||
@ -1135,21 +1040,17 @@ h5trav_print(hid_t fid)
|
||||
*
|
||||
* Purpose: Generic traversal routine for visiting objects and links
|
||||
*
|
||||
* Return: 0, -1 on error
|
||||
*
|
||||
* Programmer: Quincey Koziol, koziol@hdfgroup.org
|
||||
*
|
||||
* Date: November 6, 2007
|
||||
*
|
||||
* Return: 0 on success,
|
||||
* -1 on failure
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
int
|
||||
h5trav_visit(hid_t fid, const char *grp_name, hbool_t visit_start,
|
||||
hbool_t recurse, h5trav_obj_func_t visit_obj, h5trav_lnk_func_t visit_lnk,
|
||||
void *udata)
|
||||
{
|
||||
trav_visitor_t visitor; /* Visitor structure for objects */
|
||||
int ret_value = SUCCEED;
|
||||
|
||||
/* Init visitor structure */
|
||||
visitor.visit_obj = visit_obj;
|
||||
@ -1158,9 +1059,10 @@ h5trav_visit(hid_t fid, const char *grp_name, hbool_t visit_start,
|
||||
|
||||
/* Traverse all objects in the file, visiting each object & link */
|
||||
if(traverse(fid, grp_name, visit_start, recurse, &visitor) < 0)
|
||||
return -1;
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "traverse failed");
|
||||
|
||||
return 0;
|
||||
done:
|
||||
return ret_value;
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
@ -1168,19 +1070,15 @@ h5trav_visit(hid_t fid, const char *grp_name, hbool_t visit_start,
|
||||
*
|
||||
* Purpose: Add an symbolic link to visited data structure
|
||||
*
|
||||
* Return: 0 on success, -1 on failure
|
||||
*
|
||||
* Programmer: Neil Fortner, nfortne2@hdfgroup.org
|
||||
* Adapted from trav_addr_add in h5trav.c by Quincey Koziol
|
||||
*
|
||||
* Date: September 5, 2008
|
||||
*
|
||||
* Return: 0 on success,
|
||||
* -1 on failure
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
herr_t
|
||||
symlink_visit_add(symlink_trav_t *visited, H5L_type_t type, const char *file, const char *path)
|
||||
{
|
||||
size_t idx; /* Index of address to use */
|
||||
herr_t ret_value = SUCCEED;
|
||||
size_t idx; /* Index of address to use */
|
||||
|
||||
/* Allocate space if necessary */
|
||||
if(visited->nused == visited->nalloc) {
|
||||
@ -1188,7 +1086,7 @@ symlink_visit_add(symlink_trav_t *visited, H5L_type_t type, const char *file, co
|
||||
|
||||
visited->nalloc = MAX(1, visited->nalloc * 2);
|
||||
if(NULL == (tmp_ptr = HDrealloc(visited->objs, visited->nalloc * sizeof(symlink_trav_path_t))))
|
||||
return -1;
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "visited data structure realloc failed");
|
||||
visited->objs = (symlink_trav_path_t *)tmp_ptr;
|
||||
} /* end if */
|
||||
|
||||
@ -1202,7 +1100,7 @@ symlink_visit_add(symlink_trav_t *visited, H5L_type_t type, const char *file, co
|
||||
if(type == H5L_TYPE_EXTERNAL) {
|
||||
if(NULL == (visited->objs[idx].file = HDstrdup(file))) {
|
||||
visited->nused--;
|
||||
return -1;
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "visited data structure name allocation failed");
|
||||
} /* end if */
|
||||
} /* end if */
|
||||
|
||||
@ -1210,25 +1108,20 @@ symlink_visit_add(symlink_trav_t *visited, H5L_type_t type, const char *file, co
|
||||
visited->nused--;
|
||||
if(visited->objs[idx].file)
|
||||
HDfree (visited->objs[idx].file);
|
||||
return -1;
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "visited data structure path allocation failed");
|
||||
} /* end if */
|
||||
|
||||
return 0;
|
||||
done:
|
||||
return ret_value;
|
||||
} /* end symlink_visit_add() */
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: symlink_is_visited
|
||||
*
|
||||
* Purpose: Check if an symbolic link has already been visited
|
||||
*
|
||||
* Return: TRUE/FALSE
|
||||
*
|
||||
* Programmer: Neil Fortner, nfortne2@hdfgroup.org
|
||||
* Adapted from trav_addr_visited in h5trav.c by Quincey Koziol
|
||||
*
|
||||
* Date: September 5, 2008
|
||||
* Purpose: Check if an symbolic link has already been visited
|
||||
*
|
||||
* Return: TRUE/FALSE
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
H5_ATTR_PURE hbool_t
|
||||
|
@ -32,7 +32,7 @@ struct diff_mpi_args
|
||||
{
|
||||
char name1[256];
|
||||
char name2[256];
|
||||
diff_opt_t options;
|
||||
diff_opt_t opts;
|
||||
diff_args_t argdata; /* rest args */
|
||||
};
|
||||
|
||||
|
@ -52,7 +52,7 @@ static struct long_options l_opts[] = {
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
static void check_options(diff_opt_t* options)
|
||||
static void check_options(diff_opt_t* opts)
|
||||
{
|
||||
/*--------------------------------------------------------------
|
||||
* check for mutually exclusive options
|
||||
@ -61,7 +61,7 @@ static void check_options(diff_opt_t* options)
|
||||
/* check between -d , -p, --use-system-epsilon.
|
||||
* These options are mutually exclusive.
|
||||
*/
|
||||
if ((options->d + options->p + options->use_system_epsilon) > 1) {
|
||||
if ((opts->d + opts->p + opts->use_system_epsilon) > 1) {
|
||||
printf("%s error: -d, -p and --use-system-epsilon options are mutually-exclusive;\n", PROGRAMNAME);
|
||||
printf("use no more than one.\n");
|
||||
printf("Try '-h' or '--help' option for more information or see the %s entry in the 'HDF5 Reference Manual'.\n", PROGRAMNAME);
|
||||
@ -84,27 +84,27 @@ void parse_command_line(int argc,
|
||||
const char** fname2,
|
||||
const char** objname1,
|
||||
const char** objname2,
|
||||
diff_opt_t* options)
|
||||
diff_opt_t* opts)
|
||||
{
|
||||
int i;
|
||||
int opt;
|
||||
struct exclude_path_list *exclude_head, *exclude_prev, *exclude_node;
|
||||
|
||||
/* process the command-line */
|
||||
memset(options, 0, sizeof (diff_opt_t));
|
||||
memset(opts, 0, sizeof (diff_opt_t));
|
||||
|
||||
/* assume equal contents initially */
|
||||
options->contents = 1;
|
||||
opts->contents = 1;
|
||||
|
||||
/* NaNs are handled by default */
|
||||
options->do_nans = 1;
|
||||
opts->do_nans = 1;
|
||||
|
||||
/* not Listing objects that are not comparable */
|
||||
options->m_list_not_cmp = 0;
|
||||
opts->m_list_not_cmp = 0;
|
||||
|
||||
/* initially no not-comparable. */
|
||||
/**this is bad in mixing option with results**/
|
||||
options->not_cmp=0;
|
||||
opts->not_cmp=0;
|
||||
|
||||
/* init for exclude-path option */
|
||||
exclude_head = NULL;
|
||||
@ -125,7 +125,7 @@ void parse_command_line(int argc,
|
||||
h5diff_exit(EXIT_SUCCESS);
|
||||
|
||||
case 'v':
|
||||
options->m_verbose = 1;
|
||||
opts->m_verbose = 1;
|
||||
/* This for loop is for handling style like
|
||||
* -v, -v1, --verbose, --verbose=1.
|
||||
*/
|
||||
@ -135,11 +135,11 @@ void parse_command_line(int argc,
|
||||
*/
|
||||
if (!strcmp (argv[i], "-v")) { /* no arg */
|
||||
opt_ind--;
|
||||
options->m_verbose_level = 0;
|
||||
opts->m_verbose_level = 0;
|
||||
break;
|
||||
}
|
||||
else if (!strncmp (argv[i], "-v", (size_t)2)) {
|
||||
options->m_verbose_level = atoi(&argv[i][2]);
|
||||
opts->m_verbose_level = atoi(&argv[i][2]);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -147,11 +147,11 @@ void parse_command_line(int argc,
|
||||
* long opt
|
||||
*/
|
||||
if (!strcmp (argv[i], "--verbose")) { /* no arg */
|
||||
options->m_verbose_level = 0;
|
||||
opts->m_verbose_level = 0;
|
||||
break;
|
||||
}
|
||||
else if ( !strncmp (argv[i], "--verbose", (size_t)9) && argv[i][9]=='=') {
|
||||
options->m_verbose_level = atoi(&argv[i][10]);
|
||||
opts->m_verbose_level = atoi(&argv[i][10]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -159,19 +159,19 @@ void parse_command_line(int argc,
|
||||
|
||||
case 'q':
|
||||
/* use quiet mode; supress the message "0 differences found" */
|
||||
options->m_quiet = 1;
|
||||
opts->m_quiet = 1;
|
||||
break;
|
||||
|
||||
case 'r':
|
||||
options->m_report = 1;
|
||||
opts->m_report = 1;
|
||||
break;
|
||||
|
||||
case 'l':
|
||||
options->follow_links = TRUE;
|
||||
opts->follow_links = TRUE;
|
||||
break;
|
||||
|
||||
case 'x':
|
||||
options->no_dangle_links = 1;
|
||||
opts->no_dangle_links = 1;
|
||||
break;
|
||||
|
||||
case 'S':
|
||||
@ -179,7 +179,7 @@ void parse_command_line(int argc,
|
||||
break;
|
||||
|
||||
case 'E':
|
||||
options->exclude_path = 1;
|
||||
opts->exclude_path = 1;
|
||||
|
||||
/* create linked list of excluding objects */
|
||||
if( (exclude_node = (struct exclude_path_list*) HDmalloc(sizeof(struct exclude_path_list))) == NULL) {
|
||||
@ -206,64 +206,64 @@ void parse_command_line(int argc,
|
||||
break;
|
||||
|
||||
case 'd':
|
||||
options->d=1;
|
||||
opts->d=1;
|
||||
|
||||
if (check_d_input(opt_arg) == - 1) {
|
||||
printf("<-d %s> is not a valid option\n", opt_arg);
|
||||
usage();
|
||||
h5diff_exit(EXIT_FAILURE);
|
||||
}
|
||||
options->delta = atof(opt_arg);
|
||||
opts->delta = atof(opt_arg);
|
||||
|
||||
/* -d 0 is the same as default */
|
||||
if (H5_DBL_ABS_EQUAL(options->delta, (double)0.0F))
|
||||
options->d=0;
|
||||
if (H5_DBL_ABS_EQUAL(opts->delta, (double)0.0F))
|
||||
opts->d=0;
|
||||
break;
|
||||
|
||||
case 'p':
|
||||
options->p=1;
|
||||
opts->p=1;
|
||||
if (check_p_input(opt_arg) == -1) {
|
||||
printf("<-p %s> is not a valid option\n", opt_arg);
|
||||
usage();
|
||||
h5diff_exit(EXIT_FAILURE);
|
||||
}
|
||||
options->percent = atof(opt_arg);
|
||||
opts->percent = atof(opt_arg);
|
||||
|
||||
/* -p 0 is the same as default */
|
||||
if (H5_DBL_ABS_EQUAL(options->percent, (double)0.0F))
|
||||
options->p = 0;
|
||||
if (H5_DBL_ABS_EQUAL(opts->percent, (double)0.0F))
|
||||
opts->p = 0;
|
||||
break;
|
||||
|
||||
case 'n':
|
||||
options->n=1;
|
||||
opts->n=1;
|
||||
if ( check_n_input(opt_arg) == -1) {
|
||||
printf("<-n %s> is not a valid option\n", opt_arg);
|
||||
usage();
|
||||
h5diff_exit(EXIT_FAILURE);
|
||||
}
|
||||
options->count = HDstrtoull(opt_arg, NULL, 0);
|
||||
opts->count = HDstrtoull(opt_arg, NULL, 0);
|
||||
break;
|
||||
|
||||
case 'N':
|
||||
options->do_nans = 0;
|
||||
opts->do_nans = 0;
|
||||
break;
|
||||
|
||||
case 'c':
|
||||
options->m_list_not_cmp = 1;
|
||||
opts->m_list_not_cmp = 1;
|
||||
break;
|
||||
|
||||
case 'e':
|
||||
options->use_system_epsilon = 1;
|
||||
opts->use_system_epsilon = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* check options */
|
||||
check_options(options);
|
||||
check_options(opts);
|
||||
|
||||
/* if exclude-path option is used, keep the exclude path list */
|
||||
if (options->exclude_path)
|
||||
options->exclude = exclude_head;
|
||||
if (opts->exclude_path)
|
||||
opts->exclude = exclude_head;
|
||||
|
||||
/* check for file names to be processed */
|
||||
if (argc <= opt_ind || argv[ opt_ind + 1 ] == NULL) {
|
||||
@ -300,23 +300,23 @@ void parse_command_line(int argc,
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
void print_info(diff_opt_t* options)
|
||||
void print_info(diff_opt_t* opts)
|
||||
{
|
||||
if (options->m_quiet || options->err_stat)
|
||||
if (opts->m_quiet || opts->err_stat)
|
||||
return;
|
||||
|
||||
if (options->cmn_objs == 0) {
|
||||
if (opts->cmn_objs == 0) {
|
||||
printf("No common objects found. Files are not comparable.\n");
|
||||
if (!options->m_verbose)
|
||||
if (!opts->m_verbose)
|
||||
printf("Use -v for a list of objects.\n");
|
||||
}
|
||||
|
||||
if (options->not_cmp == 1) {
|
||||
if (options->m_list_not_cmp == 0) {
|
||||
if (opts->not_cmp == 1) {
|
||||
if (opts->m_list_not_cmp == 0) {
|
||||
printf("--------------------------------\n");
|
||||
printf("Some objects are not comparable\n");
|
||||
printf("--------------------------------\n");
|
||||
if (options->m_verbose)
|
||||
if (opts->m_verbose)
|
||||
printf("Use -c for a list of objects without details of differences.\n");
|
||||
else
|
||||
printf("Use -c for a list of objects.\n");
|
||||
|
@ -23,9 +23,9 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
void usage(void);
|
||||
void parse_command_line(int argc, const char* argv[], const char** fname1, const char** fname2, const char** objname1, const char** objname2, diff_opt_t* options);
|
||||
void parse_command_line(int argc, const char* argv[], const char** fname1, const char** fname2, const char** objname1, const char** objname2, diff_opt_t* opts);
|
||||
void h5diff_exit(int status);
|
||||
void print_info(diff_opt_t* options);
|
||||
void print_info(diff_opt_t* opts);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
@ -78,7 +78,7 @@ int main(int argc, const char *argv[])
|
||||
const char *objname1 = NULL;
|
||||
const char *objname2 = NULL;
|
||||
hsize_t nfound=0;
|
||||
diff_opt_t options;
|
||||
diff_opt_t opts;
|
||||
|
||||
h5tools_setprogname(PROGRAMNAME);
|
||||
h5tools_setstatus(EXIT_SUCCESS);
|
||||
@ -98,7 +98,7 @@ int main(int argc, const char *argv[])
|
||||
* process the command-line
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
parse_command_line(argc, argv, &fname1, &fname2, &objname1, &objname2, &options);
|
||||
parse_command_line(argc, argv, &fname1, &fname2, &objname1, &objname2, &opts);
|
||||
|
||||
if (enable_error_stack) {
|
||||
H5Eset_auto2(H5E_DEFAULT, func, edata);
|
||||
@ -110,9 +110,9 @@ int main(int argc, const char *argv[])
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
nfound = h5diff(fname1, fname2, objname1, objname2, &options);
|
||||
nfound = h5diff(fname1, fname2, objname1, objname2, &opts);
|
||||
|
||||
print_info(&options);
|
||||
print_info(&opts);
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* exit code
|
||||
@ -123,11 +123,11 @@ int main(int argc, const char *argv[])
|
||||
ret = (nfound == 0 ? 0 : 1);
|
||||
|
||||
/* if graph difference return 1 for differences */
|
||||
if (options.contents == 0)
|
||||
if (opts.contents == 0)
|
||||
ret = 1;
|
||||
|
||||
/* and return 2 for error */
|
||||
if (options.err_stat)
|
||||
if (opts.err_stat)
|
||||
ret = 2;
|
||||
|
||||
h5diff_exit(ret);
|
||||
|
@ -50,7 +50,7 @@ int main(int argc, const char *argv[])
|
||||
const char *fname2 = NULL;
|
||||
const char *objname1 = NULL;
|
||||
const char *objname2 = NULL;
|
||||
diff_opt_t options;
|
||||
diff_opt_t opts;
|
||||
|
||||
h5tools_setprogname(PROGRAMNAME);
|
||||
h5tools_setstatus(EXIT_SUCCESS);
|
||||
@ -72,11 +72,11 @@ int main(int argc, const char *argv[])
|
||||
|
||||
g_Parallel = 0;
|
||||
|
||||
parse_command_line(argc, argv, &fname1, &fname2, &objname1, &objname2, &options);
|
||||
parse_command_line(argc, argv, &fname1, &fname2, &objname1, &objname2, &opts);
|
||||
|
||||
h5diff(fname1, fname2, objname1, objname2, &options);
|
||||
h5diff(fname1, fname2, objname1, objname2, &opts);
|
||||
|
||||
print_info(&options);
|
||||
print_info(&opts);
|
||||
}
|
||||
/* Parallel h5diff */
|
||||
else {
|
||||
@ -84,13 +84,13 @@ int main(int argc, const char *argv[])
|
||||
/* Have the manager process the command-line */
|
||||
if(nID == 0)
|
||||
{
|
||||
parse_command_line(argc, argv, &fname1, &fname2, &objname1, &objname2, &options);
|
||||
parse_command_line(argc, argv, &fname1, &fname2, &objname1, &objname2, &opts);
|
||||
|
||||
h5diff(fname1, fname2, objname1, objname2, &options);
|
||||
h5diff(fname1, fname2, objname1, objname2, &opts);
|
||||
|
||||
MPI_Barrier(MPI_COMM_WORLD);
|
||||
|
||||
print_info(&options);
|
||||
print_info(&opts);
|
||||
print_manager_output();
|
||||
}
|
||||
/* All other tasks become workers and wait for assignments. */
|
||||
@ -178,8 +178,8 @@ ph5diff_worker(int nID)
|
||||
MPI_Recv(&args, sizeof(args), MPI_BYTE, 0, MPI_TAG_ARGS, MPI_COMM_WORLD, &Status);
|
||||
|
||||
/* Do the diff */
|
||||
diffs.nfound = diff(file1_id, args.name1, file2_id, args.name2, &(args.options), &(args.argdata));
|
||||
diffs.not_cmp = args.options.not_cmp;
|
||||
diffs.nfound = diff(file1_id, args.name1, file2_id, args.name2, &(args.opts), &(args.argdata));
|
||||
diffs.not_cmp = args.opts.not_cmp;
|
||||
|
||||
/* If print buffer has something in it, request print token.*/
|
||||
if(outBuffOffset>0)
|
||||
|
@ -221,13 +221,12 @@ hid_t copy_named_datatype(hid_t type_in, hid_t fidout,
|
||||
hid_t ret_value = -1; /* The identifier of the named dtype in the out file */
|
||||
|
||||
if (H5Oget_info(type_in, &oinfo) < 0)
|
||||
goto done;
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "H5Oget_info failed");
|
||||
|
||||
if (*named_dt_head_p) {
|
||||
/* Stack already exists, search for the datatype */
|
||||
while (dt && dt->addr_in != oinfo.addr)
|
||||
dt = dt->next;
|
||||
|
||||
dt_ret = dt;
|
||||
}
|
||||
else {
|
||||
@ -238,7 +237,7 @@ hid_t copy_named_datatype(hid_t type_in, hid_t fidout,
|
||||
if (travt->objs[i].type == H5TRAV_TYPE_NAMED_DATATYPE) {
|
||||
/* Push onto the stack */
|
||||
if (NULL == (dt = (named_dt_t *)HDmalloc(sizeof(named_dt_t))))
|
||||
goto done;
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "buffer allocation failed failed");
|
||||
dt->next = *named_dt_head_p;
|
||||
*named_dt_head_p = dt;
|
||||
|
||||
@ -259,7 +258,7 @@ hid_t copy_named_datatype(hid_t type_in, hid_t fidout,
|
||||
if (!dt_ret) {
|
||||
/* Push the new datatype onto the stack */
|
||||
if (NULL == (dt_ret = (named_dt_t *)HDmalloc(sizeof(named_dt_t))))
|
||||
goto done;
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "buffer allocation failed failed");
|
||||
dt_ret->next = *named_dt_head_p;
|
||||
*named_dt_head_p = dt_ret;
|
||||
|
||||
@ -276,9 +275,9 @@ hid_t copy_named_datatype(hid_t type_in, hid_t fidout,
|
||||
else
|
||||
dt_ret->id_out = H5Tcopy(type_in);
|
||||
if (dt_ret->id_out < 0)
|
||||
goto done;
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "H5Tget_native_type-H5Tcopy failed");
|
||||
if (H5Tcommit_anon(fidout, dt_ret->id_out, H5P_DEFAULT, H5P_DEFAULT) < 0)
|
||||
goto done;
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "H5Tcommit_anon failed");
|
||||
} /* end if */
|
||||
|
||||
/* Set return value */
|
||||
@ -286,7 +285,7 @@ hid_t copy_named_datatype(hid_t type_in, hid_t fidout,
|
||||
|
||||
/* Increment the ref count on id_out, because the calling function will try to close it */
|
||||
if(H5Iinc_ref(ret_value) < 0)
|
||||
ret_value = -1;
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "H5Iinc_ref failed");
|
||||
|
||||
done:
|
||||
return ret_value;
|
||||
@ -305,7 +304,7 @@ int named_datatype_free(named_dt_t **named_dt_head_p, int ignore_err) {
|
||||
while (dt) {
|
||||
/* Pop the datatype off the stack and free it */
|
||||
if (H5Tclose(dt->id_out) < 0 && !ignore_err)
|
||||
goto done;
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "H5Tclose failed");
|
||||
dt = dt->next;
|
||||
HDfree(*named_dt_head_p);
|
||||
*named_dt_head_p = dt;
|
||||
@ -332,7 +331,7 @@ int
|
||||
copy_attr(hid_t loc_in, hid_t loc_out, named_dt_t **named_dt_head_p,
|
||||
trav_table_t *travt, pack_opt_t *options)
|
||||
{
|
||||
int ret_value = 0; /*no need to LEAVE() on ERROR: HERR_INIT(int, SUCCEED) */
|
||||
int ret_value = 0;
|
||||
hid_t attr_id = -1; /* attr ID */
|
||||
hid_t attr_out = -1; /* attr ID */
|
||||
hid_t space_id = -1; /* space ID */
|
||||
@ -426,7 +425,8 @@ copy_attr(hid_t loc_in, hid_t loc_out, named_dt_t **named_dt_head_p,
|
||||
|
||||
base_type = H5Tget_super(ftype_id);
|
||||
is_ref = (is_ref || (H5Tget_class(base_type) == H5T_REFERENCE));
|
||||
H5Tclose(base_type);
|
||||
if (H5Tclose(base_type) < 0)
|
||||
H5TOOLS_INFO(H5E_tools_min_id_g, "H5Tclose base_type failed");
|
||||
}
|
||||
|
||||
if (type_class == H5T_COMPOUND) {
|
||||
@ -435,7 +435,8 @@ copy_attr(hid_t loc_in, hid_t loc_out, named_dt_t **named_dt_head_p,
|
||||
for (j = 0; j < nmembers; j++) {
|
||||
hid_t mtid = H5Tget_member_type(wtype_id, (unsigned)j);
|
||||
H5T_class_t mtclass = H5Tget_class(mtid);
|
||||
H5Tclose(mtid);
|
||||
if (H5Tclose(mtid) < 0)
|
||||
H5TOOLS_INFO(H5E_tools_min_id_g, "H5Tclose mtid failed");
|
||||
|
||||
if (mtclass == H5T_REFERENCE) {
|
||||
is_ref = 1;
|
||||
@ -481,7 +482,24 @@ copy_attr(hid_t loc_in, hid_t loc_out, named_dt_t **named_dt_head_p,
|
||||
|
||||
if (options->verbose)
|
||||
printf(FORMAT_OBJ_ATTR, "attr", name);
|
||||
} /* u */
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* close
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
if (H5Sclose(space_id) < 0)
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "H5Sclose failed");
|
||||
space_id = -1;
|
||||
if (H5Tclose(wtype_id) < 0)
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "H5Tclose failed");
|
||||
wtype_id = -1;
|
||||
if (H5Tclose(ftype_id) < 0)
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "H5Tclose failed");
|
||||
ftype_id = -1;
|
||||
if (H5Aclose(attr_id) < 0)
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "H5Aclose failed");
|
||||
attr_id = -1;
|
||||
} /* for u */
|
||||
|
||||
done:
|
||||
H5E_BEGIN_TRY {
|
||||
@ -495,11 +513,11 @@ done:
|
||||
HDfree(buf);
|
||||
} /* end if */
|
||||
|
||||
H5Tclose(ftype_id);
|
||||
H5Tclose(wtype_id);
|
||||
H5Sclose(space_id);
|
||||
H5Aclose(attr_id);
|
||||
H5Aclose(attr_out);
|
||||
H5Sclose(space_id);
|
||||
H5Tclose(wtype_id);
|
||||
H5Tclose(ftype_id);
|
||||
H5Aclose(attr_id);
|
||||
} H5E_END_TRY;
|
||||
|
||||
return ret_value;
|
||||
@ -792,9 +810,9 @@ static int check_objects(const char* fname, pack_opt_t *options) {
|
||||
|
||||
done:
|
||||
H5E_BEGIN_TRY {
|
||||
H5Fclose(fid);
|
||||
H5Sclose(sid);
|
||||
H5Dclose(did);
|
||||
H5Fclose(fid);
|
||||
} H5E_END_TRY;
|
||||
if (travt)
|
||||
trav_table_free(travt);
|
||||
|
@ -78,23 +78,21 @@ static herr_t walk_error_callback(H5_ATTR_UNUSED unsigned n, const H5E_error2_t
|
||||
*
|
||||
* Return: 0, ok,
|
||||
* -1 no
|
||||
*
|
||||
* Programmer: Pedro Vicente, pvn@ncsa.uiuc.edu
|
||||
*
|
||||
* Date: October, 23, 2003
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
int copy_objects(const char* fnamein, const char* fnameout, pack_opt_t *options)
|
||||
{
|
||||
int ret_value = 0; /* no need to LEAVE() on ERROR: HERR_INIT(int, SUCCEED) */
|
||||
hid_t fidin;
|
||||
int ret_value = 0;
|
||||
hid_t fidin = -1;
|
||||
hid_t fidout = -1;
|
||||
trav_table_t *travt = NULL;
|
||||
hsize_t ub_size = 0; /* size of user block */
|
||||
hid_t fcpl_in = -1; /* file creation property list ID for input file */
|
||||
hid_t grp_in = -1; /* group ID */
|
||||
hid_t gcpl_in = -1; /* group creation property list */
|
||||
hid_t fcpl = H5P_DEFAULT; /* file creation property list ID */
|
||||
hid_t fapl = H5P_DEFAULT; /* file access property list ID */
|
||||
trav_table_t *travt = NULL;
|
||||
hsize_t ub_size = 0; /* size of user block */
|
||||
H5F_fspace_strategy_t set_strategy; /* Strategy to be set in outupt file */
|
||||
hbool_t set_persist; /* Persist free-space status to be set in output file */
|
||||
hsize_t set_threshold; /* Free-space section threshold to be set in output file */
|
||||
@ -114,10 +112,6 @@ int copy_objects(const char* fnamein, const char* fnameout, pack_opt_t *options)
|
||||
|
||||
/* get user block size and file space strategy/persist/threshold */
|
||||
{
|
||||
hid_t fcpl_in; /* file creation property list ID for input file */
|
||||
hid_t grp_in = -1; /* group ID */
|
||||
hid_t gcpl_in = -1; /* group creation property list */
|
||||
|
||||
if ((fcpl_in = H5Fget_create_plist(fidin)) < 0)
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "H5Fget_create_plist failed to retrieve file creation property list");
|
||||
|
||||
@ -343,42 +337,26 @@ print_user_block(fnamein, fidin);
|
||||
/* init table */
|
||||
trav_table_init(&travt);
|
||||
|
||||
/* get the list of objects in the file */
|
||||
if (h5trav_gettable(fidin, travt) < 0)
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "h5trav_gettable failed");
|
||||
if (travt) {
|
||||
/* get the list of objects in the file */
|
||||
if (h5trav_gettable(fidin, travt) < 0)
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "h5trav_gettable failed");
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* do the copy
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
if (do_copy_objects(fidin, fidout, travt, options) < 0)
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "do_copy_objects from <%s> could not copy data to <%s>", fnamein, fnameout);
|
||||
/*-------------------------------------------------------------------------
|
||||
* do the copy
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
if (do_copy_objects(fidin, fidout, travt, options) < 0)
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "do_copy_objects from <%s> could not copy data to <%s>", fnamein, fnameout);
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* do the copy of referenced objects
|
||||
* and create hard links
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
if (do_copy_refobjs(fidin, fidout, travt, options) < 0)
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "do_copy_refobjs from <%s> could not copy data to <%s>", fnamein, fnameout);
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* close
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
if (fapl > 0)
|
||||
H5Pclose(fapl);
|
||||
|
||||
if (fcpl > 0)
|
||||
H5Pclose(fcpl);
|
||||
|
||||
H5Fclose(fidin);
|
||||
H5Fclose(fidout);
|
||||
|
||||
/* free table */
|
||||
trav_table_free(travt);
|
||||
travt = NULL;
|
||||
/*-------------------------------------------------------------------------
|
||||
* do the copy of referenced objects
|
||||
* and create hard links
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
if (do_copy_refobjs(fidin, fidout, travt, options) < 0)
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "do_copy_refobjs from <%s> could not copy data to <%s>", fnamein, fnameout);
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* write only the input file user block if there is no user block file input
|
||||
@ -389,17 +367,15 @@ print_user_block(fnamein, fidin);
|
||||
if (copy_user_block(fnamein, fnameout, ub_size) < 0)
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "Could not copy user block. Exiting...");
|
||||
|
||||
return 0;
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* out
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
done:
|
||||
H5E_BEGIN_TRY {
|
||||
H5Pclose(fcpl_in);
|
||||
H5Pclose(gcpl_in);
|
||||
H5Pclose(fapl);
|
||||
H5Pclose(fcpl);
|
||||
H5Gclose(grp_in);
|
||||
H5Fclose(fidin);
|
||||
H5Fclose(fidout);
|
||||
H5Fclose(fidin);
|
||||
H5Fclose(fidout);
|
||||
} H5E_END_TRY;
|
||||
@ -416,7 +392,7 @@ done:
|
||||
* The size of hyperslab is limitted by H5TOOLS_BUFSIZE.
|
||||
* Return the hyperslab dimentions and size in byte.
|
||||
*
|
||||
* Return: 0 - SUCCEED, -1 FAILED
|
||||
* Return: 0 - SUCCEED, -1 FAILED
|
||||
*
|
||||
* Parameters:
|
||||
* dcpl_id : [IN] dataset creation property.
|
||||
@ -426,8 +402,6 @@ done:
|
||||
* dims_hslab[] : [OUT] calculated hyperslab dimentions
|
||||
* * hslab_nbytes_p : [OUT] total byte of the hyperslab
|
||||
*
|
||||
* Programmer: Jonathan Kim
|
||||
* Date: Feburary, 2012
|
||||
* Update:
|
||||
* The hyperslab calucation would be depend on if the dataset is chunked
|
||||
* or not.
|
||||
@ -441,25 +415,23 @@ done:
|
||||
* the boundary would be dataset's dims.
|
||||
*
|
||||
* The calulation starts from the last dimention (h5dump dims output).
|
||||
*
|
||||
* Note:
|
||||
* Added for JIRA HDFFV-7862.
|
||||
*-----------------------------------------*/
|
||||
|
||||
int Get_hyperslab(hid_t dcpl_id, int rank_dset, hsize_t dims_dset[],
|
||||
int
|
||||
Get_hyperslab(hid_t dcpl_id, int rank_dset, hsize_t dims_dset[],
|
||||
size_t size_datum, hsize_t dims_hslab[], hsize_t * hslab_nbytes_p)
|
||||
{
|
||||
int ret_value = 0; /*no need to LEAVE() on ERROR: HERR_INIT(int, SUCCEED) */
|
||||
int ret_value = 0;
|
||||
int k;
|
||||
H5D_layout_t dset_layout;
|
||||
int rank_chunk;
|
||||
hsize_t dims_chunk[H5S_MAX_RANK];
|
||||
hsize_t size_chunk = 1;
|
||||
hsize_t nchunk_fit; /* number of chunks that fits in hyperslab buffer (H5TOOLS_BUFSIZE) */
|
||||
hsize_t ndatum_fit; /* number of dataum that fits in hyperslab buffer (H5TOOLS_BUFSIZE) */
|
||||
hsize_t nchunk_fit; /* number of chunks that fits in hyperslab buffer (H5TOOLS_BUFSIZE) */
|
||||
hsize_t ndatum_fit; /* number of dataum that fits in hyperslab buffer (H5TOOLS_BUFSIZE) */
|
||||
hsize_t chunk_dims_map[H5S_MAX_RANK]; /* mapped chunk dimentions */
|
||||
hsize_t hs_dims_map[H5S_MAX_RANK]; /* mapped hyperslab dimentions */
|
||||
hsize_t hslab_nbytes; /* size of hyperslab in byte */
|
||||
hsize_t hs_dims_map[H5S_MAX_RANK]; /* mapped hyperslab dimentions */
|
||||
hsize_t hslab_nbytes; /* size of hyperslab in byte */
|
||||
|
||||
/* init to set as size of a data element */
|
||||
hslab_nbytes = size_datum;
|
||||
@ -572,24 +544,9 @@ done:
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: do_copy_objects
|
||||
*
|
||||
* Purpose: duplicate all HDF5 objects in the file
|
||||
* Purpose: duplicate all HDF5 objects in the file
|
||||
*
|
||||
* Return: 0, ok, -1 no
|
||||
*
|
||||
* Programmer: Pedro Vicente, pvn@ncsa.uiuc.edu
|
||||
*
|
||||
* Date: October, 23, 2003
|
||||
*
|
||||
* Modifications:
|
||||
*
|
||||
* July 2004: Introduced the extra EC or NN option for SZIP
|
||||
*
|
||||
* December 2004: Added a check for H5Dcreate; if the dataset cannot be created
|
||||
* with the requested filter, use the input one
|
||||
*
|
||||
* October 2006: Read/write using the file type by default.
|
||||
*
|
||||
* October 2006: Read by hyperslabs for big datasets.
|
||||
* Return: 0, ok, -1 no
|
||||
*
|
||||
* A threshold of H5TOOLS_MALLOCSIZE (128 MB) is the limit upon which I/O hyperslab is done
|
||||
* i.e., if the memory needed to read a dataset is greater than this limit,
|
||||
@ -630,31 +587,6 @@ done:
|
||||
* in (2) is that, when using the strip mine size, it assures that the "remaining" part
|
||||
* of the dataset that does not fill an entire strip mine is processed.
|
||||
*
|
||||
* November 2006: Use H5Ocopy in the copy of objects. The logic for using
|
||||
* H5Ocopy or not is if a change of filters or layout is requested by the user
|
||||
* then use read/write else use H5Ocopy.
|
||||
*
|
||||
* May, 1, 2008: Add a printing of the compression ratio of old size / new size
|
||||
*
|
||||
* Feburary 2012: improve Read/Write by hyperslabs for big datasets.
|
||||
* Programmer: Jonathan Kim
|
||||
*
|
||||
* A threshold of H5TOOLS_MALLOCSIZE is the limit upon which I/O hyperslab is done
|
||||
* i.e., if the memory needed to read a dataset is greater than this limit,
|
||||
* then hyperslab I/O is done instead of one operation I/O
|
||||
* For each dataset, the memory needed is calculated according to
|
||||
*
|
||||
* memory needed = number of elements * size of each element
|
||||
*
|
||||
* if the memory needed is lower than H5TOOLS_MALLOCSIZE, then the following operations
|
||||
* are done
|
||||
*
|
||||
* H5Dread( input_dataset )
|
||||
* H5Dwrite( output_dataset )
|
||||
*
|
||||
* with all elements in the datasets selected. If the memory needed is greater than
|
||||
* H5TOOLS_MALLOCSIZE, then the following operations are done instead:
|
||||
*
|
||||
* 1. figure out a hyperslab (dimentions) and size (refer to Get_hyperslab()).
|
||||
* 2. Calculate the hyperslab selections as the selection is moving forward.
|
||||
* Selection would be same as the hyperslab except for the remaining edge portion
|
||||
@ -666,7 +598,7 @@ done:
|
||||
int do_copy_objects(hid_t fidin, hid_t fidout, trav_table_t *travt,
|
||||
pack_opt_t *options) /* repack options */
|
||||
{
|
||||
int ret_value = 0; /*no need to LEAVE() on ERROR: HERR_INIT(int, SUCCEED) */
|
||||
int ret_value = 0;
|
||||
hid_t grp_in = -1; /* group ID */
|
||||
hid_t grp_out = -1; /* group ID */
|
||||
hid_t dset_in = -1; /* read dataset ID */
|
||||
@ -1243,6 +1175,7 @@ int do_copy_objects(hid_t fidin, hid_t fidout, trav_table_t *travt,
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "H5Tclose failed");
|
||||
if (H5Tclose(type_out) < 0)
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "H5Tclose failed");
|
||||
type_out = -1; /* named datatypes stack, named_dt_head, manages allocation */
|
||||
|
||||
break;
|
||||
|
||||
@ -1273,6 +1206,18 @@ int do_copy_objects(hid_t fidin, hid_t fidout, trav_table_t *travt,
|
||||
} /* end if */
|
||||
|
||||
done:
|
||||
|
||||
/* Finalize (link) the stack of named datatypes (if any) first
|
||||
* because of reference counting */
|
||||
if (0 == ret_value && named_dt_head != NULL) {
|
||||
if (named_datatype_free(&named_dt_head, 0) < 0)
|
||||
H5TOOLS_INFO(H5E_tools_min_id_g, "named_datatype_free failed");
|
||||
}
|
||||
else
|
||||
H5E_BEGIN_TRY {
|
||||
named_datatype_free(&named_dt_head, 1);
|
||||
} H5E_END_TRY;
|
||||
|
||||
H5E_BEGIN_TRY
|
||||
{
|
||||
H5Gclose(grp_in);
|
||||
@ -1295,14 +1240,6 @@ done:
|
||||
if (hslab_buf != NULL)
|
||||
HDfree(hslab_buf);
|
||||
|
||||
/* Finalize (link) the stack of named datatypes (if any) */
|
||||
if (0 == ret_value && named_dt_head != NULL)
|
||||
named_datatype_free(&named_dt_head, 0);
|
||||
else
|
||||
H5E_BEGIN_TRY {
|
||||
named_datatype_free(&named_dt_head, 1);
|
||||
} H5E_END_TRY;
|
||||
|
||||
return ret_value;
|
||||
}
|
||||
|
||||
@ -1310,10 +1247,10 @@ done:
|
||||
* Function: print_dataset_info
|
||||
*
|
||||
* Purpose: print name, filters, percentage compression of a dataset
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
static void print_dataset_info(hid_t dcpl_id, char *objname, double ratio, int pr)
|
||||
static void
|
||||
print_dataset_info(hid_t dcpl_id, char *objname, double ratio, int pr)
|
||||
{
|
||||
char strfilter[255];
|
||||
#if defined (PRINT_DEBUG )
|
||||
@ -1325,7 +1262,7 @@ static void print_dataset_info(hid_t dcpl_id, char *objname, double ratio, int p
|
||||
unsigned cd_values[20]; /* filter client data values */
|
||||
size_t cd_nelmts; /* filter client number of values */
|
||||
char f_objname[256]; /* filter objname */
|
||||
int i;
|
||||
int i;
|
||||
|
||||
HDstrcpy(strfilter, "\0");
|
||||
|
||||
@ -1417,19 +1354,15 @@ static void print_dataset_info(hid_t dcpl_id, char *objname, double ratio, int p
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: copy_user_block
|
||||
*
|
||||
* Purpose: copy user block from one file to another
|
||||
*
|
||||
* Return: 0, ok, -1 no
|
||||
*
|
||||
* Programmer: Peter Cao
|
||||
*
|
||||
* Date: October, 25, 2007
|
||||
* Purpose: copy user block from one file to another
|
||||
*
|
||||
* Return: 0, ok, -1 no
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
static int copy_user_block(const char *infile, const char *outfile, hsize_t size)
|
||||
static int
|
||||
copy_user_block(const char *infile, const char *outfile, hsize_t size)
|
||||
{
|
||||
int ret_value = 0; /*no need to LEAVE() on ERROR: HERR_INIT(int, SUCCEED) */
|
||||
int ret_value = 0;
|
||||
int infid = -1, outfid = -1; /* File descriptors */
|
||||
|
||||
/* User block must be any power of 2 equal to 512 or greater (512, 1024, 2048, etc.) */
|
||||
@ -1491,21 +1424,17 @@ done:
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: print_user_block
|
||||
*
|
||||
* Purpose: print user block
|
||||
*
|
||||
* Return: 0, ok, -1 no
|
||||
*
|
||||
* Programmer: Pedro Vicente
|
||||
*
|
||||
* Date: August, 20, 2008
|
||||
* Purpose: print user block
|
||||
*
|
||||
* Return: 0, ok, -1 no
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#if defined (H5REPACK_DEBUG_USER_BLOCK)
|
||||
static
|
||||
void print_user_block(const char *filename, hid_t fid)
|
||||
void
|
||||
print_user_block(const char *filename, hid_t fid)
|
||||
{
|
||||
int ret_value = 0; /*no need to LEAVE() on ERROR: HERR_INIT(int, SUCCEED) */
|
||||
int ret_value = 0;
|
||||
int fh; /* file handle */
|
||||
hsize_t ub_size; /* user block size */
|
||||
hsize_t size; /* size read */
|
||||
|
@ -189,7 +189,8 @@ int do_copy_refobjs(hid_t fidin,
|
||||
refname);
|
||||
}
|
||||
} /*refname*/
|
||||
H5Oclose(refobj_id);
|
||||
if (H5Oclose(refobj_id) < 0)
|
||||
H5TOOLS_INFO(H5E_tools_min_id_g, "H5Oclose refob failed");
|
||||
} /* u */
|
||||
} /*nelmts*/
|
||||
|
||||
@ -276,7 +277,8 @@ int do_copy_refobjs(hid_t fidin,
|
||||
refname);
|
||||
}
|
||||
} /*refname*/
|
||||
H5Oclose(refobj_id);
|
||||
if (H5Oclose(refobj_id) < 0)
|
||||
H5TOOLS_INFO(H5E_tools_min_id_g, "H5Oclose refobj_id failed");
|
||||
} /* u */
|
||||
} /*nelmts*/
|
||||
|
||||
@ -377,7 +379,8 @@ int do_copy_refobjs(hid_t fidin,
|
||||
* This function is paired with copy_named_datatype() which is called
|
||||
* in copy_attr(), so need to free.
|
||||
*/
|
||||
named_datatype_free(&named_dt_head, 0);
|
||||
if (named_datatype_free(&named_dt_head, 0) < 0)
|
||||
H5TOOLS_INFO(H5E_tools_min_id_g, "named_datatype_free failed");
|
||||
|
||||
return ret_value;
|
||||
|
||||
@ -392,7 +395,7 @@ done:
|
||||
H5Tclose(ftype_id);
|
||||
H5Tclose(mtype_id);
|
||||
H5Tclose(type_in);
|
||||
named_datatype_free(&named_dt_head, 0);
|
||||
named_datatype_free(&named_dt_head, 1);
|
||||
} H5E_END_TRY;
|
||||
|
||||
return ret_value;
|
||||
@ -483,7 +486,8 @@ static int copy_refs_attr(hid_t loc_in,
|
||||
base_type = H5Tget_super(ftype_id);
|
||||
is_ref_vlen = (H5Tget_class(base_type) == H5T_REFERENCE);
|
||||
msize = H5Tget_size(base_type);
|
||||
H5Tclose(base_type);
|
||||
if (H5Tclose(base_type) < 0)
|
||||
H5TOOLS_INFO(H5E_tools_min_id_g, "H5Tclose base_type failed");
|
||||
}
|
||||
else if(type_class == H5T_ARRAY ) {
|
||||
hid_t base_type;
|
||||
@ -491,7 +495,8 @@ static int copy_refs_attr(hid_t loc_in,
|
||||
base_type = H5Tget_super(ftype_id);
|
||||
is_ref_array = (H5Tget_class(base_type) == H5T_REFERENCE);
|
||||
msize = H5Tget_size(base_type);
|
||||
H5Tclose(base_type);
|
||||
if (H5Tclose(base_type) < 0)
|
||||
H5TOOLS_INFO(H5E_tools_min_id_g, "H5Tclose base_type failed");
|
||||
}
|
||||
else if(type_class == H5T_COMPOUND) {
|
||||
int nmembers = H5Tget_nmembers(ftype_id) ;
|
||||
@ -511,7 +516,8 @@ static int copy_refs_attr(hid_t loc_in,
|
||||
ref_comp_size[ref_comp_field_n] = H5Tget_size(mtid);
|
||||
ref_comp_field_n++;
|
||||
}
|
||||
H5Tclose(mtid);
|
||||
if (H5Tclose(mtid) < 0)
|
||||
H5TOOLS_INFO(H5E_tools_min_id_g, "H5Tclose mtid failed");
|
||||
}
|
||||
|
||||
/* if compound don't contain reference type member, free the above
|
||||
@ -533,9 +539,12 @@ static int copy_refs_attr(hid_t loc_in,
|
||||
is_ref_comp = (ref_comp_field_n > 0);
|
||||
|
||||
if (!(is_ref || is_ref_vlen || is_ref_array || is_ref_comp)) {
|
||||
H5Tclose(mtype_id);
|
||||
H5Tclose(ftype_id);
|
||||
H5Aclose(attr_id);
|
||||
if (H5Tclose(mtype_id) < 0)
|
||||
H5TOOLS_INFO(H5E_tools_min_id_g, "H5Tclose mtype_id failed");
|
||||
if (H5Tclose(ftype_id) < 0)
|
||||
H5TOOLS_INFO(H5E_tools_min_id_g, "H5Tclose ftype_id failed");
|
||||
if (H5Aclose(attr_id) < 0)
|
||||
H5TOOLS_INFO(H5E_tools_min_id_g, "H5Aclose attr_id failed");
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -568,7 +577,8 @@ static int copy_refs_attr(hid_t loc_in,
|
||||
|
||||
base_type = H5Tget_super(ftype_id);
|
||||
msize = H5Tget_size(base_type);
|
||||
H5Tclose(base_type);
|
||||
if (H5Tclose(base_type) < 0)
|
||||
H5TOOLS_INFO(H5E_tools_min_id_g, "H5Tclose base_type failed");
|
||||
|
||||
array_rank = (unsigned)H5Tget_array_ndims(mtype_id);
|
||||
H5Tget_array_dims2(mtype_id, array_dims);
|
||||
|
@ -10,14 +10,44 @@ INCLUDE_DIRECTORIES (${HDF5_TOOLS_DIR}/lib)
|
||||
# Add the h5copy test executables
|
||||
# --------------------------------------------------------------------
|
||||
|
||||
if (HDF5_BUILD_GENERATORS)
|
||||
add_executable (h5copygentest ${HDF5_TOOLS_TEST_H5COPY_SOURCE_DIR}/h5copygentest.c)
|
||||
TARGET_NAMING (h5copygentest STATIC)
|
||||
TARGET_C_PROPERTIES (h5copygentest STATIC " " " ")
|
||||
target_link_libraries (h5copygentest ${HDF5_LIB_TARGET})
|
||||
set_target_properties (h5copygentest PROPERTIES FOLDER generator/tools)
|
||||
if (HDF5_BUILD_GENERATORS)
|
||||
add_executable (h5copygentest ${HDF5_TOOLS_TEST_H5COPY_SOURCE_DIR}/h5copygentest.c)
|
||||
TARGET_NAMING (h5copygentest STATIC)
|
||||
TARGET_C_PROPERTIES (h5copygentest STATIC " " " ")
|
||||
target_link_libraries (h5copygentest ${HDF5_LIB_TARGET})
|
||||
set_target_properties (h5copygentest PROPERTIES FOLDER generator/tools)
|
||||
|
||||
#add_test (NAME h5copygentest COMMAND $<TARGET_FILE:h5copygentest>)
|
||||
endif ()
|
||||
#add_test (NAME h5copygentest COMMAND $<TARGET_FILE:h5copygentest>)
|
||||
endif ()
|
||||
|
||||
include (CMakeTests.cmake)
|
||||
#-----------------------------------------------------------------------------
|
||||
# If plugin library tests can be tested
|
||||
#-----------------------------------------------------------------------------
|
||||
if (BUILD_SHARED_LIBS)
|
||||
set (HDF5_TOOL_PLUGIN_LIB_CORENAME "dynlibcopy")
|
||||
set (HDF5_TOOL_PLUGIN_LIB_NAME "${HDF5_EXTERNAL_LIB_PREFIX}${HDF5_TOOL_PLUGIN_LIB_CORENAME}")
|
||||
set (HDF5_TOOL_PLUGIN_LIB_TARGET ${HDF5_TOOL_PLUGIN_LIB_CORENAME})
|
||||
add_definitions (${HDF_EXTRA_C_FLAGS})
|
||||
INCLUDE_DIRECTORIES (${HDF5_SRC_DIR})
|
||||
|
||||
add_library (${HDF5_TOOL_PLUGIN_LIB_TARGET} SHARED dynlib_copy.c)
|
||||
TARGET_C_PROPERTIES (${HDF5_TOOL_PLUGIN_LIB_TARGET} SHARED " " " ")
|
||||
target_link_libraries (${HDF5_TOOL_PLUGIN_LIB_TARGET} ${HDF5_TEST_LIB_TARGET})
|
||||
H5_SET_LIB_OPTIONS (${HDF5_TOOL_PLUGIN_LIB_TARGET} ${HDF5_TOOL_PLUGIN_LIB_NAME} SHARED ${HDF5_PACKAGE_SOVERSION})
|
||||
|
||||
# make plugins dir
|
||||
file (MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/plugins")
|
||||
#-----------------------------------------------------------------------------
|
||||
# Copy plugin library to a plugins folder
|
||||
#-----------------------------------------------------------------------------
|
||||
add_custom_command (
|
||||
TARGET ${HDF5_TOOL_PLUGIN_LIB_TARGET}
|
||||
POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
ARGS -E copy_if_different
|
||||
"$<TARGET_FILE:${HDF5_TOOL_PLUGIN_LIB_TARGET}>"
|
||||
"${CMAKE_BINARY_DIR}/plugins/$<TARGET_FILE_NAME:${HDF5_TOOL_PLUGIN_LIB_TARGET}>"
|
||||
)
|
||||
endif ()
|
||||
|
||||
include (CMakeTests.cmake)
|
||||
|
@ -24,10 +24,16 @@
|
||||
${HDF5_TOOLS_TEST_H5COPY_SOURCE_DIR}/testfiles/h5copy_extlinks_trg.h5
|
||||
${HDF5_TOOLS_TEST_H5COPY_SOURCE_DIR}/testfiles/h5copy_ref.h5
|
||||
${HDF5_TOOLS_TEST_H5COPY_SOURCE_DIR}/testfiles/h5copytst.h5
|
||||
${HDF5_TOOLS_TEST_H5COPY_SOURCE_DIR}/testfiles/tudfilter.h5
|
||||
${HDF5_TOOLS_TEST_H5COPY_SOURCE_DIR}/testfiles/tudfilter2.h5
|
||||
)
|
||||
|
||||
set (LIST_OTHER_TEST_FILES
|
||||
${HDF5_TOOLS_TEST_H5COPY_SOURCE_DIR}/testfiles/h5copy_misc1.out
|
||||
${HDF5_TOOLS_TEST_H5COPY_SOURCE_DIR}/testfiles/tudfilter.h5.txt
|
||||
${HDF5_TOOLS_TEST_H5COPY_SOURCE_DIR}/testfiles/tudfilter.h5_ERR.txt
|
||||
${HDF5_TOOLS_TEST_H5COPY_SOURCE_DIR}/testfiles/h5copy_plugin_fail_ERR.out.h5.txt
|
||||
${HDF5_TOOLS_TEST_H5COPY_SOURCE_DIR}/testfiles/h5copy_plugin_test.out.h5.txt
|
||||
)
|
||||
|
||||
file (MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles")
|
||||
@ -74,9 +80,9 @@
|
||||
if (NOT "${resultcode}" STREQUAL "2")
|
||||
add_test (
|
||||
NAME H5COPY_F-${testname}-DIFF
|
||||
COMMAND $<TARGET_FILE:h5diff> -q ./testfiles/${infile} ./testfiles/${testname}.out.h5 ${srcname} ${dstname}
|
||||
COMMAND $<TARGET_FILE:h5diff> -v ./testfiles/${infile} ./testfiles/${testname}.out.h5 ${srcname} ${dstname}
|
||||
)
|
||||
SET_TESTS_PROPERTIES(H5COPY_F-${testname}-DIFF PROPERTIES DEPENDS H5COPY_F-${testname})
|
||||
set_tests_properties (H5COPY_F-${testname}-DIFF PROPERTIES DEPENDS H5COPY_F-${testname})
|
||||
if ("${resultcode}" STREQUAL "1")
|
||||
set_tests_properties (H5COPY_F-${testname}-DIFF PROPERTIES WILL_FAIL "true")
|
||||
endif ()
|
||||
@ -110,9 +116,9 @@
|
||||
if (NOT "${resultcode}" STREQUAL "2")
|
||||
add_test (
|
||||
NAME H5COPY-${testname}-DIFF
|
||||
COMMAND $<TARGET_FILE:h5diff> -q ./testfiles/${infile} ./testfiles/${testname}.out.h5 ${srcname} ${dstname}
|
||||
COMMAND $<TARGET_FILE:h5diff> -v ./testfiles/${infile} ./testfiles/${testname}.out.h5 ${srcname} ${dstname}
|
||||
)
|
||||
SET_TESTS_PROPERTIES(H5COPY-${testname}-DIFF PROPERTIES DEPENDS H5COPY-${testname})
|
||||
set_tests_properties (H5COPY-${testname}-DIFF PROPERTIES DEPENDS H5COPY-${testname})
|
||||
if ("${resultcode}" STREQUAL "1")
|
||||
set_tests_properties (H5COPY-${testname}-DIFF PROPERTIES WILL_FAIL "true")
|
||||
endif ()
|
||||
@ -160,9 +166,9 @@
|
||||
if (NOT "${resultcode}" STREQUAL "2")
|
||||
add_test (
|
||||
NAME H5COPY-${testname}-DIFF
|
||||
COMMAND $<TARGET_FILE:h5diff> -q ./testfiles/${infile} ./testfiles/${testname}.out.h5 ${srcname} ${dstname}
|
||||
COMMAND $<TARGET_FILE:h5diff> -v ./testfiles/${infile} ./testfiles/${testname}.out.h5 ${srcname} ${dstname}
|
||||
)
|
||||
SET_TESTS_PROPERTIES(H5COPY-${testname}-DIFF PROPERTIES DEPENDS H5COPY-${testname})
|
||||
set_tests_properties (H5COPY-${testname}-DIFF PROPERTIES DEPENDS H5COPY-${testname})
|
||||
if ("${resultcode}" STREQUAL "1")
|
||||
set_tests_properties (H5COPY-${testname}-DIFF PROPERTIES WILL_FAIL "true")
|
||||
endif ()
|
||||
@ -201,9 +207,9 @@
|
||||
if (NOT "${resultcode}" STREQUAL "2")
|
||||
add_test (
|
||||
NAME H5COPY_SAME-${testname}-DIFF
|
||||
COMMAND $<TARGET_FILE:h5diff> -q ./testfiles/${testname}.out.h5 ./testfiles/${testname}.out.h5 ${srcname} ${dstname}
|
||||
COMMAND $<TARGET_FILE:h5diff> -v ./testfiles/${testname}.out.h5 ./testfiles/${testname}.out.h5 ${srcname} ${dstname}
|
||||
)
|
||||
SET_TESTS_PROPERTIES(H5COPY_SAME-${testname}-DIFF PROPERTIES DEPENDS H5COPY_SAME-${testname})
|
||||
set_tests_properties (H5COPY_SAME-${testname}-DIFF PROPERTIES DEPENDS H5COPY_SAME-${testname})
|
||||
if ("${resultcode}" STREQUAL "1")
|
||||
set_tests_properties (H5COPY_SAME-${testname}-DIFF PROPERTIES WILL_FAIL "true")
|
||||
endif ()
|
||||
@ -250,6 +256,134 @@
|
||||
endif ()
|
||||
endmacro ()
|
||||
|
||||
macro (ADD_H5_UD_TEST testname resultcode infile sparam srcname dparam dstname cmpfile)
|
||||
if (NOT HDF5_ENABLE_USING_MEMCHECKER)
|
||||
# Remove any output file left over from previous test run
|
||||
add_test (
|
||||
NAME H5COPY_UD-${testname}-clear-objects
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
-E remove
|
||||
testfiles/${testname}.out.h5
|
||||
testfiles/${infile}.out
|
||||
testfiles/${infile}.out.err
|
||||
testfiles/${testname}.out.h5.out
|
||||
testfiles/${testname}.out.h5.out.err
|
||||
)
|
||||
if ("${resultcode}" STREQUAL "2")
|
||||
add_test (
|
||||
NAME H5COPY_UD-${testname}
|
||||
COMMAND "${CMAKE_COMMAND}"
|
||||
-D "TEST_PROGRAM=$<TARGET_FILE:h5copy-shared>"
|
||||
-D "TEST_ARGS:STRING=-v;-i;./testfiles/${infile};-o;./testfiles/${testname}.out.h5;${sparam};${srcname};${dparam};${dstname}"
|
||||
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
|
||||
-D "TEST_OUTPUT=./testfiles/${infile}.out"
|
||||
-D "TEST_EXPECT=${resultcode}"
|
||||
-D "TEST_REFERENCE=./testfiles/${infile}.txt"
|
||||
-D "TEST_APPEND=EXIT CODE:"
|
||||
-D "TEST_ENV_VAR=HDF5_PLUGIN_PATH"
|
||||
-D "TEST_ENV_VALUE=${CMAKE_BINARY_DIR}"
|
||||
-P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
|
||||
)
|
||||
else ()
|
||||
add_test (
|
||||
NAME H5COPY_UD-${testname}
|
||||
COMMAND "${CMAKE_COMMAND}"
|
||||
-D "TEST_PROGRAM=$<TARGET_FILE:h5copy-shared>"
|
||||
-D "TEST_ARGS:STRING=-v;-i;./testfiles/${infile};-o;./testfiles/${testname}.out.h5;${sparam};${srcname};${dparam};${dstname}"
|
||||
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
|
||||
-D "TEST_OUTPUT=./testfiles/${infile}.out"
|
||||
-D "TEST_EXPECT=${resultcode}"
|
||||
-D "TEST_REFERENCE=./testfiles/${infile}.txt"
|
||||
-D "TEST_APPEND=EXIT CODE:"
|
||||
-D "TEST_ENV_VAR=HDF5_PLUGIN_PATH"
|
||||
-D "TEST_ENV_VALUE=${CMAKE_BINARY_DIR}/plugins"
|
||||
-P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
|
||||
)
|
||||
endif ()
|
||||
set_tests_properties (H5COPY_UD-${testname} PROPERTIES DEPENDS H5COPY_UD-${testname}-clear-objects)
|
||||
add_test (
|
||||
NAME H5COPY_UD-${testname}-DIFF
|
||||
COMMAND "${CMAKE_COMMAND}"
|
||||
-D "TEST_PROGRAM=$<TARGET_FILE:h5diff-shared>"
|
||||
-D "TEST_ARGS:STRING=-v;./testfiles/${cmpfile};./testfiles/${testname}.out.h5;${srcname};${dstname}"
|
||||
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
|
||||
-D "TEST_OUTPUT=./testfiles/${testname}.out.h5.out"
|
||||
-D "TEST_EXPECT=${resultcode}"
|
||||
-D "TEST_REFERENCE=./testfiles/${testname}.out.h5.txt"
|
||||
-D "TEST_APPEND=EXIT CODE:"
|
||||
-D "TEST_ENV_VAR=HDF5_PLUGIN_PATH"
|
||||
-D "TEST_ENV_VALUE=${CMAKE_BINARY_DIR}/plugins"
|
||||
-P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
|
||||
)
|
||||
set_tests_properties (H5COPY_UD-${testname}-DIFF PROPERTIES DEPENDS H5COPY_UD-${testname})
|
||||
endif ()
|
||||
endmacro ()
|
||||
|
||||
macro (ADD_H5_UD_ERR_TEST testname resultcode infile sparam srcname dparam dstname cmpfile)
|
||||
if (NOT HDF5_ENABLE_USING_MEMCHECKER)
|
||||
# Remove any output file left over from previous test run
|
||||
add_test (
|
||||
NAME H5COPY_UD_ERR-${testname}-clearall-objects
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
-E remove
|
||||
testfiles/${testname}_ERR.out.h5
|
||||
testfiles/${infile}_ERR.out
|
||||
testfiles/${infile}_ERR.out.err
|
||||
testfiles/${testname}_ERR.out.h5.out
|
||||
testfiles/${testname}_ERR.out.h5.out.err
|
||||
)
|
||||
if ("${resultcode}" STREQUAL "2")
|
||||
add_test (
|
||||
NAME H5COPY_UD_ERR-${testname}
|
||||
COMMAND "${CMAKE_COMMAND}"
|
||||
-D "TEST_PROGRAM=$<TARGET_FILE:h5copy-shared>"
|
||||
-D "TEST_ARGS:STRING=-v;--enable-error-stack;-i;./testfiles/${infile};-o;./testfiles/${testname}_ERR.out.h5;${sparam};${srcname};${dparam};${dstname}"
|
||||
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
|
||||
-D "TEST_OUTPUT=./testfiles/${infile}_ERR.out"
|
||||
-D "TEST_EXPECT=0"
|
||||
-D "TEST_REFERENCE=./testfiles/${infile}_ERR.txt"
|
||||
-D "TEST_MASK_ERROR=true"
|
||||
-D "TEST_APPEND=EXIT CODE:"
|
||||
-D "TEST_ENV_VAR=HDF5_PLUGIN_PATH"
|
||||
-D "TEST_ENV_VALUE=${CMAKE_BINARY_DIR}"
|
||||
-P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
|
||||
)
|
||||
else ()
|
||||
add_test (
|
||||
NAME H5COPY_UD_ERR-${testname}
|
||||
COMMAND "${CMAKE_COMMAND}"
|
||||
-D "TEST_PROGRAM=$<TARGET_FILE:h5copy-shared>"
|
||||
-D "TEST_ARGS:STRING=-v;--enable-error-stack;-i;./testfiles/${infile};-o;./testfiles/${testname}_ERR.out.h5;${sparam};${srcname};${dparam};${dstname}"
|
||||
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
|
||||
-D "TEST_OUTPUT=./testfiles/${infile}_ERR.out"
|
||||
-D "TEST_EXPECT=${resultcode}"
|
||||
-D "TEST_REFERENCE=./testfiles/${infile}_ERR.txt"
|
||||
-D "TEST_MASK_ERROR=true"
|
||||
-D "TEST_APPEND=EXIT CODE:"
|
||||
-D "TEST_ENV_VAR=HDF5_PLUGIN_PATH"
|
||||
-D "TEST_ENV_VALUE=${CMAKE_BINARY_DIR}/plugins"
|
||||
-P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
|
||||
)
|
||||
endif ()
|
||||
set_tests_properties (H5COPY_UD_ERR-${testname} PROPERTIES DEPENDS H5COPY_UD_ERR-${testname}-clearall-objects)
|
||||
add_test (
|
||||
NAME H5COPY_UD_ERR-${testname}-DIFF
|
||||
COMMAND "${CMAKE_COMMAND}"
|
||||
-D "TEST_PROGRAM=$<TARGET_FILE:h5diff-shared>"
|
||||
-D "TEST_ARGS:STRING=-v;./testfiles/${cmpfile};./testfiles/${testname}_ERR.out.h5;${srcname};${dstname}"
|
||||
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
|
||||
-D "TEST_OUTPUT=./testfiles/${testname}_ERR.out.h5.out"
|
||||
-D "TEST_EXPECT=0"
|
||||
-D "TEST_REFERENCE=./testfiles/${testname}_ERR.out.h5.txt"
|
||||
-D "TEST_APPEND=EXIT CODE:"
|
||||
-D "TEST_ENV_VAR=HDF5_PLUGIN_PATH"
|
||||
-D "TEST_ENV_VALUE=${CMAKE_BINARY_DIR}/plugins"
|
||||
-P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
|
||||
)
|
||||
set_tests_properties (H5COPY_UD_ERR-${testname}-DIFF PROPERTIES DEPENDS H5COPY_UD_ERR-${testname})
|
||||
endif ()
|
||||
endmacro ()
|
||||
|
||||
##############################################################################
|
||||
##############################################################################
|
||||
### T H E T E S T S ###
|
||||
@ -434,3 +568,11 @@
|
||||
else ()
|
||||
ADD_H5_TEST_SAME (samefile2 2 ${HDF_FILE1}.h5 /grp_dsets /grp_dsets -v -s /grp_dsets -d /grp_dsets_cp)
|
||||
endif ()
|
||||
|
||||
##############################################################################
|
||||
### P L U G I N T E S T S
|
||||
##############################################################################
|
||||
if (BUILD_SHARED_LIBS)
|
||||
ADD_H5_UD_TEST (h5copy_plugin_test 0 tudfilter.h5 -s /dynlibud -d /dynlibud tudfilter2.h5 )
|
||||
ADD_H5_UD_ERR_TEST (h5copy_plugin_fail 2 tudfilter.h5 -s /dynlibud -d /dynlibud tudfilter2.h5)
|
||||
endif ()
|
||||
|
89
tools/test/h5copy/dynlib_copy.c
Normal file
89
tools/test/h5copy/dynlib_copy.c
Normal file
@ -0,0 +1,89 @@
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Copyright by The HDF Group. *
|
||||
* All rights reserved. *
|
||||
* *
|
||||
* This file is part of HDF5. The full HDF5 copyright notice, including *
|
||||
* terms governing use, modification, and redistribution, is contained in *
|
||||
* the COPYING file, which can be found at the root of the source code *
|
||||
* distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases. *
|
||||
* If you do not have access to either file, you may request a copy from *
|
||||
* help@hdfgroup.org. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
/*
|
||||
* Purpose: Tests the plugin module (H5PL)
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include "H5PLextern.h"
|
||||
|
||||
#define H5Z_FILTER_DYNLIBUD 300
|
||||
#define MULTIPLIER 3
|
||||
|
||||
static size_t H5Z_filter_dynlibud(unsigned int flags, size_t cd_nelmts,
|
||||
const unsigned int *cd_values, size_t nbytes, size_t *buf_size, void **buf);
|
||||
|
||||
/* This message derives from H5Z */
|
||||
const H5Z_class2_t H5Z_DYNLIBUD[1] = {{
|
||||
H5Z_CLASS_T_VERS, /* H5Z_class_t version */
|
||||
H5Z_FILTER_DYNLIBUD, /* Filter id number */
|
||||
1, 1, /* Encoding and decoding enabled */
|
||||
"dynlibud", /* Filter name for debugging */
|
||||
NULL, /* The "can apply" callback */
|
||||
NULL, /* The "set local" callback */
|
||||
(H5Z_func_t)H5Z_filter_dynlibud, /* The actual filter function */
|
||||
}};
|
||||
|
||||
H5PL_type_t H5PLget_plugin_type(void) {return H5PL_TYPE_FILTER;}
|
||||
const void *H5PLget_plugin_info(void) {return H5Z_DYNLIBUD;}
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: H5Z_filter_dynlibud
|
||||
*
|
||||
* Purpose: A dynlib2 filter method that multiplies the original value
|
||||
* during write and divide the original value during read. It
|
||||
* will be built as a shared library. plugin.c test will load
|
||||
* and use this filter library.
|
||||
*
|
||||
* Return: Success: Data chunk size
|
||||
*
|
||||
* Failure: 0
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
static size_t
|
||||
H5Z_filter_dynlibud(unsigned int flags, size_t cd_nelmts,
|
||||
const unsigned int *cd_values, size_t nbytes,
|
||||
size_t *buf_size, void **buf)
|
||||
{
|
||||
char *int_ptr = (char *)*buf; /* Pointer to the data values */
|
||||
size_t buf_left = *buf_size; /* Amount of data buffer left to process */
|
||||
|
||||
/* Check for the correct number of parameters */
|
||||
if(cd_nelmts > 0)
|
||||
return(0);
|
||||
|
||||
/* Assignment to eliminate unused parameter warning. */
|
||||
cd_values = cd_values;
|
||||
|
||||
if(flags & H5Z_FLAG_REVERSE) { /*read*/
|
||||
/* Subtract the original value with MULTIPLIER */
|
||||
while(buf_left > 0) {
|
||||
char temp = *int_ptr;
|
||||
*int_ptr = temp - MULTIPLIER;
|
||||
int_ptr++;
|
||||
buf_left -= sizeof(*int_ptr);
|
||||
} /* end while */
|
||||
} /* end if */
|
||||
else { /*write*/
|
||||
/* Add the original value with MULTIPLIER */
|
||||
while(buf_left > 0) {
|
||||
char temp = *int_ptr;
|
||||
*int_ptr = temp + MULTIPLIER;
|
||||
int_ptr++;
|
||||
buf_left -= sizeof(*int_ptr);
|
||||
} /* end while */
|
||||
} /* end else */
|
||||
|
||||
return nbytes;
|
||||
} /* end H5Z_filter_dynlibud() */
|
||||
|
@ -0,0 +1,3 @@
|
||||
dataset: </dynlibud> and </dynlibud>
|
||||
0 differences found
|
||||
EXIT CODE: 0
|
@ -0,0 +1,3 @@
|
||||
dataset: </dynlibud> and </dynlibud>
|
||||
0 differences found
|
||||
EXIT CODE: 0
|
BIN
tools/test/h5copy/testfiles/tudfilter.h5
Normal file
BIN
tools/test/h5copy/testfiles/tudfilter.h5
Normal file
Binary file not shown.
2
tools/test/h5copy/testfiles/tudfilter.h5.txt
Normal file
2
tools/test/h5copy/testfiles/tudfilter.h5.txt
Normal file
@ -0,0 +1,2 @@
|
||||
Copying file <./testfiles/tudfilter.h5> and object </dynlibud> to file <./testfiles/h5copy_plugin_test.out.h5> and object </dynlibud>
|
||||
EXIT CODE: 0
|
2
tools/test/h5copy/testfiles/tudfilter.h5_ERR.txt
Normal file
2
tools/test/h5copy/testfiles/tudfilter.h5_ERR.txt
Normal file
@ -0,0 +1,2 @@
|
||||
Copying file <./testfiles/tudfilter.h5> and object </dynlibud> to file <./testfiles/h5copy_plugin_fail_ERR.out.h5> and object </dynlibud>
|
||||
EXIT CODE: 0
|
BIN
tools/test/h5copy/testfiles/tudfilter2.h5
Normal file
BIN
tools/test/h5copy/testfiles/tudfilter2.h5
Normal file
Binary file not shown.
@ -1,4 +1,4 @@
|
||||
H5tools-DIAG: Error detected in HDF5:tools (version (number)) thread (IDs):
|
||||
#000: (file name) line (number) in h5diff(): Error: treat dangling link as error
|
||||
#000: (file name) line (number) in h5diff(): treat dangling link as error
|
||||
major: Failure in tools library
|
||||
minor: error in function
|
||||
|
@ -1,6 +1,6 @@
|
||||
Warning: </softlink_noexist> is a dangling link.
|
||||
H5tools-DIAG: Error detected in HDF5:tools (version (number)) thread (IDs):
|
||||
#000: (file name) line (number) in h5diff(): Error: treat dangling link as error
|
||||
#000: (file name) line (number) in h5diff(): treat dangling link as error
|
||||
major: Failure in tools library
|
||||
minor: error in function
|
||||
EXIT CODE: 2
|
||||
|
@ -1,4 +1,4 @@
|
||||
H5tools-DIAG: Error detected in HDF5:tools (version (number)) thread (IDs):
|
||||
#000: (file name) line (number) in h5diff(): Error: treat dangling link as error
|
||||
#000: (file name) line (number) in h5diff(): treat dangling link as error
|
||||
major: Failure in tools library
|
||||
minor: error in function
|
||||
|
@ -1,6 +1,6 @@
|
||||
Warning: </softlink_noexist> is a dangling link.
|
||||
H5tools-DIAG: Error detected in HDF5:tools (version (number)) thread (IDs):
|
||||
#000: (file name) line (number) in h5diff(): Error: treat dangling link as error
|
||||
#000: (file name) line (number) in h5diff(): treat dangling link as error
|
||||
major: Failure in tools library
|
||||
minor: error in function
|
||||
EXIT CODE: 2
|
||||
|
@ -1,4 +1,4 @@
|
||||
H5tools-DIAG: Error detected in HDF5:tools (version (number)) thread (IDs):
|
||||
#000: (file name) line (number) in h5diff(): Error: treat dangling link as error
|
||||
#000: (file name) line (number) in h5diff(): treat dangling link as error
|
||||
major: Failure in tools library
|
||||
minor: error in function
|
||||
|
@ -1,6 +1,6 @@
|
||||
Warning: </ext_link_noexist1> is a dangling link.
|
||||
H5tools-DIAG: Error detected in HDF5:tools (version (number)) thread (IDs):
|
||||
#000: (file name) line (number) in h5diff(): Error: treat dangling link as error
|
||||
#000: (file name) line (number) in h5diff(): treat dangling link as error
|
||||
major: Failure in tools library
|
||||
minor: error in function
|
||||
EXIT CODE: 2
|
||||
|
@ -1,4 +1,4 @@
|
||||
H5tools-DIAG: Error detected in HDF5:tools (version (number)) thread (IDs):
|
||||
#000: (file name) line (number) in h5diff(): Error: treat dangling link as error
|
||||
#000: (file name) line (number) in h5diff(): treat dangling link as error
|
||||
major: Failure in tools library
|
||||
minor: error in function
|
||||
|
@ -1,6 +1,6 @@
|
||||
Warning: </ext_link_noexist2> is a dangling link.
|
||||
H5tools-DIAG: Error detected in HDF5:tools (version (number)) thread (IDs):
|
||||
#000: (file name) line (number) in h5diff(): Error: treat dangling link as error
|
||||
#000: (file name) line (number) in h5diff(): treat dangling link as error
|
||||
major: Failure in tools library
|
||||
minor: error in function
|
||||
EXIT CODE: 2
|
||||
|
@ -1,4 +1,4 @@
|
||||
H5tools-DIAG: Error detected in HDF5:tools (version (number)) thread (IDs):
|
||||
#000: (file name) line (number) in h5diff(): Error: treat dangling link as error
|
||||
#000: (file name) line (number) in h5diff(): treat dangling link as error
|
||||
major: Failure in tools library
|
||||
minor: error in function
|
||||
|
@ -1,6 +1,6 @@
|
||||
Warning: </ext_link_noexist1> is a dangling link.
|
||||
H5tools-DIAG: Error detected in HDF5:tools (version (number)) thread (IDs):
|
||||
#000: (file name) line (number) in h5diff(): Error: treat dangling link as error
|
||||
#000: (file name) line (number) in h5diff(): treat dangling link as error
|
||||
major: Failure in tools library
|
||||
minor: error in function
|
||||
EXIT CODE: 2
|
||||
|
@ -2,8 +2,8 @@ dataset: </string1> and </string1>
|
||||
size: [3x4] [3x4]
|
||||
position string1 string1 difference
|
||||
------------------------------------------------------------
|
||||
[ 1 0 ] 5 \000
|
||||
[ 1 1 ] 6 \000
|
||||
[ 1 0 ] \000 5
|
||||
[ 1 1 ] \000 6
|
||||
[ 1 2 ] \000 7
|
||||
[ 1 3 ] \000 8
|
||||
4 differences found
|
||||
|
@ -2,29 +2,29 @@ dataset: </string2> and </string2>
|
||||
size: [20] [20]
|
||||
position string2 string2 difference
|
||||
------------------------------------------------------------
|
||||
[ 8 ] 9 e
|
||||
[ 8 ] f
|
||||
[ 8 ] 9
|
||||
[ 9 ] 0 e
|
||||
[ 9 ] f
|
||||
[ 9 ] 0
|
||||
[ 10 ] 1 e
|
||||
[ 10 ] f
|
||||
[ 10 ] 1
|
||||
[ 11 ] 2 e
|
||||
[ 11 ] f
|
||||
[ 11 ] 2
|
||||
[ 12 ] e 3
|
||||
[ 12 ] f
|
||||
[ 12 ] 3
|
||||
[ 13 ] e 4
|
||||
[ 13 ] f
|
||||
[ 13 ] 4
|
||||
[ 14 ] e 5
|
||||
[ 14 ] f
|
||||
[ 14 ] 5
|
||||
[ 15 ] e 6
|
||||
[ 15 ] f
|
||||
[ 15 ] 6
|
||||
[ 8 ] e 9
|
||||
[ 8 ] f
|
||||
[ 8 ] 9
|
||||
[ 9 ] e 0
|
||||
[ 9 ] f
|
||||
[ 9 ] 0
|
||||
[ 10 ] e 1
|
||||
[ 10 ] f
|
||||
[ 10 ] 1
|
||||
[ 11 ] e 2
|
||||
[ 11 ] f
|
||||
[ 11 ] 2
|
||||
[ 12 ] 3 e
|
||||
[ 12 ] f
|
||||
[ 12 ] 3
|
||||
[ 13 ] 4 e
|
||||
[ 13 ] f
|
||||
[ 13 ] 4
|
||||
[ 14 ] 5 e
|
||||
[ 14 ] f
|
||||
[ 14 ] 5
|
||||
[ 15 ] 6 e
|
||||
[ 15 ] f
|
||||
[ 15 ] 6
|
||||
24 differences found
|
||||
EXIT CODE: 1
|
||||
|
@ -2,36 +2,36 @@ dataset: </string3> and </string3>
|
||||
size: [27] [27]
|
||||
position string3 string3 difference
|
||||
------------------------------------------------------------
|
||||
[ 12 ] d c
|
||||
[ 12 ] 2 d
|
||||
[ 12 ] \000 2
|
||||
[ 13 ] 3 d
|
||||
[ 13 ] \000 3
|
||||
[ 14 ] b a
|
||||
[ 14 ] c b
|
||||
[ 14 ] d c
|
||||
[ 14 ] 4 d
|
||||
[ 14 ] \000 4
|
||||
[ 15 ] c b
|
||||
[ 15 ] d c
|
||||
[ 15 ] 5 d
|
||||
[ 15 ] \000 5
|
||||
[ 16 ] c d
|
||||
[ 16 ] d 6
|
||||
[ 16 ] 6 \000
|
||||
[ 17 ] d 7
|
||||
[ 17 ] 7 \000
|
||||
[ 18 ] a b
|
||||
[ 18 ] b c
|
||||
[ 18 ] c d
|
||||
[ 18 ] d 8
|
||||
[ 18 ] 8 \000
|
||||
[ 19 ] b c
|
||||
[ 19 ] c d
|
||||
[ 19 ] d 9
|
||||
[ 19 ] 9 \000
|
||||
[ 24 ] c d
|
||||
[ 25 ] c d
|
||||
[ 26 ] c d
|
||||
[ 12 ] c d
|
||||
[ 12 ] d 2
|
||||
[ 12 ] 2 \000
|
||||
[ 13 ] d 3
|
||||
[ 13 ] 3 \000
|
||||
[ 14 ] a b
|
||||
[ 14 ] b c
|
||||
[ 14 ] c d
|
||||
[ 14 ] d 4
|
||||
[ 14 ] 4 \000
|
||||
[ 15 ] b c
|
||||
[ 15 ] c d
|
||||
[ 15 ] d 5
|
||||
[ 15 ] 5 \000
|
||||
[ 16 ] d c
|
||||
[ 16 ] 6 d
|
||||
[ 16 ] \000 6
|
||||
[ 17 ] 7 d
|
||||
[ 17 ] \000 7
|
||||
[ 18 ] b a
|
||||
[ 18 ] c b
|
||||
[ 18 ] d c
|
||||
[ 18 ] 8 d
|
||||
[ 18 ] \000 8
|
||||
[ 19 ] c b
|
||||
[ 19 ] d c
|
||||
[ 19 ] 9 d
|
||||
[ 19 ] \000 9
|
||||
[ 24 ] d c
|
||||
[ 25 ] d c
|
||||
[ 26 ] d c
|
||||
31 differences found
|
||||
EXIT CODE: 1
|
||||
|
@ -2,9 +2,9 @@ dataset: </string4> and </string4>
|
||||
size: [3] [3]
|
||||
position string4 string4 difference
|
||||
------------------------------------------------------------
|
||||
[ 1 ] 8
|
||||
[ 1 ] 9
|
||||
[ 2 ] 8
|
||||
[ 2 ] 9
|
||||
[ 1 ] 8
|
||||
[ 1 ] 9
|
||||
[ 2 ] 8
|
||||
[ 2 ] 9
|
||||
4 differences found
|
||||
EXIT CODE: 1
|
||||
|
@ -11,79 +11,79 @@ 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
|
||||
[ 0 ] z a
|
||||
[ 0 ] z b
|
||||
[ 1 ] z d
|
||||
[ 1 ] z e
|
||||
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
|
||||
[ 0 0 ] z a
|
||||
[ 0 0 ] z b
|
||||
[ 0 1 ] z c
|
||||
[ 0 1 ] z d
|
||||
[ 1 0 ] z e
|
||||
[ 1 0 ] z f
|
||||
[ 1 1 ] z g
|
||||
[ 1 1 ] z h
|
||||
[ 2 0 ] z i
|
||||
[ 2 0 ] z j
|
||||
[ 2 1 ] z k
|
||||
[ 2 1 ] z l
|
||||
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
|
||||
[ 0 0 0 ] z a
|
||||
[ 0 0 0 ] z b
|
||||
[ 0 0 1 ] z c
|
||||
[ 0 0 1 ] z d
|
||||
[ 0 1 0 ] z e
|
||||
[ 0 1 0 ] z f
|
||||
[ 0 1 1 ] z g
|
||||
[ 0 1 1 ] z h
|
||||
[ 0 2 0 ] z i
|
||||
[ 0 2 0 ] z j
|
||||
[ 0 2 1 ] z k
|
||||
[ 0 2 1 ] z l
|
||||
[ 1 0 0 ] z m
|
||||
[ 1 0 0 ] z n
|
||||
[ 1 0 1 ] z p
|
||||
[ 1 0 1 ] z q
|
||||
[ 1 1 0 ] z r
|
||||
[ 1 1 0 ] z s
|
||||
[ 1 1 1 ] z t
|
||||
[ 1 1 1 ] z u
|
||||
[ 1 2 0 ] z v
|
||||
[ 1 2 0 ] z w
|
||||
[ 1 2 1 ] z x
|
||||
[ 2 0 0 ] z A
|
||||
[ 2 0 0 ] z B
|
||||
[ 2 0 1 ] z C
|
||||
[ 2 0 1 ] z D
|
||||
[ 2 1 0 ] z E
|
||||
[ 2 1 0 ] z F
|
||||
[ 2 1 1 ] z G
|
||||
[ 2 1 1 ] z H
|
||||
[ 2 2 0 ] z I
|
||||
[ 2 2 0 ] z J
|
||||
[ 2 2 1 ] z K
|
||||
[ 2 2 1 ] z L
|
||||
[ 3 0 0 ] z M
|
||||
[ 3 0 0 ] z N
|
||||
[ 3 0 1 ] z P
|
||||
[ 3 0 1 ] z Q
|
||||
[ 3 1 0 ] z R
|
||||
[ 3 1 0 ] z S
|
||||
[ 3 1 1 ] z T
|
||||
[ 3 1 1 ] z U
|
||||
[ 3 2 0 ] z V
|
||||
[ 3 2 0 ] z W
|
||||
[ 3 2 1 ] z X
|
||||
[ 3 2 1 ] z Z
|
||||
47 differences found
|
||||
attribute: <array of </>> and <array of </>>
|
||||
size: [2] [2]
|
||||
@ -514,79 +514,79 @@ 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
|
||||
[ 0 ] z a
|
||||
[ 0 ] z b
|
||||
[ 1 ] z d
|
||||
[ 1 ] z e
|
||||
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
|
||||
[ 0 0 ] z a
|
||||
[ 0 0 ] z b
|
||||
[ 0 1 ] z c
|
||||
[ 0 1 ] z d
|
||||
[ 1 0 ] z e
|
||||
[ 1 0 ] z f
|
||||
[ 1 1 ] z g
|
||||
[ 1 1 ] z h
|
||||
[ 2 0 ] z i
|
||||
[ 2 0 ] z j
|
||||
[ 2 1 ] z k
|
||||
[ 2 1 ] z l
|
||||
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
|
||||
[ 0 0 0 ] z a
|
||||
[ 0 0 0 ] z b
|
||||
[ 0 0 1 ] z c
|
||||
[ 0 0 1 ] z d
|
||||
[ 0 1 0 ] z e
|
||||
[ 0 1 0 ] z f
|
||||
[ 0 1 1 ] z g
|
||||
[ 0 1 1 ] z h
|
||||
[ 0 2 0 ] z i
|
||||
[ 0 2 0 ] z j
|
||||
[ 0 2 1 ] z k
|
||||
[ 0 2 1 ] z l
|
||||
[ 1 0 0 ] z m
|
||||
[ 1 0 0 ] z n
|
||||
[ 1 0 1 ] z p
|
||||
[ 1 0 1 ] z q
|
||||
[ 1 1 0 ] z r
|
||||
[ 1 1 0 ] z s
|
||||
[ 1 1 1 ] z t
|
||||
[ 1 1 1 ] z u
|
||||
[ 1 2 0 ] z v
|
||||
[ 1 2 0 ] z w
|
||||
[ 1 2 1 ] z x
|
||||
[ 2 0 0 ] z A
|
||||
[ 2 0 0 ] z B
|
||||
[ 2 0 1 ] z C
|
||||
[ 2 0 1 ] z D
|
||||
[ 2 1 0 ] z E
|
||||
[ 2 1 0 ] z F
|
||||
[ 2 1 1 ] z G
|
||||
[ 2 1 1 ] z H
|
||||
[ 2 2 0 ] z I
|
||||
[ 2 2 0 ] z J
|
||||
[ 2 2 1 ] z K
|
||||
[ 2 2 1 ] z L
|
||||
[ 3 0 0 ] z M
|
||||
[ 3 0 0 ] z N
|
||||
[ 3 0 1 ] z P
|
||||
[ 3 0 1 ] z Q
|
||||
[ 3 1 0 ] z R
|
||||
[ 3 1 0 ] z S
|
||||
[ 3 1 1 ] z T
|
||||
[ 3 1 1 ] z U
|
||||
[ 3 2 0 ] z V
|
||||
[ 3 2 0 ] z W
|
||||
[ 3 2 1 ] z X
|
||||
[ 3 2 1 ] z Z
|
||||
47 differences found
|
||||
attribute: <vlen of </>> and <vlen of </>>
|
||||
size: [2] [2]
|
||||
@ -683,79 +683,79 @@ 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
|
||||
[ 0 ] z a
|
||||
[ 0 ] z b
|
||||
[ 1 ] z d
|
||||
[ 1 ] z e
|
||||
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
|
||||
[ 0 0 ] z a
|
||||
[ 0 0 ] z b
|
||||
[ 0 1 ] z c
|
||||
[ 0 1 ] z d
|
||||
[ 1 0 ] z e
|
||||
[ 1 0 ] z f
|
||||
[ 1 1 ] z g
|
||||
[ 1 1 ] z h
|
||||
[ 2 0 ] z i
|
||||
[ 2 0 ] z j
|
||||
[ 2 1 ] z k
|
||||
[ 2 1 ] z l
|
||||
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
|
||||
[ 0 0 0 ] z a
|
||||
[ 0 0 0 ] z b
|
||||
[ 0 0 1 ] z c
|
||||
[ 0 0 1 ] z d
|
||||
[ 0 1 0 ] z e
|
||||
[ 0 1 0 ] z f
|
||||
[ 0 1 1 ] z g
|
||||
[ 0 1 1 ] z h
|
||||
[ 0 2 0 ] z i
|
||||
[ 0 2 0 ] z j
|
||||
[ 0 2 1 ] z k
|
||||
[ 0 2 1 ] z l
|
||||
[ 1 0 0 ] z m
|
||||
[ 1 0 0 ] z n
|
||||
[ 1 0 1 ] z p
|
||||
[ 1 0 1 ] z q
|
||||
[ 1 1 0 ] z r
|
||||
[ 1 1 0 ] z s
|
||||
[ 1 1 1 ] z t
|
||||
[ 1 1 1 ] z u
|
||||
[ 1 2 0 ] z v
|
||||
[ 1 2 0 ] z w
|
||||
[ 1 2 1 ] z x
|
||||
[ 2 0 0 ] z A
|
||||
[ 2 0 0 ] z B
|
||||
[ 2 0 1 ] z C
|
||||
[ 2 0 1 ] z D
|
||||
[ 2 1 0 ] z E
|
||||
[ 2 1 0 ] z F
|
||||
[ 2 1 1 ] z G
|
||||
[ 2 1 1 ] z H
|
||||
[ 2 2 0 ] z I
|
||||
[ 2 2 0 ] z J
|
||||
[ 2 2 1 ] z K
|
||||
[ 2 2 1 ] z L
|
||||
[ 3 0 0 ] z M
|
||||
[ 3 0 0 ] z N
|
||||
[ 3 0 1 ] z P
|
||||
[ 3 0 1 ] z Q
|
||||
[ 3 1 0 ] z R
|
||||
[ 3 1 0 ] z S
|
||||
[ 3 1 1 ] z T
|
||||
[ 3 1 1 ] z U
|
||||
[ 3 2 0 ] z V
|
||||
[ 3 2 0 ] z W
|
||||
[ 3 2 1 ] z X
|
||||
[ 3 2 1 ] z Z
|
||||
47 differences found
|
||||
attribute: <array of </dset>> and <array of </dset>>
|
||||
size: [2] [2]
|
||||
@ -1192,79 +1192,79 @@ 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
|
||||
[ 0 ] z a
|
||||
[ 0 ] z b
|
||||
[ 1 ] z d
|
||||
[ 1 ] z e
|
||||
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
|
||||
[ 0 0 ] z a
|
||||
[ 0 0 ] z b
|
||||
[ 0 1 ] z c
|
||||
[ 0 1 ] z d
|
||||
[ 1 0 ] z e
|
||||
[ 1 0 ] z f
|
||||
[ 1 1 ] z g
|
||||
[ 1 1 ] z h
|
||||
[ 2 0 ] z i
|
||||
[ 2 0 ] z j
|
||||
[ 2 1 ] z k
|
||||
[ 2 1 ] z l
|
||||
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
|
||||
[ 0 0 0 ] z a
|
||||
[ 0 0 0 ] z b
|
||||
[ 0 0 1 ] z c
|
||||
[ 0 0 1 ] z d
|
||||
[ 0 1 0 ] z e
|
||||
[ 0 1 0 ] z f
|
||||
[ 0 1 1 ] z g
|
||||
[ 0 1 1 ] z h
|
||||
[ 0 2 0 ] z i
|
||||
[ 0 2 0 ] z j
|
||||
[ 0 2 1 ] z k
|
||||
[ 0 2 1 ] z l
|
||||
[ 1 0 0 ] z m
|
||||
[ 1 0 0 ] z n
|
||||
[ 1 0 1 ] z p
|
||||
[ 1 0 1 ] z q
|
||||
[ 1 1 0 ] z r
|
||||
[ 1 1 0 ] z s
|
||||
[ 1 1 1 ] z t
|
||||
[ 1 1 1 ] z u
|
||||
[ 1 2 0 ] z v
|
||||
[ 1 2 0 ] z w
|
||||
[ 1 2 1 ] z x
|
||||
[ 2 0 0 ] z A
|
||||
[ 2 0 0 ] z B
|
||||
[ 2 0 1 ] z C
|
||||
[ 2 0 1 ] z D
|
||||
[ 2 1 0 ] z E
|
||||
[ 2 1 0 ] z F
|
||||
[ 2 1 1 ] z G
|
||||
[ 2 1 1 ] z H
|
||||
[ 2 2 0 ] z I
|
||||
[ 2 2 0 ] z J
|
||||
[ 2 2 1 ] z K
|
||||
[ 2 2 1 ] z L
|
||||
[ 3 0 0 ] z M
|
||||
[ 3 0 0 ] z N
|
||||
[ 3 0 1 ] z P
|
||||
[ 3 0 1 ] z Q
|
||||
[ 3 1 0 ] z R
|
||||
[ 3 1 0 ] z S
|
||||
[ 3 1 1 ] z T
|
||||
[ 3 1 1 ] z U
|
||||
[ 3 2 0 ] z V
|
||||
[ 3 2 0 ] z W
|
||||
[ 3 2 1 ] z X
|
||||
[ 3 2 1 ] z Z
|
||||
47 differences found
|
||||
attribute: <vlen of </dset>> and <vlen of </dset>>
|
||||
size: [2] [2]
|
||||
@ -1360,79 +1360,79 @@ 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
|
||||
[ 0 ] z a
|
||||
[ 0 ] z b
|
||||
[ 1 ] z d
|
||||
[ 1 ] z e
|
||||
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
|
||||
[ 0 0 ] z a
|
||||
[ 0 0 ] z b
|
||||
[ 0 1 ] z c
|
||||
[ 0 1 ] z d
|
||||
[ 1 0 ] z e
|
||||
[ 1 0 ] z f
|
||||
[ 1 1 ] z g
|
||||
[ 1 1 ] z h
|
||||
[ 2 0 ] z i
|
||||
[ 2 0 ] z j
|
||||
[ 2 1 ] z k
|
||||
[ 2 1 ] z l
|
||||
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
|
||||
[ 0 0 0 ] z a
|
||||
[ 0 0 0 ] z b
|
||||
[ 0 0 1 ] z c
|
||||
[ 0 0 1 ] z d
|
||||
[ 0 1 0 ] z e
|
||||
[ 0 1 0 ] z f
|
||||
[ 0 1 1 ] z g
|
||||
[ 0 1 1 ] z h
|
||||
[ 0 2 0 ] z i
|
||||
[ 0 2 0 ] z j
|
||||
[ 0 2 1 ] z k
|
||||
[ 0 2 1 ] z l
|
||||
[ 1 0 0 ] z m
|
||||
[ 1 0 0 ] z n
|
||||
[ 1 0 1 ] z p
|
||||
[ 1 0 1 ] z q
|
||||
[ 1 1 0 ] z r
|
||||
[ 1 1 0 ] z s
|
||||
[ 1 1 1 ] z t
|
||||
[ 1 1 1 ] z u
|
||||
[ 1 2 0 ] z v
|
||||
[ 1 2 0 ] z w
|
||||
[ 1 2 1 ] z x
|
||||
[ 2 0 0 ] z A
|
||||
[ 2 0 0 ] z B
|
||||
[ 2 0 1 ] z C
|
||||
[ 2 0 1 ] z D
|
||||
[ 2 1 0 ] z E
|
||||
[ 2 1 0 ] z F
|
||||
[ 2 1 1 ] z G
|
||||
[ 2 1 1 ] z H
|
||||
[ 2 2 0 ] z I
|
||||
[ 2 2 0 ] z J
|
||||
[ 2 2 1 ] z K
|
||||
[ 2 2 1 ] z L
|
||||
[ 3 0 0 ] z M
|
||||
[ 3 0 0 ] z N
|
||||
[ 3 0 1 ] z P
|
||||
[ 3 0 1 ] z Q
|
||||
[ 3 1 0 ] z R
|
||||
[ 3 1 0 ] z S
|
||||
[ 3 1 1 ] z T
|
||||
[ 3 1 1 ] z U
|
||||
[ 3 2 0 ] z V
|
||||
[ 3 2 0 ] z W
|
||||
[ 3 2 1 ] z X
|
||||
[ 3 2 1 ] z Z
|
||||
47 differences found
|
||||
attribute: <array of </g1>> and <array of </g1>>
|
||||
size: [2] [2]
|
||||
@ -1863,79 +1863,79 @@ 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
|
||||
[ 0 ] z a
|
||||
[ 0 ] z b
|
||||
[ 1 ] z d
|
||||
[ 1 ] z e
|
||||
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
|
||||
[ 0 0 ] z a
|
||||
[ 0 0 ] z b
|
||||
[ 0 1 ] z c
|
||||
[ 0 1 ] z d
|
||||
[ 1 0 ] z e
|
||||
[ 1 0 ] z f
|
||||
[ 1 1 ] z g
|
||||
[ 1 1 ] z h
|
||||
[ 2 0 ] z i
|
||||
[ 2 0 ] z j
|
||||
[ 2 1 ] z k
|
||||
[ 2 1 ] z l
|
||||
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
|
||||
[ 0 0 0 ] z a
|
||||
[ 0 0 0 ] z b
|
||||
[ 0 0 1 ] z c
|
||||
[ 0 0 1 ] z d
|
||||
[ 0 1 0 ] z e
|
||||
[ 0 1 0 ] z f
|
||||
[ 0 1 1 ] z g
|
||||
[ 0 1 1 ] z h
|
||||
[ 0 2 0 ] z i
|
||||
[ 0 2 0 ] z j
|
||||
[ 0 2 1 ] z k
|
||||
[ 0 2 1 ] z l
|
||||
[ 1 0 0 ] z m
|
||||
[ 1 0 0 ] z n
|
||||
[ 1 0 1 ] z p
|
||||
[ 1 0 1 ] z q
|
||||
[ 1 1 0 ] z r
|
||||
[ 1 1 0 ] z s
|
||||
[ 1 1 1 ] z t
|
||||
[ 1 1 1 ] z u
|
||||
[ 1 2 0 ] z v
|
||||
[ 1 2 0 ] z w
|
||||
[ 1 2 1 ] z x
|
||||
[ 2 0 0 ] z A
|
||||
[ 2 0 0 ] z B
|
||||
[ 2 0 1 ] z C
|
||||
[ 2 0 1 ] z D
|
||||
[ 2 1 0 ] z E
|
||||
[ 2 1 0 ] z F
|
||||
[ 2 1 1 ] z G
|
||||
[ 2 1 1 ] z H
|
||||
[ 2 2 0 ] z I
|
||||
[ 2 2 0 ] z J
|
||||
[ 2 2 1 ] z K
|
||||
[ 2 2 1 ] z L
|
||||
[ 3 0 0 ] z M
|
||||
[ 3 0 0 ] z N
|
||||
[ 3 0 1 ] z P
|
||||
[ 3 0 1 ] z Q
|
||||
[ 3 1 0 ] z R
|
||||
[ 3 1 0 ] z S
|
||||
[ 3 1 1 ] z T
|
||||
[ 3 1 1 ] z U
|
||||
[ 3 2 0 ] z V
|
||||
[ 3 2 0 ] z W
|
||||
[ 3 2 1 ] z X
|
||||
[ 3 2 1 ] z Z
|
||||
47 differences found
|
||||
attribute: <vlen of </g1>> and <vlen of </g1>>
|
||||
size: [2] [2]
|
||||
|
@ -13,79 +13,79 @@ 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
|
||||
[ 0 ] z a
|
||||
[ 0 ] z b
|
||||
[ 1 ] z d
|
||||
[ 1 ] z e
|
||||
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
|
||||
[ 0 0 ] z a
|
||||
[ 0 0 ] z b
|
||||
[ 0 1 ] z c
|
||||
[ 0 1 ] z d
|
||||
[ 1 0 ] z e
|
||||
[ 1 0 ] z f
|
||||
[ 1 1 ] z g
|
||||
[ 1 1 ] z h
|
||||
[ 2 0 ] z i
|
||||
[ 2 0 ] z j
|
||||
[ 2 1 ] z k
|
||||
[ 2 1 ] z l
|
||||
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
|
||||
[ 0 0 0 ] z a
|
||||
[ 0 0 0 ] z b
|
||||
[ 0 0 1 ] z c
|
||||
[ 0 0 1 ] z d
|
||||
[ 0 1 0 ] z e
|
||||
[ 0 1 0 ] z f
|
||||
[ 0 1 1 ] z g
|
||||
[ 0 1 1 ] z h
|
||||
[ 0 2 0 ] z i
|
||||
[ 0 2 0 ] z j
|
||||
[ 0 2 1 ] z k
|
||||
[ 0 2 1 ] z l
|
||||
[ 1 0 0 ] z m
|
||||
[ 1 0 0 ] z n
|
||||
[ 1 0 1 ] z p
|
||||
[ 1 0 1 ] z q
|
||||
[ 1 1 0 ] z r
|
||||
[ 1 1 0 ] z s
|
||||
[ 1 1 1 ] z t
|
||||
[ 1 1 1 ] z u
|
||||
[ 1 2 0 ] z v
|
||||
[ 1 2 0 ] z w
|
||||
[ 1 2 1 ] z x
|
||||
[ 2 0 0 ] z A
|
||||
[ 2 0 0 ] z B
|
||||
[ 2 0 1 ] z C
|
||||
[ 2 0 1 ] z D
|
||||
[ 2 1 0 ] z E
|
||||
[ 2 1 0 ] z F
|
||||
[ 2 1 1 ] z G
|
||||
[ 2 1 1 ] z H
|
||||
[ 2 2 0 ] z I
|
||||
[ 2 2 0 ] z J
|
||||
[ 2 2 1 ] z K
|
||||
[ 2 2 1 ] z L
|
||||
[ 3 0 0 ] z M
|
||||
[ 3 0 0 ] z N
|
||||
[ 3 0 1 ] z P
|
||||
[ 3 0 1 ] z Q
|
||||
[ 3 1 0 ] z R
|
||||
[ 3 1 0 ] z S
|
||||
[ 3 1 1 ] z T
|
||||
[ 3 1 1 ] z U
|
||||
[ 3 2 0 ] z V
|
||||
[ 3 2 0 ] z W
|
||||
[ 3 2 1 ] z X
|
||||
[ 3 2 1 ] z Z
|
||||
47 differences found
|
||||
attribute: <array of </>> and <array of </>>
|
||||
size: [2] [2]
|
||||
@ -516,79 +516,79 @@ 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
|
||||
[ 0 ] z a
|
||||
[ 0 ] z b
|
||||
[ 1 ] z d
|
||||
[ 1 ] z e
|
||||
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
|
||||
[ 0 0 ] z a
|
||||
[ 0 0 ] z b
|
||||
[ 0 1 ] z c
|
||||
[ 0 1 ] z d
|
||||
[ 1 0 ] z e
|
||||
[ 1 0 ] z f
|
||||
[ 1 1 ] z g
|
||||
[ 1 1 ] z h
|
||||
[ 2 0 ] z i
|
||||
[ 2 0 ] z j
|
||||
[ 2 1 ] z k
|
||||
[ 2 1 ] z l
|
||||
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
|
||||
[ 0 0 0 ] z a
|
||||
[ 0 0 0 ] z b
|
||||
[ 0 0 1 ] z c
|
||||
[ 0 0 1 ] z d
|
||||
[ 0 1 0 ] z e
|
||||
[ 0 1 0 ] z f
|
||||
[ 0 1 1 ] z g
|
||||
[ 0 1 1 ] z h
|
||||
[ 0 2 0 ] z i
|
||||
[ 0 2 0 ] z j
|
||||
[ 0 2 1 ] z k
|
||||
[ 0 2 1 ] z l
|
||||
[ 1 0 0 ] z m
|
||||
[ 1 0 0 ] z n
|
||||
[ 1 0 1 ] z p
|
||||
[ 1 0 1 ] z q
|
||||
[ 1 1 0 ] z r
|
||||
[ 1 1 0 ] z s
|
||||
[ 1 1 1 ] z t
|
||||
[ 1 1 1 ] z u
|
||||
[ 1 2 0 ] z v
|
||||
[ 1 2 0 ] z w
|
||||
[ 1 2 1 ] z x
|
||||
[ 2 0 0 ] z A
|
||||
[ 2 0 0 ] z B
|
||||
[ 2 0 1 ] z C
|
||||
[ 2 0 1 ] z D
|
||||
[ 2 1 0 ] z E
|
||||
[ 2 1 0 ] z F
|
||||
[ 2 1 1 ] z G
|
||||
[ 2 1 1 ] z H
|
||||
[ 2 2 0 ] z I
|
||||
[ 2 2 0 ] z J
|
||||
[ 2 2 1 ] z K
|
||||
[ 2 2 1 ] z L
|
||||
[ 3 0 0 ] z M
|
||||
[ 3 0 0 ] z N
|
||||
[ 3 0 1 ] z P
|
||||
[ 3 0 1 ] z Q
|
||||
[ 3 1 0 ] z R
|
||||
[ 3 1 0 ] z S
|
||||
[ 3 1 1 ] z T
|
||||
[ 3 1 1 ] z U
|
||||
[ 3 2 0 ] z V
|
||||
[ 3 2 0 ] z W
|
||||
[ 3 2 1 ] z X
|
||||
[ 3 2 1 ] z Z
|
||||
47 differences found
|
||||
attribute: <vlen of </>> and <vlen of </>>
|
||||
size: [2] [2]
|
||||
@ -687,79 +687,79 @@ 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
|
||||
[ 0 ] z a
|
||||
[ 0 ] z b
|
||||
[ 1 ] z d
|
||||
[ 1 ] z e
|
||||
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
|
||||
[ 0 0 ] z a
|
||||
[ 0 0 ] z b
|
||||
[ 0 1 ] z c
|
||||
[ 0 1 ] z d
|
||||
[ 1 0 ] z e
|
||||
[ 1 0 ] z f
|
||||
[ 1 1 ] z g
|
||||
[ 1 1 ] z h
|
||||
[ 2 0 ] z i
|
||||
[ 2 0 ] z j
|
||||
[ 2 1 ] z k
|
||||
[ 2 1 ] z l
|
||||
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
|
||||
[ 0 0 0 ] z a
|
||||
[ 0 0 0 ] z b
|
||||
[ 0 0 1 ] z c
|
||||
[ 0 0 1 ] z d
|
||||
[ 0 1 0 ] z e
|
||||
[ 0 1 0 ] z f
|
||||
[ 0 1 1 ] z g
|
||||
[ 0 1 1 ] z h
|
||||
[ 0 2 0 ] z i
|
||||
[ 0 2 0 ] z j
|
||||
[ 0 2 1 ] z k
|
||||
[ 0 2 1 ] z l
|
||||
[ 1 0 0 ] z m
|
||||
[ 1 0 0 ] z n
|
||||
[ 1 0 1 ] z p
|
||||
[ 1 0 1 ] z q
|
||||
[ 1 1 0 ] z r
|
||||
[ 1 1 0 ] z s
|
||||
[ 1 1 1 ] z t
|
||||
[ 1 1 1 ] z u
|
||||
[ 1 2 0 ] z v
|
||||
[ 1 2 0 ] z w
|
||||
[ 1 2 1 ] z x
|
||||
[ 2 0 0 ] z A
|
||||
[ 2 0 0 ] z B
|
||||
[ 2 0 1 ] z C
|
||||
[ 2 0 1 ] z D
|
||||
[ 2 1 0 ] z E
|
||||
[ 2 1 0 ] z F
|
||||
[ 2 1 1 ] z G
|
||||
[ 2 1 1 ] z H
|
||||
[ 2 2 0 ] z I
|
||||
[ 2 2 0 ] z J
|
||||
[ 2 2 1 ] z K
|
||||
[ 2 2 1 ] z L
|
||||
[ 3 0 0 ] z M
|
||||
[ 3 0 0 ] z N
|
||||
[ 3 0 1 ] z P
|
||||
[ 3 0 1 ] z Q
|
||||
[ 3 1 0 ] z R
|
||||
[ 3 1 0 ] z S
|
||||
[ 3 1 1 ] z T
|
||||
[ 3 1 1 ] z U
|
||||
[ 3 2 0 ] z V
|
||||
[ 3 2 0 ] z W
|
||||
[ 3 2 1 ] z X
|
||||
[ 3 2 1 ] z Z
|
||||
47 differences found
|
||||
attribute: <array of </dset>> and <array of </dset>>
|
||||
size: [2] [2]
|
||||
@ -1196,79 +1196,79 @@ 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
|
||||
[ 0 ] z a
|
||||
[ 0 ] z b
|
||||
[ 1 ] z d
|
||||
[ 1 ] z e
|
||||
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
|
||||
[ 0 0 ] z a
|
||||
[ 0 0 ] z b
|
||||
[ 0 1 ] z c
|
||||
[ 0 1 ] z d
|
||||
[ 1 0 ] z e
|
||||
[ 1 0 ] z f
|
||||
[ 1 1 ] z g
|
||||
[ 1 1 ] z h
|
||||
[ 2 0 ] z i
|
||||
[ 2 0 ] z j
|
||||
[ 2 1 ] z k
|
||||
[ 2 1 ] z l
|
||||
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
|
||||
[ 0 0 0 ] z a
|
||||
[ 0 0 0 ] z b
|
||||
[ 0 0 1 ] z c
|
||||
[ 0 0 1 ] z d
|
||||
[ 0 1 0 ] z e
|
||||
[ 0 1 0 ] z f
|
||||
[ 0 1 1 ] z g
|
||||
[ 0 1 1 ] z h
|
||||
[ 0 2 0 ] z i
|
||||
[ 0 2 0 ] z j
|
||||
[ 0 2 1 ] z k
|
||||
[ 0 2 1 ] z l
|
||||
[ 1 0 0 ] z m
|
||||
[ 1 0 0 ] z n
|
||||
[ 1 0 1 ] z p
|
||||
[ 1 0 1 ] z q
|
||||
[ 1 1 0 ] z r
|
||||
[ 1 1 0 ] z s
|
||||
[ 1 1 1 ] z t
|
||||
[ 1 1 1 ] z u
|
||||
[ 1 2 0 ] z v
|
||||
[ 1 2 0 ] z w
|
||||
[ 1 2 1 ] z x
|
||||
[ 2 0 0 ] z A
|
||||
[ 2 0 0 ] z B
|
||||
[ 2 0 1 ] z C
|
||||
[ 2 0 1 ] z D
|
||||
[ 2 1 0 ] z E
|
||||
[ 2 1 0 ] z F
|
||||
[ 2 1 1 ] z G
|
||||
[ 2 1 1 ] z H
|
||||
[ 2 2 0 ] z I
|
||||
[ 2 2 0 ] z J
|
||||
[ 2 2 1 ] z K
|
||||
[ 2 2 1 ] z L
|
||||
[ 3 0 0 ] z M
|
||||
[ 3 0 0 ] z N
|
||||
[ 3 0 1 ] z P
|
||||
[ 3 0 1 ] z Q
|
||||
[ 3 1 0 ] z R
|
||||
[ 3 1 0 ] z S
|
||||
[ 3 1 1 ] z T
|
||||
[ 3 1 1 ] z U
|
||||
[ 3 2 0 ] z V
|
||||
[ 3 2 0 ] z W
|
||||
[ 3 2 1 ] z X
|
||||
[ 3 2 1 ] z Z
|
||||
47 differences found
|
||||
attribute: <vlen of </dset>> and <vlen of </dset>>
|
||||
size: [2] [2]
|
||||
@ -1366,79 +1366,79 @@ 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
|
||||
[ 0 ] z a
|
||||
[ 0 ] z b
|
||||
[ 1 ] z d
|
||||
[ 1 ] z e
|
||||
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
|
||||
[ 0 0 ] z a
|
||||
[ 0 0 ] z b
|
||||
[ 0 1 ] z c
|
||||
[ 0 1 ] z d
|
||||
[ 1 0 ] z e
|
||||
[ 1 0 ] z f
|
||||
[ 1 1 ] z g
|
||||
[ 1 1 ] z h
|
||||
[ 2 0 ] z i
|
||||
[ 2 0 ] z j
|
||||
[ 2 1 ] z k
|
||||
[ 2 1 ] z l
|
||||
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
|
||||
[ 0 0 0 ] z a
|
||||
[ 0 0 0 ] z b
|
||||
[ 0 0 1 ] z c
|
||||
[ 0 0 1 ] z d
|
||||
[ 0 1 0 ] z e
|
||||
[ 0 1 0 ] z f
|
||||
[ 0 1 1 ] z g
|
||||
[ 0 1 1 ] z h
|
||||
[ 0 2 0 ] z i
|
||||
[ 0 2 0 ] z j
|
||||
[ 0 2 1 ] z k
|
||||
[ 0 2 1 ] z l
|
||||
[ 1 0 0 ] z m
|
||||
[ 1 0 0 ] z n
|
||||
[ 1 0 1 ] z p
|
||||
[ 1 0 1 ] z q
|
||||
[ 1 1 0 ] z r
|
||||
[ 1 1 0 ] z s
|
||||
[ 1 1 1 ] z t
|
||||
[ 1 1 1 ] z u
|
||||
[ 1 2 0 ] z v
|
||||
[ 1 2 0 ] z w
|
||||
[ 1 2 1 ] z x
|
||||
[ 2 0 0 ] z A
|
||||
[ 2 0 0 ] z B
|
||||
[ 2 0 1 ] z C
|
||||
[ 2 0 1 ] z D
|
||||
[ 2 1 0 ] z E
|
||||
[ 2 1 0 ] z F
|
||||
[ 2 1 1 ] z G
|
||||
[ 2 1 1 ] z H
|
||||
[ 2 2 0 ] z I
|
||||
[ 2 2 0 ] z J
|
||||
[ 2 2 1 ] z K
|
||||
[ 2 2 1 ] z L
|
||||
[ 3 0 0 ] z M
|
||||
[ 3 0 0 ] z N
|
||||
[ 3 0 1 ] z P
|
||||
[ 3 0 1 ] z Q
|
||||
[ 3 1 0 ] z R
|
||||
[ 3 1 0 ] z S
|
||||
[ 3 1 1 ] z T
|
||||
[ 3 1 1 ] z U
|
||||
[ 3 2 0 ] z V
|
||||
[ 3 2 0 ] z W
|
||||
[ 3 2 1 ] z X
|
||||
[ 3 2 1 ] z Z
|
||||
47 differences found
|
||||
attribute: <array of </g1>> and <array of </g1>>
|
||||
size: [2] [2]
|
||||
@ -1869,79 +1869,79 @@ 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
|
||||
[ 0 ] z a
|
||||
[ 0 ] z b
|
||||
[ 1 ] z d
|
||||
[ 1 ] z e
|
||||
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
|
||||
[ 0 0 ] z a
|
||||
[ 0 0 ] z b
|
||||
[ 0 1 ] z c
|
||||
[ 0 1 ] z d
|
||||
[ 1 0 ] z e
|
||||
[ 1 0 ] z f
|
||||
[ 1 1 ] z g
|
||||
[ 1 1 ] z h
|
||||
[ 2 0 ] z i
|
||||
[ 2 0 ] z j
|
||||
[ 2 1 ] z k
|
||||
[ 2 1 ] z l
|
||||
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
|
||||
[ 0 0 0 ] z a
|
||||
[ 0 0 0 ] z b
|
||||
[ 0 0 1 ] z c
|
||||
[ 0 0 1 ] z d
|
||||
[ 0 1 0 ] z e
|
||||
[ 0 1 0 ] z f
|
||||
[ 0 1 1 ] z g
|
||||
[ 0 1 1 ] z h
|
||||
[ 0 2 0 ] z i
|
||||
[ 0 2 0 ] z j
|
||||
[ 0 2 1 ] z k
|
||||
[ 0 2 1 ] z l
|
||||
[ 1 0 0 ] z m
|
||||
[ 1 0 0 ] z n
|
||||
[ 1 0 1 ] z p
|
||||
[ 1 0 1 ] z q
|
||||
[ 1 1 0 ] z r
|
||||
[ 1 1 0 ] z s
|
||||
[ 1 1 1 ] z t
|
||||
[ 1 1 1 ] z u
|
||||
[ 1 2 0 ] z v
|
||||
[ 1 2 0 ] z w
|
||||
[ 1 2 1 ] z x
|
||||
[ 2 0 0 ] z A
|
||||
[ 2 0 0 ] z B
|
||||
[ 2 0 1 ] z C
|
||||
[ 2 0 1 ] z D
|
||||
[ 2 1 0 ] z E
|
||||
[ 2 1 0 ] z F
|
||||
[ 2 1 1 ] z G
|
||||
[ 2 1 1 ] z H
|
||||
[ 2 2 0 ] z I
|
||||
[ 2 2 0 ] z J
|
||||
[ 2 2 1 ] z K
|
||||
[ 2 2 1 ] z L
|
||||
[ 3 0 0 ] z M
|
||||
[ 3 0 0 ] z N
|
||||
[ 3 0 1 ] z P
|
||||
[ 3 0 1 ] z Q
|
||||
[ 3 1 0 ] z R
|
||||
[ 3 1 0 ] z S
|
||||
[ 3 1 1 ] z T
|
||||
[ 3 1 1 ] z U
|
||||
[ 3 2 0 ] z V
|
||||
[ 3 2 0 ] z W
|
||||
[ 3 2 1 ] z X
|
||||
[ 3 2 1 ] z Z
|
||||
47 differences found
|
||||
attribute: <vlen of </g1>> and <vlen of </g1>>
|
||||
size: [2] [2]
|
||||
|
@ -45,79 +45,79 @@ 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
|
||||
[ 0 ] z a
|
||||
[ 0 ] z b
|
||||
[ 1 ] z d
|
||||
[ 1 ] z e
|
||||
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
|
||||
[ 0 0 ] z a
|
||||
[ 0 0 ] z b
|
||||
[ 0 1 ] z c
|
||||
[ 0 1 ] z d
|
||||
[ 1 0 ] z e
|
||||
[ 1 0 ] z f
|
||||
[ 1 1 ] z g
|
||||
[ 1 1 ] z h
|
||||
[ 2 0 ] z i
|
||||
[ 2 0 ] z j
|
||||
[ 2 1 ] z k
|
||||
[ 2 1 ] z l
|
||||
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
|
||||
[ 0 0 0 ] z a
|
||||
[ 0 0 0 ] z b
|
||||
[ 0 0 1 ] z c
|
||||
[ 0 0 1 ] z d
|
||||
[ 0 1 0 ] z e
|
||||
[ 0 1 0 ] z f
|
||||
[ 0 1 1 ] z g
|
||||
[ 0 1 1 ] z h
|
||||
[ 0 2 0 ] z i
|
||||
[ 0 2 0 ] z j
|
||||
[ 0 2 1 ] z k
|
||||
[ 0 2 1 ] z l
|
||||
[ 1 0 0 ] z m
|
||||
[ 1 0 0 ] z n
|
||||
[ 1 0 1 ] z p
|
||||
[ 1 0 1 ] z q
|
||||
[ 1 1 0 ] z r
|
||||
[ 1 1 0 ] z s
|
||||
[ 1 1 1 ] z t
|
||||
[ 1 1 1 ] z u
|
||||
[ 1 2 0 ] z v
|
||||
[ 1 2 0 ] z w
|
||||
[ 1 2 1 ] z x
|
||||
[ 2 0 0 ] z A
|
||||
[ 2 0 0 ] z B
|
||||
[ 2 0 1 ] z C
|
||||
[ 2 0 1 ] z D
|
||||
[ 2 1 0 ] z E
|
||||
[ 2 1 0 ] z F
|
||||
[ 2 1 1 ] z G
|
||||
[ 2 1 1 ] z H
|
||||
[ 2 2 0 ] z I
|
||||
[ 2 2 0 ] z J
|
||||
[ 2 2 1 ] z K
|
||||
[ 2 2 1 ] z L
|
||||
[ 3 0 0 ] z M
|
||||
[ 3 0 0 ] z N
|
||||
[ 3 0 1 ] z P
|
||||
[ 3 0 1 ] z Q
|
||||
[ 3 1 0 ] z R
|
||||
[ 3 1 0 ] z S
|
||||
[ 3 1 1 ] z T
|
||||
[ 3 1 1 ] z U
|
||||
[ 3 2 0 ] z V
|
||||
[ 3 2 0 ] z W
|
||||
[ 3 2 1 ] z X
|
||||
[ 3 2 1 ] z Z
|
||||
47 differences found
|
||||
attribute: <array of </>> and <array of </>>
|
||||
size: [2] [2]
|
||||
@ -548,79 +548,79 @@ 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
|
||||
[ 0 ] z a
|
||||
[ 0 ] z b
|
||||
[ 1 ] z d
|
||||
[ 1 ] z e
|
||||
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
|
||||
[ 0 0 ] z a
|
||||
[ 0 0 ] z b
|
||||
[ 0 1 ] z c
|
||||
[ 0 1 ] z d
|
||||
[ 1 0 ] z e
|
||||
[ 1 0 ] z f
|
||||
[ 1 1 ] z g
|
||||
[ 1 1 ] z h
|
||||
[ 2 0 ] z i
|
||||
[ 2 0 ] z j
|
||||
[ 2 1 ] z k
|
||||
[ 2 1 ] z l
|
||||
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
|
||||
[ 0 0 0 ] z a
|
||||
[ 0 0 0 ] z b
|
||||
[ 0 0 1 ] z c
|
||||
[ 0 0 1 ] z d
|
||||
[ 0 1 0 ] z e
|
||||
[ 0 1 0 ] z f
|
||||
[ 0 1 1 ] z g
|
||||
[ 0 1 1 ] z h
|
||||
[ 0 2 0 ] z i
|
||||
[ 0 2 0 ] z j
|
||||
[ 0 2 1 ] z k
|
||||
[ 0 2 1 ] z l
|
||||
[ 1 0 0 ] z m
|
||||
[ 1 0 0 ] z n
|
||||
[ 1 0 1 ] z p
|
||||
[ 1 0 1 ] z q
|
||||
[ 1 1 0 ] z r
|
||||
[ 1 1 0 ] z s
|
||||
[ 1 1 1 ] z t
|
||||
[ 1 1 1 ] z u
|
||||
[ 1 2 0 ] z v
|
||||
[ 1 2 0 ] z w
|
||||
[ 1 2 1 ] z x
|
||||
[ 2 0 0 ] z A
|
||||
[ 2 0 0 ] z B
|
||||
[ 2 0 1 ] z C
|
||||
[ 2 0 1 ] z D
|
||||
[ 2 1 0 ] z E
|
||||
[ 2 1 0 ] z F
|
||||
[ 2 1 1 ] z G
|
||||
[ 2 1 1 ] z H
|
||||
[ 2 2 0 ] z I
|
||||
[ 2 2 0 ] z J
|
||||
[ 2 2 1 ] z K
|
||||
[ 2 2 1 ] z L
|
||||
[ 3 0 0 ] z M
|
||||
[ 3 0 0 ] z N
|
||||
[ 3 0 1 ] z P
|
||||
[ 3 0 1 ] z Q
|
||||
[ 3 1 0 ] z R
|
||||
[ 3 1 0 ] z S
|
||||
[ 3 1 1 ] z T
|
||||
[ 3 1 1 ] z U
|
||||
[ 3 2 0 ] z V
|
||||
[ 3 2 0 ] z W
|
||||
[ 3 2 1 ] z X
|
||||
[ 3 2 1 ] z Z
|
||||
47 differences found
|
||||
attribute: <vlen of </>> and <vlen of </>>
|
||||
size: [2] [2]
|
||||
@ -754,79 +754,79 @@ 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
|
||||
[ 0 ] z a
|
||||
[ 0 ] z b
|
||||
[ 1 ] z d
|
||||
[ 1 ] z e
|
||||
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
|
||||
[ 0 0 ] z a
|
||||
[ 0 0 ] z b
|
||||
[ 0 1 ] z c
|
||||
[ 0 1 ] z d
|
||||
[ 1 0 ] z e
|
||||
[ 1 0 ] z f
|
||||
[ 1 1 ] z g
|
||||
[ 1 1 ] z h
|
||||
[ 2 0 ] z i
|
||||
[ 2 0 ] z j
|
||||
[ 2 1 ] z k
|
||||
[ 2 1 ] z l
|
||||
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
|
||||
[ 0 0 0 ] z a
|
||||
[ 0 0 0 ] z b
|
||||
[ 0 0 1 ] z c
|
||||
[ 0 0 1 ] z d
|
||||
[ 0 1 0 ] z e
|
||||
[ 0 1 0 ] z f
|
||||
[ 0 1 1 ] z g
|
||||
[ 0 1 1 ] z h
|
||||
[ 0 2 0 ] z i
|
||||
[ 0 2 0 ] z j
|
||||
[ 0 2 1 ] z k
|
||||
[ 0 2 1 ] z l
|
||||
[ 1 0 0 ] z m
|
||||
[ 1 0 0 ] z n
|
||||
[ 1 0 1 ] z p
|
||||
[ 1 0 1 ] z q
|
||||
[ 1 1 0 ] z r
|
||||
[ 1 1 0 ] z s
|
||||
[ 1 1 1 ] z t
|
||||
[ 1 1 1 ] z u
|
||||
[ 1 2 0 ] z v
|
||||
[ 1 2 0 ] z w
|
||||
[ 1 2 1 ] z x
|
||||
[ 2 0 0 ] z A
|
||||
[ 2 0 0 ] z B
|
||||
[ 2 0 1 ] z C
|
||||
[ 2 0 1 ] z D
|
||||
[ 2 1 0 ] z E
|
||||
[ 2 1 0 ] z F
|
||||
[ 2 1 1 ] z G
|
||||
[ 2 1 1 ] z H
|
||||
[ 2 2 0 ] z I
|
||||
[ 2 2 0 ] z J
|
||||
[ 2 2 1 ] z K
|
||||
[ 2 2 1 ] z L
|
||||
[ 3 0 0 ] z M
|
||||
[ 3 0 0 ] z N
|
||||
[ 3 0 1 ] z P
|
||||
[ 3 0 1 ] z Q
|
||||
[ 3 1 0 ] z R
|
||||
[ 3 1 0 ] z S
|
||||
[ 3 1 1 ] z T
|
||||
[ 3 1 1 ] z U
|
||||
[ 3 2 0 ] z V
|
||||
[ 3 2 0 ] z W
|
||||
[ 3 2 1 ] z X
|
||||
[ 3 2 1 ] z Z
|
||||
47 differences found
|
||||
attribute: <array of </dset>> and <array of </dset>>
|
||||
size: [2] [2]
|
||||
@ -1263,79 +1263,79 @@ 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
|
||||
[ 0 ] z a
|
||||
[ 0 ] z b
|
||||
[ 1 ] z d
|
||||
[ 1 ] z e
|
||||
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
|
||||
[ 0 0 ] z a
|
||||
[ 0 0 ] z b
|
||||
[ 0 1 ] z c
|
||||
[ 0 1 ] z d
|
||||
[ 1 0 ] z e
|
||||
[ 1 0 ] z f
|
||||
[ 1 1 ] z g
|
||||
[ 1 1 ] z h
|
||||
[ 2 0 ] z i
|
||||
[ 2 0 ] z j
|
||||
[ 2 1 ] z k
|
||||
[ 2 1 ] z l
|
||||
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
|
||||
[ 0 0 0 ] z a
|
||||
[ 0 0 0 ] z b
|
||||
[ 0 0 1 ] z c
|
||||
[ 0 0 1 ] z d
|
||||
[ 0 1 0 ] z e
|
||||
[ 0 1 0 ] z f
|
||||
[ 0 1 1 ] z g
|
||||
[ 0 1 1 ] z h
|
||||
[ 0 2 0 ] z i
|
||||
[ 0 2 0 ] z j
|
||||
[ 0 2 1 ] z k
|
||||
[ 0 2 1 ] z l
|
||||
[ 1 0 0 ] z m
|
||||
[ 1 0 0 ] z n
|
||||
[ 1 0 1 ] z p
|
||||
[ 1 0 1 ] z q
|
||||
[ 1 1 0 ] z r
|
||||
[ 1 1 0 ] z s
|
||||
[ 1 1 1 ] z t
|
||||
[ 1 1 1 ] z u
|
||||
[ 1 2 0 ] z v
|
||||
[ 1 2 0 ] z w
|
||||
[ 1 2 1 ] z x
|
||||
[ 2 0 0 ] z A
|
||||
[ 2 0 0 ] z B
|
||||
[ 2 0 1 ] z C
|
||||
[ 2 0 1 ] z D
|
||||
[ 2 1 0 ] z E
|
||||
[ 2 1 0 ] z F
|
||||
[ 2 1 1 ] z G
|
||||
[ 2 1 1 ] z H
|
||||
[ 2 2 0 ] z I
|
||||
[ 2 2 0 ] z J
|
||||
[ 2 2 1 ] z K
|
||||
[ 2 2 1 ] z L
|
||||
[ 3 0 0 ] z M
|
||||
[ 3 0 0 ] z N
|
||||
[ 3 0 1 ] z P
|
||||
[ 3 0 1 ] z Q
|
||||
[ 3 1 0 ] z R
|
||||
[ 3 1 0 ] z S
|
||||
[ 3 1 1 ] z T
|
||||
[ 3 1 1 ] z U
|
||||
[ 3 2 0 ] z V
|
||||
[ 3 2 0 ] z W
|
||||
[ 3 2 1 ] z X
|
||||
[ 3 2 1 ] z Z
|
||||
47 differences found
|
||||
attribute: <vlen of </dset>> and <vlen of </dset>>
|
||||
size: [2] [2]
|
||||
@ -1465,79 +1465,79 @@ 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
|
||||
[ 0 ] z a
|
||||
[ 0 ] z b
|
||||
[ 1 ] z d
|
||||
[ 1 ] z e
|
||||
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
|
||||
[ 0 0 ] z a
|
||||
[ 0 0 ] z b
|
||||
[ 0 1 ] z c
|
||||
[ 0 1 ] z d
|
||||
[ 1 0 ] z e
|
||||
[ 1 0 ] z f
|
||||
[ 1 1 ] z g
|
||||
[ 1 1 ] z h
|
||||
[ 2 0 ] z i
|
||||
[ 2 0 ] z j
|
||||
[ 2 1 ] z k
|
||||
[ 2 1 ] z l
|
||||
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
|
||||
[ 0 0 0 ] z a
|
||||
[ 0 0 0 ] z b
|
||||
[ 0 0 1 ] z c
|
||||
[ 0 0 1 ] z d
|
||||
[ 0 1 0 ] z e
|
||||
[ 0 1 0 ] z f
|
||||
[ 0 1 1 ] z g
|
||||
[ 0 1 1 ] z h
|
||||
[ 0 2 0 ] z i
|
||||
[ 0 2 0 ] z j
|
||||
[ 0 2 1 ] z k
|
||||
[ 0 2 1 ] z l
|
||||
[ 1 0 0 ] z m
|
||||
[ 1 0 0 ] z n
|
||||
[ 1 0 1 ] z p
|
||||
[ 1 0 1 ] z q
|
||||
[ 1 1 0 ] z r
|
||||
[ 1 1 0 ] z s
|
||||
[ 1 1 1 ] z t
|
||||
[ 1 1 1 ] z u
|
||||
[ 1 2 0 ] z v
|
||||
[ 1 2 0 ] z w
|
||||
[ 1 2 1 ] z x
|
||||
[ 2 0 0 ] z A
|
||||
[ 2 0 0 ] z B
|
||||
[ 2 0 1 ] z C
|
||||
[ 2 0 1 ] z D
|
||||
[ 2 1 0 ] z E
|
||||
[ 2 1 0 ] z F
|
||||
[ 2 1 1 ] z G
|
||||
[ 2 1 1 ] z H
|
||||
[ 2 2 0 ] z I
|
||||
[ 2 2 0 ] z J
|
||||
[ 2 2 1 ] z K
|
||||
[ 2 2 1 ] z L
|
||||
[ 3 0 0 ] z M
|
||||
[ 3 0 0 ] z N
|
||||
[ 3 0 1 ] z P
|
||||
[ 3 0 1 ] z Q
|
||||
[ 3 1 0 ] z R
|
||||
[ 3 1 0 ] z S
|
||||
[ 3 1 1 ] z T
|
||||
[ 3 1 1 ] z U
|
||||
[ 3 2 0 ] z V
|
||||
[ 3 2 0 ] z W
|
||||
[ 3 2 1 ] z X
|
||||
[ 3 2 1 ] z Z
|
||||
47 differences found
|
||||
attribute: <array of </g1>> and <array of </g1>>
|
||||
size: [2] [2]
|
||||
@ -1968,79 +1968,79 @@ 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
|
||||
[ 0 ] z a
|
||||
[ 0 ] z b
|
||||
[ 1 ] z d
|
||||
[ 1 ] z e
|
||||
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
|
||||
[ 0 0 ] z a
|
||||
[ 0 0 ] z b
|
||||
[ 0 1 ] z c
|
||||
[ 0 1 ] z d
|
||||
[ 1 0 ] z e
|
||||
[ 1 0 ] z f
|
||||
[ 1 1 ] z g
|
||||
[ 1 1 ] z h
|
||||
[ 2 0 ] z i
|
||||
[ 2 0 ] z j
|
||||
[ 2 1 ] z k
|
||||
[ 2 1 ] z l
|
||||
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
|
||||
[ 0 0 0 ] z a
|
||||
[ 0 0 0 ] z b
|
||||
[ 0 0 1 ] z c
|
||||
[ 0 0 1 ] z d
|
||||
[ 0 1 0 ] z e
|
||||
[ 0 1 0 ] z f
|
||||
[ 0 1 1 ] z g
|
||||
[ 0 1 1 ] z h
|
||||
[ 0 2 0 ] z i
|
||||
[ 0 2 0 ] z j
|
||||
[ 0 2 1 ] z k
|
||||
[ 0 2 1 ] z l
|
||||
[ 1 0 0 ] z m
|
||||
[ 1 0 0 ] z n
|
||||
[ 1 0 1 ] z p
|
||||
[ 1 0 1 ] z q
|
||||
[ 1 1 0 ] z r
|
||||
[ 1 1 0 ] z s
|
||||
[ 1 1 1 ] z t
|
||||
[ 1 1 1 ] z u
|
||||
[ 1 2 0 ] z v
|
||||
[ 1 2 0 ] z w
|
||||
[ 1 2 1 ] z x
|
||||
[ 2 0 0 ] z A
|
||||
[ 2 0 0 ] z B
|
||||
[ 2 0 1 ] z C
|
||||
[ 2 0 1 ] z D
|
||||
[ 2 1 0 ] z E
|
||||
[ 2 1 0 ] z F
|
||||
[ 2 1 1 ] z G
|
||||
[ 2 1 1 ] z H
|
||||
[ 2 2 0 ] z I
|
||||
[ 2 2 0 ] z J
|
||||
[ 2 2 1 ] z K
|
||||
[ 2 2 1 ] z L
|
||||
[ 3 0 0 ] z M
|
||||
[ 3 0 0 ] z N
|
||||
[ 3 0 1 ] z P
|
||||
[ 3 0 1 ] z Q
|
||||
[ 3 1 0 ] z R
|
||||
[ 3 1 0 ] z S
|
||||
[ 3 1 1 ] z T
|
||||
[ 3 1 1 ] z U
|
||||
[ 3 2 0 ] z V
|
||||
[ 3 2 0 ] z W
|
||||
[ 3 2 1 ] z X
|
||||
[ 3 2 1 ] z Z
|
||||
47 differences found
|
||||
attribute: <vlen of </g1>> and <vlen of </g1>>
|
||||
size: [2] [2]
|
||||
|
@ -13,79 +13,79 @@ 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
|
||||
[ 0 ] z a
|
||||
[ 0 ] z b
|
||||
[ 1 ] z d
|
||||
[ 1 ] z e
|
||||
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
|
||||
[ 0 0 ] z a
|
||||
[ 0 0 ] z b
|
||||
[ 0 1 ] z c
|
||||
[ 0 1 ] z d
|
||||
[ 1 0 ] z e
|
||||
[ 1 0 ] z f
|
||||
[ 1 1 ] z g
|
||||
[ 1 1 ] z h
|
||||
[ 2 0 ] z i
|
||||
[ 2 0 ] z j
|
||||
[ 2 1 ] z k
|
||||
[ 2 1 ] z l
|
||||
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
|
||||
[ 0 0 0 ] z a
|
||||
[ 0 0 0 ] z b
|
||||
[ 0 0 1 ] z c
|
||||
[ 0 0 1 ] z d
|
||||
[ 0 1 0 ] z e
|
||||
[ 0 1 0 ] z f
|
||||
[ 0 1 1 ] z g
|
||||
[ 0 1 1 ] z h
|
||||
[ 0 2 0 ] z i
|
||||
[ 0 2 0 ] z j
|
||||
[ 0 2 1 ] z k
|
||||
[ 0 2 1 ] z l
|
||||
[ 1 0 0 ] z m
|
||||
[ 1 0 0 ] z n
|
||||
[ 1 0 1 ] z p
|
||||
[ 1 0 1 ] z q
|
||||
[ 1 1 0 ] z r
|
||||
[ 1 1 0 ] z s
|
||||
[ 1 1 1 ] z t
|
||||
[ 1 1 1 ] z u
|
||||
[ 1 2 0 ] z v
|
||||
[ 1 2 0 ] z w
|
||||
[ 1 2 1 ] z x
|
||||
[ 2 0 0 ] z A
|
||||
[ 2 0 0 ] z B
|
||||
[ 2 0 1 ] z C
|
||||
[ 2 0 1 ] z D
|
||||
[ 2 1 0 ] z E
|
||||
[ 2 1 0 ] z F
|
||||
[ 2 1 1 ] z G
|
||||
[ 2 1 1 ] z H
|
||||
[ 2 2 0 ] z I
|
||||
[ 2 2 0 ] z J
|
||||
[ 2 2 1 ] z K
|
||||
[ 2 2 1 ] z L
|
||||
[ 3 0 0 ] z M
|
||||
[ 3 0 0 ] z N
|
||||
[ 3 0 1 ] z P
|
||||
[ 3 0 1 ] z Q
|
||||
[ 3 1 0 ] z R
|
||||
[ 3 1 0 ] z S
|
||||
[ 3 1 1 ] z T
|
||||
[ 3 1 1 ] z U
|
||||
[ 3 2 0 ] z V
|
||||
[ 3 2 0 ] z W
|
||||
[ 3 2 1 ] z X
|
||||
[ 3 2 1 ] z Z
|
||||
47 differences found
|
||||
attribute: <array of </>> and <array of </>>
|
||||
size: [2] [2]
|
||||
@ -516,79 +516,79 @@ 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
|
||||
[ 0 ] z a
|
||||
[ 0 ] z b
|
||||
[ 1 ] z d
|
||||
[ 1 ] z e
|
||||
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
|
||||
[ 0 0 ] z a
|
||||
[ 0 0 ] z b
|
||||
[ 0 1 ] z c
|
||||
[ 0 1 ] z d
|
||||
[ 1 0 ] z e
|
||||
[ 1 0 ] z f
|
||||
[ 1 1 ] z g
|
||||
[ 1 1 ] z h
|
||||
[ 2 0 ] z i
|
||||
[ 2 0 ] z j
|
||||
[ 2 1 ] z k
|
||||
[ 2 1 ] z l
|
||||
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
|
||||
[ 0 0 0 ] z a
|
||||
[ 0 0 0 ] z b
|
||||
[ 0 0 1 ] z c
|
||||
[ 0 0 1 ] z d
|
||||
[ 0 1 0 ] z e
|
||||
[ 0 1 0 ] z f
|
||||
[ 0 1 1 ] z g
|
||||
[ 0 1 1 ] z h
|
||||
[ 0 2 0 ] z i
|
||||
[ 0 2 0 ] z j
|
||||
[ 0 2 1 ] z k
|
||||
[ 0 2 1 ] z l
|
||||
[ 1 0 0 ] z m
|
||||
[ 1 0 0 ] z n
|
||||
[ 1 0 1 ] z p
|
||||
[ 1 0 1 ] z q
|
||||
[ 1 1 0 ] z r
|
||||
[ 1 1 0 ] z s
|
||||
[ 1 1 1 ] z t
|
||||
[ 1 1 1 ] z u
|
||||
[ 1 2 0 ] z v
|
||||
[ 1 2 0 ] z w
|
||||
[ 1 2 1 ] z x
|
||||
[ 2 0 0 ] z A
|
||||
[ 2 0 0 ] z B
|
||||
[ 2 0 1 ] z C
|
||||
[ 2 0 1 ] z D
|
||||
[ 2 1 0 ] z E
|
||||
[ 2 1 0 ] z F
|
||||
[ 2 1 1 ] z G
|
||||
[ 2 1 1 ] z H
|
||||
[ 2 2 0 ] z I
|
||||
[ 2 2 0 ] z J
|
||||
[ 2 2 1 ] z K
|
||||
[ 2 2 1 ] z L
|
||||
[ 3 0 0 ] z M
|
||||
[ 3 0 0 ] z N
|
||||
[ 3 0 1 ] z P
|
||||
[ 3 0 1 ] z Q
|
||||
[ 3 1 0 ] z R
|
||||
[ 3 1 0 ] z S
|
||||
[ 3 1 1 ] z T
|
||||
[ 3 1 1 ] z U
|
||||
[ 3 2 0 ] z V
|
||||
[ 3 2 0 ] z W
|
||||
[ 3 2 1 ] z X
|
||||
[ 3 2 1 ] z Z
|
||||
47 differences found
|
||||
attribute: <vlen of </>> and <vlen of </>>
|
||||
size: [2] [2]
|
||||
@ -687,79 +687,79 @@ 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
|
||||
[ 0 ] z a
|
||||
[ 0 ] z b
|
||||
[ 1 ] z d
|
||||
[ 1 ] z e
|
||||
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
|
||||
[ 0 0 ] z a
|
||||
[ 0 0 ] z b
|
||||
[ 0 1 ] z c
|
||||
[ 0 1 ] z d
|
||||
[ 1 0 ] z e
|
||||
[ 1 0 ] z f
|
||||
[ 1 1 ] z g
|
||||
[ 1 1 ] z h
|
||||
[ 2 0 ] z i
|
||||
[ 2 0 ] z j
|
||||
[ 2 1 ] z k
|
||||
[ 2 1 ] z l
|
||||
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
|
||||
[ 0 0 0 ] z a
|
||||
[ 0 0 0 ] z b
|
||||
[ 0 0 1 ] z c
|
||||
[ 0 0 1 ] z d
|
||||
[ 0 1 0 ] z e
|
||||
[ 0 1 0 ] z f
|
||||
[ 0 1 1 ] z g
|
||||
[ 0 1 1 ] z h
|
||||
[ 0 2 0 ] z i
|
||||
[ 0 2 0 ] z j
|
||||
[ 0 2 1 ] z k
|
||||
[ 0 2 1 ] z l
|
||||
[ 1 0 0 ] z m
|
||||
[ 1 0 0 ] z n
|
||||
[ 1 0 1 ] z p
|
||||
[ 1 0 1 ] z q
|
||||
[ 1 1 0 ] z r
|
||||
[ 1 1 0 ] z s
|
||||
[ 1 1 1 ] z t
|
||||
[ 1 1 1 ] z u
|
||||
[ 1 2 0 ] z v
|
||||
[ 1 2 0 ] z w
|
||||
[ 1 2 1 ] z x
|
||||
[ 2 0 0 ] z A
|
||||
[ 2 0 0 ] z B
|
||||
[ 2 0 1 ] z C
|
||||
[ 2 0 1 ] z D
|
||||
[ 2 1 0 ] z E
|
||||
[ 2 1 0 ] z F
|
||||
[ 2 1 1 ] z G
|
||||
[ 2 1 1 ] z H
|
||||
[ 2 2 0 ] z I
|
||||
[ 2 2 0 ] z J
|
||||
[ 2 2 1 ] z K
|
||||
[ 2 2 1 ] z L
|
||||
[ 3 0 0 ] z M
|
||||
[ 3 0 0 ] z N
|
||||
[ 3 0 1 ] z P
|
||||
[ 3 0 1 ] z Q
|
||||
[ 3 1 0 ] z R
|
||||
[ 3 1 0 ] z S
|
||||
[ 3 1 1 ] z T
|
||||
[ 3 1 1 ] z U
|
||||
[ 3 2 0 ] z V
|
||||
[ 3 2 0 ] z W
|
||||
[ 3 2 1 ] z X
|
||||
[ 3 2 1 ] z Z
|
||||
47 differences found
|
||||
attribute: <array of </dset>> and <array of </dset>>
|
||||
size: [2] [2]
|
||||
@ -1196,79 +1196,79 @@ 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
|
||||
[ 0 ] z a
|
||||
[ 0 ] z b
|
||||
[ 1 ] z d
|
||||
[ 1 ] z e
|
||||
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
|
||||
[ 0 0 ] z a
|
||||
[ 0 0 ] z b
|
||||
[ 0 1 ] z c
|
||||
[ 0 1 ] z d
|
||||
[ 1 0 ] z e
|
||||
[ 1 0 ] z f
|
||||
[ 1 1 ] z g
|
||||
[ 1 1 ] z h
|
||||
[ 2 0 ] z i
|
||||
[ 2 0 ] z j
|
||||
[ 2 1 ] z k
|
||||
[ 2 1 ] z l
|
||||
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
|
||||
[ 0 0 0 ] z a
|
||||
[ 0 0 0 ] z b
|
||||
[ 0 0 1 ] z c
|
||||
[ 0 0 1 ] z d
|
||||
[ 0 1 0 ] z e
|
||||
[ 0 1 0 ] z f
|
||||
[ 0 1 1 ] z g
|
||||
[ 0 1 1 ] z h
|
||||
[ 0 2 0 ] z i
|
||||
[ 0 2 0 ] z j
|
||||
[ 0 2 1 ] z k
|
||||
[ 0 2 1 ] z l
|
||||
[ 1 0 0 ] z m
|
||||
[ 1 0 0 ] z n
|
||||
[ 1 0 1 ] z p
|
||||
[ 1 0 1 ] z q
|
||||
[ 1 1 0 ] z r
|
||||
[ 1 1 0 ] z s
|
||||
[ 1 1 1 ] z t
|
||||
[ 1 1 1 ] z u
|
||||
[ 1 2 0 ] z v
|
||||
[ 1 2 0 ] z w
|
||||
[ 1 2 1 ] z x
|
||||
[ 2 0 0 ] z A
|
||||
[ 2 0 0 ] z B
|
||||
[ 2 0 1 ] z C
|
||||
[ 2 0 1 ] z D
|
||||
[ 2 1 0 ] z E
|
||||
[ 2 1 0 ] z F
|
||||
[ 2 1 1 ] z G
|
||||
[ 2 1 1 ] z H
|
||||
[ 2 2 0 ] z I
|
||||
[ 2 2 0 ] z J
|
||||
[ 2 2 1 ] z K
|
||||
[ 2 2 1 ] z L
|
||||
[ 3 0 0 ] z M
|
||||
[ 3 0 0 ] z N
|
||||
[ 3 0 1 ] z P
|
||||
[ 3 0 1 ] z Q
|
||||
[ 3 1 0 ] z R
|
||||
[ 3 1 0 ] z S
|
||||
[ 3 1 1 ] z T
|
||||
[ 3 1 1 ] z U
|
||||
[ 3 2 0 ] z V
|
||||
[ 3 2 0 ] z W
|
||||
[ 3 2 1 ] z X
|
||||
[ 3 2 1 ] z Z
|
||||
47 differences found
|
||||
attribute: <vlen of </dset>> and <vlen of </dset>>
|
||||
size: [2] [2]
|
||||
@ -1366,79 +1366,79 @@ 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
|
||||
[ 0 ] z a
|
||||
[ 0 ] z b
|
||||
[ 1 ] z d
|
||||
[ 1 ] z e
|
||||
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
|
||||
[ 0 0 ] z a
|
||||
[ 0 0 ] z b
|
||||
[ 0 1 ] z c
|
||||
[ 0 1 ] z d
|
||||
[ 1 0 ] z e
|
||||
[ 1 0 ] z f
|
||||
[ 1 1 ] z g
|
||||
[ 1 1 ] z h
|
||||
[ 2 0 ] z i
|
||||
[ 2 0 ] z j
|
||||
[ 2 1 ] z k
|
||||
[ 2 1 ] z l
|
||||
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
|
||||
[ 0 0 0 ] z a
|
||||
[ 0 0 0 ] z b
|
||||
[ 0 0 1 ] z c
|
||||
[ 0 0 1 ] z d
|
||||
[ 0 1 0 ] z e
|
||||
[ 0 1 0 ] z f
|
||||
[ 0 1 1 ] z g
|
||||
[ 0 1 1 ] z h
|
||||
[ 0 2 0 ] z i
|
||||
[ 0 2 0 ] z j
|
||||
[ 0 2 1 ] z k
|
||||
[ 0 2 1 ] z l
|
||||
[ 1 0 0 ] z m
|
||||
[ 1 0 0 ] z n
|
||||
[ 1 0 1 ] z p
|
||||
[ 1 0 1 ] z q
|
||||
[ 1 1 0 ] z r
|
||||
[ 1 1 0 ] z s
|
||||
[ 1 1 1 ] z t
|
||||
[ 1 1 1 ] z u
|
||||
[ 1 2 0 ] z v
|
||||
[ 1 2 0 ] z w
|
||||
[ 1 2 1 ] z x
|
||||
[ 2 0 0 ] z A
|
||||
[ 2 0 0 ] z B
|
||||
[ 2 0 1 ] z C
|
||||
[ 2 0 1 ] z D
|
||||
[ 2 1 0 ] z E
|
||||
[ 2 1 0 ] z F
|
||||
[ 2 1 1 ] z G
|
||||
[ 2 1 1 ] z H
|
||||
[ 2 2 0 ] z I
|
||||
[ 2 2 0 ] z J
|
||||
[ 2 2 1 ] z K
|
||||
[ 2 2 1 ] z L
|
||||
[ 3 0 0 ] z M
|
||||
[ 3 0 0 ] z N
|
||||
[ 3 0 1 ] z P
|
||||
[ 3 0 1 ] z Q
|
||||
[ 3 1 0 ] z R
|
||||
[ 3 1 0 ] z S
|
||||
[ 3 1 1 ] z T
|
||||
[ 3 1 1 ] z U
|
||||
[ 3 2 0 ] z V
|
||||
[ 3 2 0 ] z W
|
||||
[ 3 2 1 ] z X
|
||||
[ 3 2 1 ] z Z
|
||||
47 differences found
|
||||
attribute: <array of </g1>> and <array of </g1>>
|
||||
size: [2] [2]
|
||||
@ -1869,79 +1869,79 @@ 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
|
||||
[ 0 ] z a
|
||||
[ 0 ] z b
|
||||
[ 1 ] z d
|
||||
[ 1 ] z e
|
||||
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
|
||||
[ 0 0 ] z a
|
||||
[ 0 0 ] z b
|
||||
[ 0 1 ] z c
|
||||
[ 0 1 ] z d
|
||||
[ 1 0 ] z e
|
||||
[ 1 0 ] z f
|
||||
[ 1 1 ] z g
|
||||
[ 1 1 ] z h
|
||||
[ 2 0 ] z i
|
||||
[ 2 0 ] z j
|
||||
[ 2 1 ] z k
|
||||
[ 2 1 ] z l
|
||||
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
|
||||
[ 0 0 0 ] z a
|
||||
[ 0 0 0 ] z b
|
||||
[ 0 0 1 ] z c
|
||||
[ 0 0 1 ] z d
|
||||
[ 0 1 0 ] z e
|
||||
[ 0 1 0 ] z f
|
||||
[ 0 1 1 ] z g
|
||||
[ 0 1 1 ] z h
|
||||
[ 0 2 0 ] z i
|
||||
[ 0 2 0 ] z j
|
||||
[ 0 2 1 ] z k
|
||||
[ 0 2 1 ] z l
|
||||
[ 1 0 0 ] z m
|
||||
[ 1 0 0 ] z n
|
||||
[ 1 0 1 ] z p
|
||||
[ 1 0 1 ] z q
|
||||
[ 1 1 0 ] z r
|
||||
[ 1 1 0 ] z s
|
||||
[ 1 1 1 ] z t
|
||||
[ 1 1 1 ] z u
|
||||
[ 1 2 0 ] z v
|
||||
[ 1 2 0 ] z w
|
||||
[ 1 2 1 ] z x
|
||||
[ 2 0 0 ] z A
|
||||
[ 2 0 0 ] z B
|
||||
[ 2 0 1 ] z C
|
||||
[ 2 0 1 ] z D
|
||||
[ 2 1 0 ] z E
|
||||
[ 2 1 0 ] z F
|
||||
[ 2 1 1 ] z G
|
||||
[ 2 1 1 ] z H
|
||||
[ 2 2 0 ] z I
|
||||
[ 2 2 0 ] z J
|
||||
[ 2 2 1 ] z K
|
||||
[ 2 2 1 ] z L
|
||||
[ 3 0 0 ] z M
|
||||
[ 3 0 0 ] z N
|
||||
[ 3 0 1 ] z P
|
||||
[ 3 0 1 ] z Q
|
||||
[ 3 1 0 ] z R
|
||||
[ 3 1 0 ] z S
|
||||
[ 3 1 1 ] z T
|
||||
[ 3 1 1 ] z U
|
||||
[ 3 2 0 ] z V
|
||||
[ 3 2 0 ] z W
|
||||
[ 3 2 1 ] z X
|
||||
[ 3 2 1 ] z Z
|
||||
47 differences found
|
||||
attribute: <vlen of </g1>> and <vlen of </g1>>
|
||||
size: [2] [2]
|
||||
|
@ -45,79 +45,79 @@ 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
|
||||
[ 0 ] z a
|
||||
[ 0 ] z b
|
||||
[ 1 ] z d
|
||||
[ 1 ] z e
|
||||
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
|
||||
[ 0 0 ] z a
|
||||
[ 0 0 ] z b
|
||||
[ 0 1 ] z c
|
||||
[ 0 1 ] z d
|
||||
[ 1 0 ] z e
|
||||
[ 1 0 ] z f
|
||||
[ 1 1 ] z g
|
||||
[ 1 1 ] z h
|
||||
[ 2 0 ] z i
|
||||
[ 2 0 ] z j
|
||||
[ 2 1 ] z k
|
||||
[ 2 1 ] z l
|
||||
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
|
||||
[ 0 0 0 ] z a
|
||||
[ 0 0 0 ] z b
|
||||
[ 0 0 1 ] z c
|
||||
[ 0 0 1 ] z d
|
||||
[ 0 1 0 ] z e
|
||||
[ 0 1 0 ] z f
|
||||
[ 0 1 1 ] z g
|
||||
[ 0 1 1 ] z h
|
||||
[ 0 2 0 ] z i
|
||||
[ 0 2 0 ] z j
|
||||
[ 0 2 1 ] z k
|
||||
[ 0 2 1 ] z l
|
||||
[ 1 0 0 ] z m
|
||||
[ 1 0 0 ] z n
|
||||
[ 1 0 1 ] z p
|
||||
[ 1 0 1 ] z q
|
||||
[ 1 1 0 ] z r
|
||||
[ 1 1 0 ] z s
|
||||
[ 1 1 1 ] z t
|
||||
[ 1 1 1 ] z u
|
||||
[ 1 2 0 ] z v
|
||||
[ 1 2 0 ] z w
|
||||
[ 1 2 1 ] z x
|
||||
[ 2 0 0 ] z A
|
||||
[ 2 0 0 ] z B
|
||||
[ 2 0 1 ] z C
|
||||
[ 2 0 1 ] z D
|
||||
[ 2 1 0 ] z E
|
||||
[ 2 1 0 ] z F
|
||||
[ 2 1 1 ] z G
|
||||
[ 2 1 1 ] z H
|
||||
[ 2 2 0 ] z I
|
||||
[ 2 2 0 ] z J
|
||||
[ 2 2 1 ] z K
|
||||
[ 2 2 1 ] z L
|
||||
[ 3 0 0 ] z M
|
||||
[ 3 0 0 ] z N
|
||||
[ 3 0 1 ] z P
|
||||
[ 3 0 1 ] z Q
|
||||
[ 3 1 0 ] z R
|
||||
[ 3 1 0 ] z S
|
||||
[ 3 1 1 ] z T
|
||||
[ 3 1 1 ] z U
|
||||
[ 3 2 0 ] z V
|
||||
[ 3 2 0 ] z W
|
||||
[ 3 2 1 ] z X
|
||||
[ 3 2 1 ] z Z
|
||||
47 differences found
|
||||
attribute: <array of </>> and <array of </>>
|
||||
size: [2] [2]
|
||||
@ -548,79 +548,79 @@ 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
|
||||
[ 0 ] z a
|
||||
[ 0 ] z b
|
||||
[ 1 ] z d
|
||||
[ 1 ] z e
|
||||
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
|
||||
[ 0 0 ] z a
|
||||
[ 0 0 ] z b
|
||||
[ 0 1 ] z c
|
||||
[ 0 1 ] z d
|
||||
[ 1 0 ] z e
|
||||
[ 1 0 ] z f
|
||||
[ 1 1 ] z g
|
||||
[ 1 1 ] z h
|
||||
[ 2 0 ] z i
|
||||
[ 2 0 ] z j
|
||||
[ 2 1 ] z k
|
||||
[ 2 1 ] z l
|
||||
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
|
||||
[ 0 0 0 ] z a
|
||||
[ 0 0 0 ] z b
|
||||
[ 0 0 1 ] z c
|
||||
[ 0 0 1 ] z d
|
||||
[ 0 1 0 ] z e
|
||||
[ 0 1 0 ] z f
|
||||
[ 0 1 1 ] z g
|
||||
[ 0 1 1 ] z h
|
||||
[ 0 2 0 ] z i
|
||||
[ 0 2 0 ] z j
|
||||
[ 0 2 1 ] z k
|
||||
[ 0 2 1 ] z l
|
||||
[ 1 0 0 ] z m
|
||||
[ 1 0 0 ] z n
|
||||
[ 1 0 1 ] z p
|
||||
[ 1 0 1 ] z q
|
||||
[ 1 1 0 ] z r
|
||||
[ 1 1 0 ] z s
|
||||
[ 1 1 1 ] z t
|
||||
[ 1 1 1 ] z u
|
||||
[ 1 2 0 ] z v
|
||||
[ 1 2 0 ] z w
|
||||
[ 1 2 1 ] z x
|
||||
[ 2 0 0 ] z A
|
||||
[ 2 0 0 ] z B
|
||||
[ 2 0 1 ] z C
|
||||
[ 2 0 1 ] z D
|
||||
[ 2 1 0 ] z E
|
||||
[ 2 1 0 ] z F
|
||||
[ 2 1 1 ] z G
|
||||
[ 2 1 1 ] z H
|
||||
[ 2 2 0 ] z I
|
||||
[ 2 2 0 ] z J
|
||||
[ 2 2 1 ] z K
|
||||
[ 2 2 1 ] z L
|
||||
[ 3 0 0 ] z M
|
||||
[ 3 0 0 ] z N
|
||||
[ 3 0 1 ] z P
|
||||
[ 3 0 1 ] z Q
|
||||
[ 3 1 0 ] z R
|
||||
[ 3 1 0 ] z S
|
||||
[ 3 1 1 ] z T
|
||||
[ 3 1 1 ] z U
|
||||
[ 3 2 0 ] z V
|
||||
[ 3 2 0 ] z W
|
||||
[ 3 2 1 ] z X
|
||||
[ 3 2 1 ] z Z
|
||||
47 differences found
|
||||
attribute: <vlen of </>> and <vlen of </>>
|
||||
size: [2] [2]
|
||||
@ -754,79 +754,79 @@ 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
|
||||
[ 0 ] z a
|
||||
[ 0 ] z b
|
||||
[ 1 ] z d
|
||||
[ 1 ] z e
|
||||
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
|
||||
[ 0 0 ] z a
|
||||
[ 0 0 ] z b
|
||||
[ 0 1 ] z c
|
||||
[ 0 1 ] z d
|
||||
[ 1 0 ] z e
|
||||
[ 1 0 ] z f
|
||||
[ 1 1 ] z g
|
||||
[ 1 1 ] z h
|
||||
[ 2 0 ] z i
|
||||
[ 2 0 ] z j
|
||||
[ 2 1 ] z k
|
||||
[ 2 1 ] z l
|
||||
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
|
||||
[ 0 0 0 ] z a
|
||||
[ 0 0 0 ] z b
|
||||
[ 0 0 1 ] z c
|
||||
[ 0 0 1 ] z d
|
||||
[ 0 1 0 ] z e
|
||||
[ 0 1 0 ] z f
|
||||
[ 0 1 1 ] z g
|
||||
[ 0 1 1 ] z h
|
||||
[ 0 2 0 ] z i
|
||||
[ 0 2 0 ] z j
|
||||
[ 0 2 1 ] z k
|
||||
[ 0 2 1 ] z l
|
||||
[ 1 0 0 ] z m
|
||||
[ 1 0 0 ] z n
|
||||
[ 1 0 1 ] z p
|
||||
[ 1 0 1 ] z q
|
||||
[ 1 1 0 ] z r
|
||||
[ 1 1 0 ] z s
|
||||
[ 1 1 1 ] z t
|
||||
[ 1 1 1 ] z u
|
||||
[ 1 2 0 ] z v
|
||||
[ 1 2 0 ] z w
|
||||
[ 1 2 1 ] z x
|
||||
[ 2 0 0 ] z A
|
||||
[ 2 0 0 ] z B
|
||||
[ 2 0 1 ] z C
|
||||
[ 2 0 1 ] z D
|
||||
[ 2 1 0 ] z E
|
||||
[ 2 1 0 ] z F
|
||||
[ 2 1 1 ] z G
|
||||
[ 2 1 1 ] z H
|
||||
[ 2 2 0 ] z I
|
||||
[ 2 2 0 ] z J
|
||||
[ 2 2 1 ] z K
|
||||
[ 2 2 1 ] z L
|
||||
[ 3 0 0 ] z M
|
||||
[ 3 0 0 ] z N
|
||||
[ 3 0 1 ] z P
|
||||
[ 3 0 1 ] z Q
|
||||
[ 3 1 0 ] z R
|
||||
[ 3 1 0 ] z S
|
||||
[ 3 1 1 ] z T
|
||||
[ 3 1 1 ] z U
|
||||
[ 3 2 0 ] z V
|
||||
[ 3 2 0 ] z W
|
||||
[ 3 2 1 ] z X
|
||||
[ 3 2 1 ] z Z
|
||||
47 differences found
|
||||
attribute: <array of </dset>> and <array of </dset>>
|
||||
size: [2] [2]
|
||||
@ -1263,79 +1263,79 @@ 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
|
||||
[ 0 ] z a
|
||||
[ 0 ] z b
|
||||
[ 1 ] z d
|
||||
[ 1 ] z e
|
||||
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
|
||||
[ 0 0 ] z a
|
||||
[ 0 0 ] z b
|
||||
[ 0 1 ] z c
|
||||
[ 0 1 ] z d
|
||||
[ 1 0 ] z e
|
||||
[ 1 0 ] z f
|
||||
[ 1 1 ] z g
|
||||
[ 1 1 ] z h
|
||||
[ 2 0 ] z i
|
||||
[ 2 0 ] z j
|
||||
[ 2 1 ] z k
|
||||
[ 2 1 ] z l
|
||||
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
|
||||
[ 0 0 0 ] z a
|
||||
[ 0 0 0 ] z b
|
||||
[ 0 0 1 ] z c
|
||||
[ 0 0 1 ] z d
|
||||
[ 0 1 0 ] z e
|
||||
[ 0 1 0 ] z f
|
||||
[ 0 1 1 ] z g
|
||||
[ 0 1 1 ] z h
|
||||
[ 0 2 0 ] z i
|
||||
[ 0 2 0 ] z j
|
||||
[ 0 2 1 ] z k
|
||||
[ 0 2 1 ] z l
|
||||
[ 1 0 0 ] z m
|
||||
[ 1 0 0 ] z n
|
||||
[ 1 0 1 ] z p
|
||||
[ 1 0 1 ] z q
|
||||
[ 1 1 0 ] z r
|
||||
[ 1 1 0 ] z s
|
||||
[ 1 1 1 ] z t
|
||||
[ 1 1 1 ] z u
|
||||
[ 1 2 0 ] z v
|
||||
[ 1 2 0 ] z w
|
||||
[ 1 2 1 ] z x
|
||||
[ 2 0 0 ] z A
|
||||
[ 2 0 0 ] z B
|
||||
[ 2 0 1 ] z C
|
||||
[ 2 0 1 ] z D
|
||||
[ 2 1 0 ] z E
|
||||
[ 2 1 0 ] z F
|
||||
[ 2 1 1 ] z G
|
||||
[ 2 1 1 ] z H
|
||||
[ 2 2 0 ] z I
|
||||
[ 2 2 0 ] z J
|
||||
[ 2 2 1 ] z K
|
||||
[ 2 2 1 ] z L
|
||||
[ 3 0 0 ] z M
|
||||
[ 3 0 0 ] z N
|
||||
[ 3 0 1 ] z P
|
||||
[ 3 0 1 ] z Q
|
||||
[ 3 1 0 ] z R
|
||||
[ 3 1 0 ] z S
|
||||
[ 3 1 1 ] z T
|
||||
[ 3 1 1 ] z U
|
||||
[ 3 2 0 ] z V
|
||||
[ 3 2 0 ] z W
|
||||
[ 3 2 1 ] z X
|
||||
[ 3 2 1 ] z Z
|
||||
47 differences found
|
||||
attribute: <vlen of </dset>> and <vlen of </dset>>
|
||||
size: [2] [2]
|
||||
@ -1465,79 +1465,79 @@ 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
|
||||
[ 0 ] z a
|
||||
[ 0 ] z b
|
||||
[ 1 ] z d
|
||||
[ 1 ] z e
|
||||
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
|
||||
[ 0 0 ] z a
|
||||
[ 0 0 ] z b
|
||||
[ 0 1 ] z c
|
||||
[ 0 1 ] z d
|
||||
[ 1 0 ] z e
|
||||
[ 1 0 ] z f
|
||||
[ 1 1 ] z g
|
||||
[ 1 1 ] z h
|
||||
[ 2 0 ] z i
|
||||
[ 2 0 ] z j
|
||||
[ 2 1 ] z k
|
||||
[ 2 1 ] z l
|
||||
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
|
||||
[ 0 0 0 ] z a
|
||||
[ 0 0 0 ] z b
|
||||
[ 0 0 1 ] z c
|
||||
[ 0 0 1 ] z d
|
||||
[ 0 1 0 ] z e
|
||||
[ 0 1 0 ] z f
|
||||
[ 0 1 1 ] z g
|
||||
[ 0 1 1 ] z h
|
||||
[ 0 2 0 ] z i
|
||||
[ 0 2 0 ] z j
|
||||
[ 0 2 1 ] z k
|
||||
[ 0 2 1 ] z l
|
||||
[ 1 0 0 ] z m
|
||||
[ 1 0 0 ] z n
|
||||
[ 1 0 1 ] z p
|
||||
[ 1 0 1 ] z q
|
||||
[ 1 1 0 ] z r
|
||||
[ 1 1 0 ] z s
|
||||
[ 1 1 1 ] z t
|
||||
[ 1 1 1 ] z u
|
||||
[ 1 2 0 ] z v
|
||||
[ 1 2 0 ] z w
|
||||
[ 1 2 1 ] z x
|
||||
[ 2 0 0 ] z A
|
||||
[ 2 0 0 ] z B
|
||||
[ 2 0 1 ] z C
|
||||
[ 2 0 1 ] z D
|
||||
[ 2 1 0 ] z E
|
||||
[ 2 1 0 ] z F
|
||||
[ 2 1 1 ] z G
|
||||
[ 2 1 1 ] z H
|
||||
[ 2 2 0 ] z I
|
||||
[ 2 2 0 ] z J
|
||||
[ 2 2 1 ] z K
|
||||
[ 2 2 1 ] z L
|
||||
[ 3 0 0 ] z M
|
||||
[ 3 0 0 ] z N
|
||||
[ 3 0 1 ] z P
|
||||
[ 3 0 1 ] z Q
|
||||
[ 3 1 0 ] z R
|
||||
[ 3 1 0 ] z S
|
||||
[ 3 1 1 ] z T
|
||||
[ 3 1 1 ] z U
|
||||
[ 3 2 0 ] z V
|
||||
[ 3 2 0 ] z W
|
||||
[ 3 2 1 ] z X
|
||||
[ 3 2 1 ] z Z
|
||||
47 differences found
|
||||
attribute: <array of </g1>> and <array of </g1>>
|
||||
size: [2] [2]
|
||||
@ -1968,79 +1968,79 @@ 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
|
||||
[ 0 ] z a
|
||||
[ 0 ] z b
|
||||
[ 1 ] z d
|
||||
[ 1 ] z e
|
||||
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
|
||||
[ 0 0 ] z a
|
||||
[ 0 0 ] z b
|
||||
[ 0 1 ] z c
|
||||
[ 0 1 ] z d
|
||||
[ 1 0 ] z e
|
||||
[ 1 0 ] z f
|
||||
[ 1 1 ] z g
|
||||
[ 1 1 ] z h
|
||||
[ 2 0 ] z i
|
||||
[ 2 0 ] z j
|
||||
[ 2 1 ] z k
|
||||
[ 2 1 ] z l
|
||||
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
|
||||
[ 0 0 0 ] z a
|
||||
[ 0 0 0 ] z b
|
||||
[ 0 0 1 ] z c
|
||||
[ 0 0 1 ] z d
|
||||
[ 0 1 0 ] z e
|
||||
[ 0 1 0 ] z f
|
||||
[ 0 1 1 ] z g
|
||||
[ 0 1 1 ] z h
|
||||
[ 0 2 0 ] z i
|
||||
[ 0 2 0 ] z j
|
||||
[ 0 2 1 ] z k
|
||||
[ 0 2 1 ] z l
|
||||
[ 1 0 0 ] z m
|
||||
[ 1 0 0 ] z n
|
||||
[ 1 0 1 ] z p
|
||||
[ 1 0 1 ] z q
|
||||
[ 1 1 0 ] z r
|
||||
[ 1 1 0 ] z s
|
||||
[ 1 1 1 ] z t
|
||||
[ 1 1 1 ] z u
|
||||
[ 1 2 0 ] z v
|
||||
[ 1 2 0 ] z w
|
||||
[ 1 2 1 ] z x
|
||||
[ 2 0 0 ] z A
|
||||
[ 2 0 0 ] z B
|
||||
[ 2 0 1 ] z C
|
||||
[ 2 0 1 ] z D
|
||||
[ 2 1 0 ] z E
|
||||
[ 2 1 0 ] z F
|
||||
[ 2 1 1 ] z G
|
||||
[ 2 1 1 ] z H
|
||||
[ 2 2 0 ] z I
|
||||
[ 2 2 0 ] z J
|
||||
[ 2 2 1 ] z K
|
||||
[ 2 2 1 ] z L
|
||||
[ 3 0 0 ] z M
|
||||
[ 3 0 0 ] z N
|
||||
[ 3 0 1 ] z P
|
||||
[ 3 0 1 ] z Q
|
||||
[ 3 1 0 ] z R
|
||||
[ 3 1 0 ] z S
|
||||
[ 3 1 1 ] z T
|
||||
[ 3 1 1 ] z U
|
||||
[ 3 2 0 ] z V
|
||||
[ 3 2 0 ] z W
|
||||
[ 3 2 1 ] z X
|
||||
[ 3 2 1 ] z Z
|
||||
47 differences found
|
||||
attribute: <vlen of </g1>> and <vlen of </g1>>
|
||||
size: [2] [2]
|
||||
|
@ -59,79 +59,79 @@ dataset: </g1/VLstring> and </g1/VLstring>
|
||||
size: [2] [2]
|
||||
position VLstring VLstring difference
|
||||
------------------------------------------------------------
|
||||
[ 0 ] a z
|
||||
[ 0 ] b z
|
||||
[ 1 ] d z
|
||||
[ 1 ] e z
|
||||
[ 0 ] z a
|
||||
[ 0 ] z b
|
||||
[ 1 ] z d
|
||||
[ 1 ] z e
|
||||
4 differences found
|
||||
dataset: </g1/VLstring2D> and </g1/VLstring2D>
|
||||
size: [3x2] [3x2]
|
||||
position VLstring2D VLstring2D 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
|
||||
[ 0 0 ] z a
|
||||
[ 0 0 ] z b
|
||||
[ 0 1 ] z c
|
||||
[ 0 1 ] z d
|
||||
[ 1 0 ] z e
|
||||
[ 1 0 ] z f
|
||||
[ 1 1 ] z g
|
||||
[ 1 1 ] z h
|
||||
[ 2 0 ] z i
|
||||
[ 2 0 ] z j
|
||||
[ 2 1 ] z k
|
||||
[ 2 1 ] z l
|
||||
12 differences found
|
||||
dataset: </g1/VLstring3D> and </g1/VLstring3D>
|
||||
size: [4x3x2] [4x3x2]
|
||||
position VLstring3D VLstring3D 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
|
||||
[ 0 0 0 ] z a
|
||||
[ 0 0 0 ] z b
|
||||
[ 0 0 1 ] z c
|
||||
[ 0 0 1 ] z d
|
||||
[ 0 1 0 ] z e
|
||||
[ 0 1 0 ] z f
|
||||
[ 0 1 1 ] z g
|
||||
[ 0 1 1 ] z h
|
||||
[ 0 2 0 ] z i
|
||||
[ 0 2 0 ] z j
|
||||
[ 0 2 1 ] z k
|
||||
[ 0 2 1 ] z l
|
||||
[ 1 0 0 ] z m
|
||||
[ 1 0 0 ] z n
|
||||
[ 1 0 1 ] z p
|
||||
[ 1 0 1 ] z q
|
||||
[ 1 1 0 ] z r
|
||||
[ 1 1 0 ] z s
|
||||
[ 1 1 1 ] z t
|
||||
[ 1 1 1 ] z u
|
||||
[ 1 2 0 ] z v
|
||||
[ 1 2 0 ] z w
|
||||
[ 1 2 1 ] z x
|
||||
[ 2 0 0 ] z A
|
||||
[ 2 0 0 ] z B
|
||||
[ 2 0 1 ] z C
|
||||
[ 2 0 1 ] z D
|
||||
[ 2 1 0 ] z E
|
||||
[ 2 1 0 ] z F
|
||||
[ 2 1 1 ] z G
|
||||
[ 2 1 1 ] z H
|
||||
[ 2 2 0 ] z I
|
||||
[ 2 2 0 ] z J
|
||||
[ 2 2 1 ] z K
|
||||
[ 2 2 1 ] z L
|
||||
[ 3 0 0 ] z M
|
||||
[ 3 0 0 ] z N
|
||||
[ 3 0 1 ] z P
|
||||
[ 3 0 1 ] z Q
|
||||
[ 3 1 0 ] z R
|
||||
[ 3 1 0 ] z S
|
||||
[ 3 1 1 ] z T
|
||||
[ 3 1 1 ] z U
|
||||
[ 3 2 0 ] z V
|
||||
[ 3 2 0 ] z W
|
||||
[ 3 2 1 ] z X
|
||||
[ 3 2 1 ] z Z
|
||||
47 differences found
|
||||
dataset: </g1/array> and </g1/array>
|
||||
size: [2] [2]
|
||||
@ -702,79 +702,79 @@ dataset: </g1/string> and </g1/string>
|
||||
size: [2] [2]
|
||||
position string string difference
|
||||
------------------------------------------------------------
|
||||
[ 0 ] a z
|
||||
[ 0 ] b z
|
||||
[ 1 ] d z
|
||||
[ 1 ] e z
|
||||
[ 0 ] z a
|
||||
[ 0 ] z b
|
||||
[ 1 ] z d
|
||||
[ 1 ] z e
|
||||
4 differences found
|
||||
dataset: </g1/string2D> and </g1/string2D>
|
||||
size: [3x2] [3x2]
|
||||
position string2D string2D 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
|
||||
[ 0 0 ] z a
|
||||
[ 0 0 ] z b
|
||||
[ 0 1 ] z c
|
||||
[ 0 1 ] z d
|
||||
[ 1 0 ] z e
|
||||
[ 1 0 ] z f
|
||||
[ 1 1 ] z g
|
||||
[ 1 1 ] z h
|
||||
[ 2 0 ] z i
|
||||
[ 2 0 ] z j
|
||||
[ 2 1 ] z k
|
||||
[ 2 1 ] z l
|
||||
12 differences found
|
||||
dataset: </g1/string3D> and </g1/string3D>
|
||||
size: [4x3x2] [4x3x2]
|
||||
position string3D string3D 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
|
||||
[ 0 0 0 ] z a
|
||||
[ 0 0 0 ] z b
|
||||
[ 0 0 1 ] z c
|
||||
[ 0 0 1 ] z d
|
||||
[ 0 1 0 ] z e
|
||||
[ 0 1 0 ] z f
|
||||
[ 0 1 1 ] z g
|
||||
[ 0 1 1 ] z h
|
||||
[ 0 2 0 ] z i
|
||||
[ 0 2 0 ] z j
|
||||
[ 0 2 1 ] z k
|
||||
[ 0 2 1 ] z l
|
||||
[ 1 0 0 ] z m
|
||||
[ 1 0 0 ] z n
|
||||
[ 1 0 1 ] z p
|
||||
[ 1 0 1 ] z q
|
||||
[ 1 1 0 ] z r
|
||||
[ 1 1 0 ] z s
|
||||
[ 1 1 1 ] z t
|
||||
[ 1 1 1 ] z u
|
||||
[ 1 2 0 ] z v
|
||||
[ 1 2 0 ] z w
|
||||
[ 1 2 1 ] z x
|
||||
[ 2 0 0 ] z A
|
||||
[ 2 0 0 ] z B
|
||||
[ 2 0 1 ] z C
|
||||
[ 2 0 1 ] z D
|
||||
[ 2 1 0 ] z E
|
||||
[ 2 1 0 ] z F
|
||||
[ 2 1 1 ] z G
|
||||
[ 2 1 1 ] z H
|
||||
[ 2 2 0 ] z I
|
||||
[ 2 2 0 ] z J
|
||||
[ 2 2 1 ] z K
|
||||
[ 2 2 1 ] z L
|
||||
[ 3 0 0 ] z M
|
||||
[ 3 0 0 ] z N
|
||||
[ 3 0 1 ] z P
|
||||
[ 3 0 1 ] z Q
|
||||
[ 3 1 0 ] z R
|
||||
[ 3 1 0 ] z S
|
||||
[ 3 1 1 ] z T
|
||||
[ 3 1 1 ] z U
|
||||
[ 3 2 0 ] z V
|
||||
[ 3 2 0 ] z W
|
||||
[ 3 2 1 ] z X
|
||||
[ 3 2 1 ] z Z
|
||||
47 differences found
|
||||
dataset: </g1/vlen> and </g1/vlen>
|
||||
size: [2] [2]
|
||||
|
@ -8,5 +8,5 @@ group : </> and </>
|
||||
0 differences found
|
||||
dataset: </dynlibud> and </dynlibud>
|
||||
0 differences found
|
||||
warning: dataset </dynlibud> cannot be read, user defined filter is not available
|
||||
Warning: dataset </dynlibud> cannot be read, user defined filter is not available
|
||||
EXIT CODE: 2
|
||||
|
@ -47,6 +47,7 @@
|
||||
old_h5fc_ext2_sf.ddl
|
||||
old_h5fc_ext3_isf.ddl
|
||||
h5fc_v_err.ddl
|
||||
h5fc_v_err.ddl.err
|
||||
)
|
||||
set (HDF5_REFERENCE_TEST_FILES
|
||||
h5fc_non_v3.h5
|
||||
@ -140,6 +141,62 @@
|
||||
endif ()
|
||||
endmacro ()
|
||||
|
||||
macro (ADD_H5_MASK_OUTPUT testname resultfile resultcode testfile)
|
||||
# If using memchecker add tests without using scripts
|
||||
if (NOT HDF5_ENABLE_USING_MEMCHECKER)
|
||||
add_test (
|
||||
NAME H5FC-${testname}-clear-objects
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
-E remove
|
||||
./testfiles/outtmp.h5
|
||||
./testfiles/${testname}.out
|
||||
./testfiles/${testname}.out.err
|
||||
)
|
||||
if (NOT "${last_test}" STREQUAL "")
|
||||
set_tests_properties (H5FC-${testname}-clear-objects PROPERTIES DEPENDS ${last_test})
|
||||
endif ()
|
||||
if (NOT "${testfile}" STREQUAL "")
|
||||
add_test (
|
||||
NAME H5FC-${testname}-${testfile}-tmpfile
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
-E copy_if_different ${HDF5_TOOLS_TEST_H5FC_SOURCE_DIR}/testfiles/${testfile} ./testfiles/outtmp.h5
|
||||
)
|
||||
set_tests_properties (H5FC-${testname}-${testfile}-tmpfile PROPERTIES DEPENDS "H5FC-${testname}-clear-objects")
|
||||
add_test (
|
||||
NAME H5FC-${testname}-${testfile}
|
||||
COMMAND "${CMAKE_COMMAND}"
|
||||
-D "TEST_PROGRAM=$<TARGET_FILE:h5format_convert>"
|
||||
-D "TEST_ARGS=${ARGN};outtmp.h5"
|
||||
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
|
||||
-D "TEST_OUTPUT=${testname}.out"
|
||||
-D "TEST_EXPECT=${resultcode}"
|
||||
-D "TEST_REFERENCE=${resultfile}"
|
||||
-D "TEST_ERRREF=${resultfile}.err"
|
||||
-D "TEST_MASK_ERROR=true"
|
||||
-P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
|
||||
)
|
||||
set_tests_properties (H5FC-${testname}-${testfile} PROPERTIES DEPENDS "H5FC-${testname}-${testfile}-tmpfile")
|
||||
set (last_test "H5FC-${testname}-${testfile}")
|
||||
else ()
|
||||
add_test (
|
||||
NAME H5FC-${testname}-NA
|
||||
COMMAND "${CMAKE_COMMAND}"
|
||||
-D "TEST_PROGRAM=$<TARGET_FILE:h5format_convert>"
|
||||
-D "TEST_ARGS=${ARGN}"
|
||||
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
|
||||
-D "TEST_OUTPUT=${testname}.out"
|
||||
-D "TEST_EXPECT=${resultcode}"
|
||||
-D "TEST_REFERENCE=${resultfile}"
|
||||
-D "TEST_ERRREF=${resultfile}.err"
|
||||
-D "TEST_MASK_ERROR=true"
|
||||
-P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
|
||||
)
|
||||
set_tests_properties (H5FC-${testname}-NA PROPERTIES DEPENDS "H5FC-${testname}-clear-objects")
|
||||
set (last_test "H5FC-${testname}-NA")
|
||||
endif ()
|
||||
endif ()
|
||||
endmacro ()
|
||||
|
||||
macro (ADD_H5_TEST testname resultcode testfile)
|
||||
# If using memchecker add tests without using scripts
|
||||
if (NOT HDF5_ENABLE_USING_MEMCHECKER)
|
||||
@ -391,7 +448,7 @@
|
||||
#
|
||||
#
|
||||
# h5format_convert -v h5fc_err_level.h5 (error encountered in converting the dataset)
|
||||
ADD_H5_OUTPUT (h5fc_v_err h5fc_v_err.ddl 1 h5fc_err_level.h5 -v)
|
||||
ADD_H5_MASK_OUTPUT (h5fc_v_err h5fc_v_err.ddl 1 h5fc_err_level.h5 -v)
|
||||
#
|
||||
#
|
||||
#
|
||||
|
@ -10,4 +10,3 @@ Dataset's chunk indexing type is not version 1 B-tree
|
||||
Converting the dataset...
|
||||
Error encountered
|
||||
Close the file
|
||||
h5format_convert error: unable to downgrade dataset "/DSET_ERR"
|
||||
|
8
tools/test/h5format_convert/testfiles/h5fc_v_err.err
Normal file
8
tools/test/h5format_convert/testfiles/h5fc_v_err.err
Normal file
@ -0,0 +1,8 @@
|
||||
h5format_convert error: unable to downgrade dataset "/DSET_ERR"
|
||||
H5tools-DIAG: Error detected in HDF5:tools (version (number)) thread (IDs):
|
||||
#000: (file name) line (number) in h5trav_visit(): traverse failed
|
||||
major: Failure in tools library
|
||||
minor: error in function
|
||||
#001: (file name) line (number) in traverse(): H5Lvisit_by_name failed
|
||||
major: Failure in tools library
|
||||
minor: error in function
|
@ -32,8 +32,8 @@ EXIT_FAILURE=1
|
||||
FORMCONV=../../src/h5format_convert/h5format_convert # The tool name
|
||||
FORMCONV_BIN=`pwd`/$FORMCONV # The path of the tool binary
|
||||
|
||||
CHK_IDX=h5fc_chk_idx # The program name
|
||||
CHK_IDX_BIN=`pwd`/$CHK_IDX # The program to verify the chunk indexing type is v1 B-tree
|
||||
CHK_IDX=h5fc_chk_idx # The program name
|
||||
CHK_IDX_BIN=`pwd`/$CHK_IDX # The program to verify the chunk indexing type is v1 B-tree
|
||||
|
||||
RM='rm -rf'
|
||||
CMP='cmp -s'
|
||||
@ -131,6 +131,7 @@ $SRC_H5FORMCONV_TESTFILES/old_h5fc_ext2_is.ddl
|
||||
$SRC_H5FORMCONV_TESTFILES/old_h5fc_ext2_sf.ddl
|
||||
$SRC_H5FORMCONV_TESTFILES/old_h5fc_ext3_isf.ddl
|
||||
$SRC_H5FORMCONV_TESTFILES/h5fc_v_err.ddl
|
||||
$SRC_H5FORMCONV_TESTFILES/h5fc_v_err.ddl.err
|
||||
"
|
||||
|
||||
#
|
||||
@ -154,10 +155,10 @@ COPY_TESTFILES_TO_TESTDIR()
|
||||
INODE_SDIR=`$LS -i -d $SDIR | $AWK -F' ' '{print $1}'`
|
||||
INODE_DDIR=`$LS -i -d $TESTDIR | $AWK -F' ' '{print $1}'`
|
||||
if [ "$INODE_SDIR" != "$INODE_DDIR" ]; then
|
||||
$CP -f $tstfile $TESTDIR
|
||||
$CP -f $tstfile $TESTDIR
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Error: FAILED to copy $tstfile ."
|
||||
|
||||
|
||||
# Comment out this to CREATE expected file
|
||||
exit $EXIT_FAILURE
|
||||
fi
|
||||
@ -177,7 +178,7 @@ CLEAN_TESTFILES_AND_TESTDIR()
|
||||
if [ "$INODE_SDIR" != "$INODE_DDIR" ]; then
|
||||
$RM $TESTDIR
|
||||
else
|
||||
$RM $TESTDIR/$TMPFILE
|
||||
$RM $TESTDIR/$TMPFILE
|
||||
$RM $TESTDIR/$TMPOUTFILE
|
||||
$RM $TESTDIR/$TMPCHKFILE
|
||||
$RM $TESTDIR/$TMPDMPFILE
|
||||
@ -201,13 +202,13 @@ TESTING() {
|
||||
# non-zero value.
|
||||
#
|
||||
# $1: expected output
|
||||
# $2: the test file name
|
||||
# --fname might be empty or fname does not exist
|
||||
# --fname is copied to a temporary file for testing
|
||||
# $2: the test file name
|
||||
# --fname might be empty or fname does not exist
|
||||
# --fname is copied to a temporary file for testing
|
||||
# $3 to at most $6--options to the tool such as:
|
||||
# -d dname or --dname=dname
|
||||
# -v or --verbose
|
||||
# -n or --noop
|
||||
# -d dname or --dname=dname
|
||||
# -v or --verbose
|
||||
# -n or --noop
|
||||
TOOLTEST_OUT() {
|
||||
# Prepare expected and actual output
|
||||
expect="$TESTDIR/$1"
|
||||
@ -220,15 +221,15 @@ TOOLTEST_OUT() {
|
||||
$RM $TESTDIR/$TMPOUTFILE
|
||||
TFILE=$2
|
||||
if [ ! -z "$2" ] && [ -e $TESTDIR/$2 ] ; then
|
||||
$CP $TESTDIR/$2 $TESTDIR/$TMPOUTFILE
|
||||
TFILE=$TMPOUTFILE
|
||||
$CP $TESTDIR/$2 $TESTDIR/$TMPOUTFILE
|
||||
TFILE=$TMPOUTFILE
|
||||
fi
|
||||
|
||||
# Run test.
|
||||
TESTING $FORMCONV $3 $4 $5 $6 $2
|
||||
(
|
||||
cd $TESTDIR
|
||||
$RUNSERIAL $FORMCONV_BIN $3 $4 $5 $6 $TFILE
|
||||
cd $TESTDIR
|
||||
$RUNSERIAL $FORMCONV_BIN $3 $4 $5 $6 $TFILE
|
||||
) >$actual 2>$actual_err
|
||||
cp $actual $actual_sav
|
||||
cp $actual_err $actual_err_sav
|
||||
@ -239,20 +240,81 @@ TOOLTEST_OUT() {
|
||||
|
||||
# Clean up output file
|
||||
if test -z "$HDF5_NOCLEANUP"; then
|
||||
$RM $actual $actual_err
|
||||
$RM $actual $actual_err $actual_sav $actual_err_sav
|
||||
$RM $actual $actual_err
|
||||
$RM $actual $actual_err $actual_sav $actual_err_sav
|
||||
fi
|
||||
}
|
||||
# Same as TOOLTEST_OUT but filters error stack output and compares to an error file
|
||||
TOOLTEST_MASK_OUT() {
|
||||
# Prepare expected and actual output
|
||||
expect="$TESTDIR/$1"
|
||||
expect_err="$TESTDIR/$1.err"
|
||||
actual_ext="$TESTDIR/$1.ext"
|
||||
actual="$TESTDIR/`basename $1 .ddl`.out"
|
||||
actual_err="$TESTDIR/`basename $1 .ddl`.err"
|
||||
actual_sav=${actual}-sav
|
||||
actual_err_sav=${actual_err}-sav
|
||||
|
||||
# Prepare the test file
|
||||
$RM $TESTDIR/$TMPOUTFILE
|
||||
TFILE=$2
|
||||
if [ ! -z "$2" ] && [ -e $TESTDIR/$2 ] ; then
|
||||
$CP $TESTDIR/$2 $TESTDIR/$TMPOUTFILE
|
||||
TFILE=$TMPOUTFILE
|
||||
fi
|
||||
|
||||
# Run test.
|
||||
TESTING $FORMCONV $3 $4 $5 $6 $2
|
||||
(
|
||||
cd $TESTDIR
|
||||
$RUNSERIAL $FORMCONV_BIN $3 $4 $5 $6 $TFILE
|
||||
) >$actual 2>$actual_err
|
||||
cp $actual $actual_sav
|
||||
cp $actual_err $actual_err_sav
|
||||
STDERR_FILTER $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
|
||||
|
||||
# Compare output
|
||||
if $CMP $expect $actual; then
|
||||
if $CMP $expect_err $actual_ext; then
|
||||
echo " PASSED"
|
||||
else
|
||||
echo "*FAILED*"
|
||||
echo " Expected result (*.err) differs from actual result (*.oerr)"
|
||||
nerrors="`expr $nerrors + 1`"
|
||||
test yes = "$verbose" && $DIFF $expect_err $actual_ext |sed 's/^/ /'
|
||||
fi
|
||||
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 $actual $actual_err
|
||||
$RM $actual $actual_err $actual_sav $actual_err_sav
|
||||
fi
|
||||
}
|
||||
|
||||
# To check that the tool exits success, no output
|
||||
# To check that the tool exits success, no output
|
||||
# Assume all short options
|
||||
# $1 is the test file name
|
||||
# --fname exists
|
||||
# --fname is copied to a temporary file for testing
|
||||
# $2 is the temporary file name
|
||||
# $1 is the test file name
|
||||
# --fname exists
|
||||
# --fname is copied to a temporary file for testing
|
||||
# $2 is the temporary file name
|
||||
# $3 to at most $5--options to the tool such as:
|
||||
# -d dname
|
||||
# -n
|
||||
# -d dname
|
||||
# -n
|
||||
TOOLTEST() {
|
||||
TESTING $FORMCONV $3 $4 $5 $1
|
||||
$RM $TESTDIR/$2
|
||||
@ -260,11 +322,11 @@ TOOLTEST() {
|
||||
$RUNSERIAL $FORMCONV_BIN $3 $4 $5 $TESTDIR/$2
|
||||
exitcode=$?
|
||||
if [ $exitcode -ne 0 ]; then
|
||||
echo "*FAILED*"
|
||||
echo " The tool exits failure"
|
||||
nerrors="`expr $nerrors + 1`"
|
||||
echo "*FAILED*"
|
||||
echo " The tool exits failure"
|
||||
nerrors="`expr $nerrors + 1`"
|
||||
else
|
||||
echo " PASSED"
|
||||
echo " PASSED"
|
||||
fi
|
||||
}
|
||||
|
||||
@ -280,11 +342,11 @@ IDX_CHECK() {
|
||||
$RUNSERIAL $CHK_IDX_BIN $TESTDIR/$TMPCHKFILE $1
|
||||
ret=$?
|
||||
if [ $ret -eq 0 ]; then
|
||||
echo " PASSED"
|
||||
echo " PASSED"
|
||||
else
|
||||
echo "*FAILED*"
|
||||
echo " The chunk indexing type is not correct"
|
||||
nerrors="`expr $nerrors + 1`"
|
||||
echo "*FAILED*"
|
||||
echo " The chunk indexing type is not correct"
|
||||
nerrors="`expr $nerrors + 1`"
|
||||
fi
|
||||
}
|
||||
|
||||
@ -317,7 +379,7 @@ H5DUMP_CHECK() {
|
||||
|
||||
# Clean up output file
|
||||
if test -z "$HDF5_NOCLEANUP"; then
|
||||
$RM $actual $actual_err
|
||||
$RM $actual $actual_err
|
||||
fi
|
||||
}
|
||||
|
||||
@ -326,12 +388,12 @@ SKIP() {
|
||||
TESTING $STAT $@
|
||||
echo " -SKIP-"
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
##############################################################################
|
||||
##############################################################################
|
||||
### T H E T E S T S ###
|
||||
### T H E T E S T S ###
|
||||
##############################################################################
|
||||
##############################################################################
|
||||
# prepare for test
|
||||
@ -377,7 +439,7 @@ TOOLTEST_OUT h5fc_v_n_all.ddl h5fc_non_v3.h5 -v -n
|
||||
#
|
||||
#
|
||||
# h5format_convert -v h5fc_err_level.h5 (error encountered in converting the dataset)
|
||||
TOOLTEST_OUT h5fc_v_err.ddl h5fc_err_level.h5 -v
|
||||
TOOLTEST_MASK_OUT h5fc_v_err.ddl h5fc_err_level.h5 -v
|
||||
#
|
||||
#
|
||||
#
|
||||
@ -436,7 +498,7 @@ TOOLTEST h5fc_non_v3.h5 $TMPFILE -n
|
||||
#
|
||||
# No output from tests: just check exit code
|
||||
# h5format_convert h5fc_non_v3.h5
|
||||
# 1) convert all datasets
|
||||
# 1) convert all datasets
|
||||
# 2) verify indexing types
|
||||
TOOLTEST h5fc_non_v3.h5 $TMPCHKFILE
|
||||
IDX_CHECK /DSET_NDATA_EA
|
||||
|
@ -275,12 +275,12 @@
|
||||
endif ()
|
||||
add_test (
|
||||
NAME H5REPACK-${testname}
|
||||
COMMAND $<TARGET_FILE:h5repack> ${ARGN} ${PROJECT_BINARY_DIR}/testfiles/${testfile} ${PROJECT_BINARY_DIR}/testfiles/out-${testname}.${testfile}
|
||||
COMMAND $<TARGET_FILE:h5repack> --enable-error-stack ${ARGN} ${PROJECT_BINARY_DIR}/testfiles/${testfile} ${PROJECT_BINARY_DIR}/testfiles/out-${testname}.${testfile}
|
||||
)
|
||||
set_tests_properties (H5REPACK-${testname} PROPERTIES DEPENDS H5REPACK-${testname}-clear-objects)
|
||||
add_test (
|
||||
NAME H5REPACK-${testname}_DFF
|
||||
COMMAND $<TARGET_FILE:h5diff> ${PROJECT_BINARY_DIR}/testfiles/${testfile} ${PROJECT_BINARY_DIR}/testfiles/out-${testname}.${testfile}
|
||||
COMMAND $<TARGET_FILE:h5diff> --enable-error-stack ${PROJECT_BINARY_DIR}/testfiles/${testfile} ${PROJECT_BINARY_DIR}/testfiles/out-${testname}.${testfile}
|
||||
)
|
||||
set_tests_properties (H5REPACK-${testname}_DFF PROPERTIES DEPENDS H5REPACK-${testname})
|
||||
endif ()
|
||||
|
@ -3041,9 +3041,9 @@ int make_all_filters(hid_t loc_id)
|
||||
|
||||
/* close */
|
||||
if(H5Tclose(dtid) < 0)
|
||||
return -1;
|
||||
goto out;
|
||||
if(H5Dclose(dsid) < 0)
|
||||
return -1;
|
||||
goto out;
|
||||
|
||||
if(H5Sclose(sid) < 0)
|
||||
goto out;
|
||||
@ -3055,6 +3055,8 @@ int make_all_filters(hid_t loc_id)
|
||||
out:
|
||||
H5E_BEGIN_TRY
|
||||
{
|
||||
H5Tclose(dtid);
|
||||
H5Dclose(dsid);
|
||||
H5Pclose(dcpl);
|
||||
H5Sclose(sid);
|
||||
} H5E_END_TRY;
|
||||
|
Loading…
x
Reference in New Issue
Block a user