summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rw-r--r--tools/h5diff/h5diff_main.c1
-rw-r--r--tools/lib/h5diff.c30
-rw-r--r--tools/lib/h5diff_dset.c2
-rw-r--r--tools/lib/h5trav.c8
-rw-r--r--tools/testfiles/h5diff_70.txt510
5 files changed, 542 insertions, 9 deletions
diff --git a/tools/h5diff/h5diff_main.c b/tools/h5diff/h5diff_main.c
index 0fb0576..f0b7bf5 100644
--- a/tools/h5diff/h5diff_main.c
+++ b/tools/h5diff/h5diff_main.c
@@ -103,7 +103,6 @@ int main(int argc, const char *argv[])
case 'v':
options.verbose = 1;
break;
- break;
case 'r':
options.r = 1;
break;
diff --git a/tools/lib/h5diff.c b/tools/lib/h5diff.c
index 5b38968..9c9d8aa 100644
--- a/tools/lib/h5diff.c
+++ b/tools/lib/h5diff.c
@@ -253,13 +253,33 @@ int diff_match( hid_t file1_id,
for (i = 0; i < table->nobjs; i++)
{
if ( table->objs[i].flags[0] && table->objs[i].flags[1] )
- nfound+=diff( file1_id, table->objs[i].objname,
- file2_id, table->objs[i].objname,
- options, table->objs[i].type );
+ nfound+=diff( file1_id,
+ table->objs[i].objname,
+ file2_id,
+ table->objs[i].objname,
+ options,
+ table->objs[i].type );
}
/* free table */
trav_table_free(table);
+
+
+/*-------------------------------------------------------------------------
+ * do the diff for the root.
+ * this is a special case, we get an ID for the root group and call diff()
+ * with this ID; it compares only the root group attributes
+ *-------------------------------------------------------------------------
+ */
+
+ nfound+=diff( file1_id,
+ "/",
+ file2_id,
+ "/",
+ options,
+ H5G_GROUP );
+
+
return nfound;
}
@@ -398,7 +418,7 @@ int diff( hid_t file1_id,
nfound = (ret>0) ? 0 : 1;
/* compare attributes */
- diff_attr(type1_id,type2_id,path1,path2,options);
+ nfound=diff_attr(type1_id,type2_id,path1,path2,options);
if ( H5Tclose(type1_id)<0)
goto out;
@@ -426,7 +446,7 @@ int diff( hid_t file1_id,
nfound = (ret!=0) ? 1 : 0;
/* compare attributes */
- diff_attr(grp1_id,grp2_id,path1,path2,options);
+ nfound=diff_attr(grp1_id,grp2_id,path1,path2,options);
if ( H5Gclose(grp1_id)<0)
goto out;
diff --git a/tools/lib/h5diff_dset.c b/tools/lib/h5diff_dset.c
index 2e4cd67..9088c3a 100644
--- a/tools/lib/h5diff_dset.c
+++ b/tools/lib/h5diff_dset.c
@@ -350,7 +350,7 @@ int diff_datasetid( hid_t dset1_id,
*-------------------------------------------------------------------------
*/
- diff_attr(dset1_id,dset2_id,obj1_name,obj2_name,options);
+ nfound=diff_attr(dset1_id,dset2_id,obj1_name,obj2_name,options);
/*-------------------------------------------------------------------------
* close
diff --git a/tools/lib/h5trav.c b/tools/lib/h5trav.c
index 8d51ac4..4747aad 100644
--- a/tools/lib/h5trav.c
+++ b/tools/lib/h5trav.c
@@ -32,7 +32,7 @@ herr_t get_name_type( hid_t loc_id,
const char *group_name,
int idx,
char **name,
- int *type );
+ H5G_obj_t *type );
/*-------------------------------------------------------------------------
* Function: h5trav_getinfo
@@ -246,7 +246,11 @@ static herr_t opget_info( hid_t loc_id, const char *name, void *op_data)
*-------------------------------------------------------------------------
*/
-herr_t get_name_type( hid_t loc_id, const char *group_name, int idx, char **name, int *type )
+herr_t get_name_type( hid_t loc_id,
+ const char *group_name,
+ int idx,
+ char **name,
+ H5G_obj_t *type )
{
trav_info_t info;
diff --git a/tools/testfiles/h5diff_70.txt b/tools/testfiles/h5diff_70.txt
index 45ba341..9fdbe31 100644
--- a/tools/testfiles/h5diff_70.txt
+++ b/tools/testfiles/h5diff_70.txt
@@ -511,4 +511,514 @@ position float3D of </g1> float3D of </g1> difference
[ 3 1 1 ] 22.000000 0.000000 22.000000
[ 3 2 0 ] 23.000000 0.000000 23.000000
[ 3 2 1 ] 24.000000 0.000000 24.000000
+position string of </> string of </> difference
+------------------------------------------------------------
+[ 0 ] a z
+[ 0 ] b z
+[ 1 ] d z
+[ 1 ] e z
+position bitfield of </> bitfield of </> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+position opaque of </> opaque of </> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+position compound of </> compound of </> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 0 ] 2.000000 0.000000 2.000000
+[ 1 ] 3 0 3
+[ 1 ] 4.000000 0.000000 4.000000
+position enum of </> enum of </> difference
+------------------------------------------------------------
+[ 0 ] RED GREEN
+[ 1 ] RED GREEN
+position vlen of </> vlen of </> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+[ 1 ] 3 0 3
+position array of </> array of </> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 0 ] 2 0 2
+[ 0 ] 3 0 3
+[ 1 ] 4 0 4
+[ 1 ] 5 0 5
+[ 1 ] 6 0 6
+position integer of </> integer of </> difference
+------------------------------------------------------------
+[ 0 ] 1 0 1
+[ 1 ] 2 0 2
+position float of </> float of </> difference
+------------------------------------------------------------
+[ 0 ] 1.000000 0.000000 1.000000
+[ 1 ] 2.000000 0.000000 2.000000
+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
+position bitfield2D of </> bitfield2D of </> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+position opaque2D of </> opaque2D of </> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+position compound2D of </> compound2D of </> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 0 ] 2.000000 0.000000 2.000000
+[ 0 1 ] 3 0 3
+[ 0 1 ] 4.000000 0.000000 4.000000
+[ 1 0 ] 5 0 5
+[ 1 0 ] 6.000000 0.000000 6.000000
+[ 1 1 ] 7 0 7
+[ 1 1 ] 8.000000 0.000000 8.000000
+[ 2 0 ] 9 0 9
+[ 2 0 ] 10.000000 0.000000 10.000000
+[ 2 1 ] 11 0 11
+[ 2 1 ] 12.000000 0.000000 12.000000
+position enum2D of </> enum2D of </> difference
+------------------------------------------------------------
+[ 0 0 ] RED GREEN
+[ 0 1 ] RED GREEN
+[ 1 0 ] RED GREEN
+[ 1 1 ] RED GREEN
+[ 2 0 ] RED GREEN
+[ 2 1 ] RED GREEN
+position vlen2D of </> vlen2D of </> difference
+------------------------------------------------------------
+[ 0 1 ] 1 0 1
+[ 1 0 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 1 1 ] 5 0 5
+[ 2 0 ] 6 0 6
+[ 2 0 ] 7 0 7
+[ 2 0 ] 8 0 8
+[ 2 1 ] 9 0 9
+[ 2 1 ] 10 0 10
+[ 2 1 ] 11 0 11
+position array2D of </> array2D of </> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 0 ] 2 0 2
+[ 0 0 ] 3 0 3
+[ 0 1 ] 4 0 4
+[ 0 1 ] 5 0 5
+[ 0 1 ] 6 0 6
+[ 1 0 ] 7 0 7
+[ 1 0 ] 8 0 8
+[ 1 0 ] 9 0 9
+[ 1 1 ] 10 0 10
+[ 1 1 ] 11 0 11
+[ 1 1 ] 12 0 12
+[ 2 0 ] 13 0 13
+[ 2 0 ] 14 0 14
+[ 2 0 ] 15 0 15
+[ 2 1 ] 16 0 16
+[ 2 1 ] 17 0 17
+[ 2 1 ] 18 0 18
+position integer2D of </> integer2D of </> difference
+------------------------------------------------------------
+[ 0 0 ] 1 0 1
+[ 0 1 ] 2 0 2
+[ 1 0 ] 3 0 3
+[ 1 1 ] 4 0 4
+[ 2 0 ] 5 0 5
+[ 2 1 ] 6 0 6
+position float2D of </> float2D of </> difference
+------------------------------------------------------------
+[ 0 0 ] 1.000000 0.000000 1.000000
+[ 0 1 ] 2.000000 0.000000 2.000000
+[ 1 0 ] 3.000000 0.000000 3.000000
+[ 1 1 ] 4.000000 0.000000 4.000000
+[ 2 0 ] 5.000000 0.000000 5.000000
+[ 2 1 ] 6.000000 0.000000 6.000000
+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
+position bitfield3D of </> bitfield3D of </> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 1 ] 2 0 2
+[ 0 1 0 ] 3 0 3
+[ 0 1 1 ] 4 0 4
+[ 0 2 0 ] 5 0 5
+[ 0 2 1 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 1 0 ] 9 0 9
+[ 1 1 1 ] 10 0 10
+[ 1 2 0 ] 11 0 11
+[ 1 2 1 ] 12 0 12
+[ 2 0 0 ] 13 0 13
+[ 2 0 1 ] 14 0 14
+[ 2 1 0 ] 15 0 15
+[ 2 1 1 ] 16 0 16
+[ 2 2 0 ] 17 0 17
+[ 2 2 1 ] 18 0 18
+[ 3 0 0 ] 19 0 19
+[ 3 0 1 ] 20 0 20
+[ 3 1 0 ] 21 0 21
+[ 3 1 1 ] 22 0 22
+[ 3 2 0 ] 23 0 23
+[ 3 2 1 ] 24 0 24
+position opaque3D of </> opaque3D of </> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 1 ] 2 0 2
+[ 0 1 0 ] 3 0 3
+[ 0 1 1 ] 4 0 4
+[ 0 2 0 ] 5 0 5
+[ 0 2 1 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 1 0 ] 9 0 9
+[ 1 1 1 ] 10 0 10
+[ 1 2 0 ] 11 0 11
+[ 1 2 1 ] 12 0 12
+[ 2 0 0 ] 13 0 13
+[ 2 0 1 ] 14 0 14
+[ 2 1 0 ] 15 0 15
+[ 2 1 1 ] 16 0 16
+[ 2 2 0 ] 17 0 17
+[ 2 2 1 ] 18 0 18
+[ 3 0 0 ] 19 0 19
+[ 3 0 1 ] 20 0 20
+[ 3 1 0 ] 21 0 21
+[ 3 1 1 ] 22 0 22
+[ 3 2 0 ] 23 0 23
+[ 3 2 1 ] 24 0 24
+position compound3D of </> compound3D of </> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 0 ] 2.000000 0.000000 2.000000
+[ 0 0 1 ] 3 0 3
+[ 0 0 1 ] 4.000000 0.000000 4.000000
+[ 0 1 0 ] 5 0 5
+[ 0 1 0 ] 6.000000 0.000000 6.000000
+[ 0 1 1 ] 7 0 7
+[ 0 1 1 ] 8.000000 0.000000 8.000000
+[ 0 2 0 ] 9 0 9
+[ 0 2 0 ] 10.000000 0.000000 10.000000
+[ 0 2 1 ] 11 0 11
+[ 0 2 1 ] 12.000000 0.000000 12.000000
+[ 1 0 0 ] 13 0 13
+[ 1 0 0 ] 14.000000 0.000000 14.000000
+[ 1 0 1 ] 15 0 15
+[ 1 0 1 ] 16.000000 0.000000 16.000000
+[ 1 1 0 ] 17 0 17
+[ 1 1 0 ] 18.000000 0.000000 18.000000
+[ 1 1 1 ] 19 0 19
+[ 1 1 1 ] 20.000000 0.000000 20.000000
+[ 1 2 0 ] 21 0 21
+[ 1 2 0 ] 22.000000 0.000000 22.000000
+[ 1 2 1 ] 23 0 23
+[ 1 2 1 ] 24.000000 0.000000 24.000000
+[ 2 0 0 ] 25 0 25
+[ 2 0 0 ] 26.000000 0.000000 26.000000
+[ 2 0 1 ] 27 0 27
+[ 2 0 1 ] 28.000000 0.000000 28.000000
+[ 2 1 0 ] 29 0 29
+[ 2 1 0 ] 30.000000 0.000000 30.000000
+[ 2 1 1 ] 31 0 31
+[ 2 1 1 ] 32.000000 0.000000 32.000000
+[ 2 2 0 ] 33 0 33
+[ 2 2 0 ] 34.000000 0.000000 34.000000
+[ 2 2 1 ] 35 0 35
+[ 2 2 1 ] 36.000000 0.000000 36.000000
+[ 3 0 0 ] 37 0 37
+[ 3 0 0 ] 38.000000 0.000000 38.000000
+[ 3 0 1 ] 39 0 39
+[ 3 0 1 ] 40.000000 0.000000 40.000000
+[ 3 1 0 ] 41 0 41
+[ 3 1 0 ] 42.000000 0.000000 42.000000
+[ 3 1 1 ] 43 0 43
+[ 3 1 1 ] 44.000000 0.000000 44.000000
+[ 3 2 0 ] 45 0 45
+[ 3 2 0 ] 46.000000 0.000000 46.000000
+[ 3 2 1 ] 47 0 47
+[ 3 2 1 ] 48.000000 0.000000 48.000000
+position enum3D of </> enum3D of </> difference
+------------------------------------------------------------
+[ 0 0 0 ] GREEN RED
+[ 0 0 1 ] GREEN RED
+[ 0 1 0 ] GREEN RED
+[ 0 1 1 ] GREEN RED
+[ 0 2 0 ] GREEN RED
+[ 0 2 1 ] GREEN RED
+[ 1 0 0 ] GREEN RED
+[ 1 0 1 ] GREEN RED
+[ 1 1 0 ] GREEN RED
+[ 1 1 1 ] GREEN RED
+[ 1 2 0 ] GREEN RED
+[ 1 2 1 ] GREEN RED
+[ 2 0 0 ] GREEN RED
+[ 2 0 1 ] GREEN RED
+[ 2 1 0 ] GREEN RED
+[ 2 1 1 ] GREEN RED
+[ 2 2 0 ] GREEN RED
+[ 2 2 1 ] GREEN RED
+[ 3 0 0 ] GREEN RED
+[ 3 0 1 ] GREEN RED
+[ 3 1 0 ] GREEN RED
+[ 3 1 1 ] GREEN RED
+[ 3 2 0 ] GREEN RED
+[ 3 2 1 ] GREEN RED
+position vlen3D of </> vlen3D of </> difference
+------------------------------------------------------------
+[ 0 0 1 ] 1 0 1
+[ 0 1 0 ] 2 0 2
+[ 0 1 1 ] 3 0 3
+[ 0 2 0 ] 4 0 4
+[ 0 2 1 ] 5 0 5
+[ 1 0 0 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 0 1 ] 9 0 9
+[ 1 1 0 ] 10 0 10
+[ 1 1 0 ] 11 0 11
+[ 1 1 1 ] 12 0 12
+[ 1 1 1 ] 13 0 13
+[ 1 2 0 ] 14 0 14
+[ 1 2 0 ] 15 0 15
+[ 1 2 1 ] 16 0 16
+[ 1 2 1 ] 17 0 17
+[ 2 0 0 ] 18 0 18
+[ 2 0 0 ] 19 0 19
+[ 2 0 0 ] 20 0 20
+[ 2 0 1 ] 21 0 21
+[ 2 0 1 ] 22 0 22
+[ 2 0 1 ] 23 0 23
+[ 2 1 0 ] 24 0 24
+[ 2 1 0 ] 25 0 25
+[ 2 1 0 ] 26 0 26
+[ 2 1 1 ] 27 0 27
+[ 2 1 1 ] 28 0 28
+[ 2 1 1 ] 29 0 29
+[ 2 2 0 ] 30 0 30
+[ 2 2 0 ] 31 0 31
+[ 2 2 0 ] 32 0 32
+[ 2 2 1 ] 33 0 33
+[ 2 2 1 ] 34 0 34
+[ 2 2 1 ] 35 0 35
+[ 3 0 0 ] 36 0 36
+[ 3 0 0 ] 37 0 37
+[ 3 0 0 ] 38 0 38
+[ 3 0 0 ] 39 0 39
+[ 3 0 1 ] 40 0 40
+[ 3 0 1 ] 41 0 41
+[ 3 0 1 ] 42 0 42
+[ 3 0 1 ] 43 0 43
+[ 3 1 0 ] 44 0 44
+[ 3 1 0 ] 45 0 45
+[ 3 1 0 ] 46 0 46
+[ 3 1 0 ] 47 0 47
+[ 3 1 1 ] 48 0 48
+[ 3 1 1 ] 49 0 49
+[ 3 1 1 ] 50 0 50
+[ 3 1 1 ] 51 0 51
+[ 3 2 0 ] 52 0 52
+[ 3 2 0 ] 53 0 53
+[ 3 2 0 ] 54 0 54
+[ 3 2 0 ] 55 0 55
+[ 3 2 1 ] 56 0 56
+[ 3 2 1 ] 57 0 57
+[ 3 2 1 ] 58 0 58
+[ 3 2 1 ] 59 0 59
+position array3D of </> array3D of </> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 0 ] 2 0 2
+[ 0 0 0 ] 3 0 3
+[ 0 0 1 ] 4 0 4
+[ 0 0 1 ] 5 0 5
+[ 0 0 1 ] 6 0 6
+[ 0 1 0 ] 7 0 7
+[ 0 1 0 ] 8 0 8
+[ 0 1 0 ] 9 0 9
+[ 0 1 1 ] 10 0 10
+[ 0 1 1 ] 11 0 11
+[ 0 1 1 ] 12 0 12
+[ 0 2 0 ] 13 0 13
+[ 0 2 0 ] 14 0 14
+[ 0 2 0 ] 15 0 15
+[ 0 2 1 ] 16 0 16
+[ 0 2 1 ] 17 0 17
+[ 0 2 1 ] 18 0 18
+[ 1 0 0 ] 19 0 19
+[ 1 0 0 ] 20 0 20
+[ 1 0 0 ] 21 0 21
+[ 1 0 1 ] 22 0 22
+[ 1 0 1 ] 23 0 23
+[ 1 0 1 ] 24 0 24
+[ 1 1 0 ] 25 0 25
+[ 1 1 0 ] 26 0 26
+[ 1 1 0 ] 27 0 27
+[ 1 1 1 ] 28 0 28
+[ 1 1 1 ] 29 0 29
+[ 1 1 1 ] 30 0 30
+[ 1 2 0 ] 31 0 31
+[ 1 2 0 ] 32 0 32
+[ 1 2 0 ] 33 0 33
+[ 1 2 1 ] 34 0 34
+[ 1 2 1 ] 35 0 35
+[ 1 2 1 ] 36 0 36
+[ 2 0 0 ] 37 0 37
+[ 2 0 0 ] 38 0 38
+[ 2 0 0 ] 39 0 39
+[ 2 0 1 ] 40 0 40
+[ 2 0 1 ] 41 0 41
+[ 2 0 1 ] 42 0 42
+[ 2 1 0 ] 43 0 43
+[ 2 1 0 ] 44 0 44
+[ 2 1 0 ] 45 0 45
+[ 2 1 1 ] 46 0 46
+[ 2 1 1 ] 47 0 47
+[ 2 1 1 ] 48 0 48
+[ 2 2 0 ] 49 0 49
+[ 2 2 0 ] 50 0 50
+[ 2 2 0 ] 51 0 51
+[ 2 2 1 ] 52 0 52
+[ 2 2 1 ] 53 0 53
+[ 2 2 1 ] 54 0 54
+[ 3 0 0 ] 55 0 55
+[ 3 0 0 ] 56 0 56
+[ 3 0 0 ] 57 0 57
+[ 3 0 1 ] 58 0 58
+[ 3 0 1 ] 59 0 59
+[ 3 0 1 ] 60 0 60
+[ 3 1 0 ] 61 0 61
+[ 3 1 0 ] 62 0 62
+[ 3 1 0 ] 63 0 63
+[ 3 1 1 ] 64 0 64
+[ 3 1 1 ] 65 0 65
+[ 3 1 1 ] 66 0 66
+[ 3 2 0 ] 67 0 67
+[ 3 2 0 ] 68 0 68
+[ 3 2 0 ] 69 0 69
+[ 3 2 1 ] 70 0 70
+[ 3 2 1 ] 71 0 71
+[ 3 2 1 ] 72 0 72
+position integer3D of </> integer3D of </> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1 0 1
+[ 0 0 1 ] 2 0 2
+[ 0 1 0 ] 3 0 3
+[ 0 1 1 ] 4 0 4
+[ 0 2 0 ] 5 0 5
+[ 0 2 1 ] 6 0 6
+[ 1 0 0 ] 7 0 7
+[ 1 0 1 ] 8 0 8
+[ 1 1 0 ] 9 0 9
+[ 1 1 1 ] 10 0 10
+[ 1 2 0 ] 11 0 11
+[ 1 2 1 ] 12 0 12
+[ 2 0 0 ] 13 0 13
+[ 2 0 1 ] 14 0 14
+[ 2 1 0 ] 15 0 15
+[ 2 1 1 ] 16 0 16
+[ 2 2 0 ] 17 0 17
+[ 2 2 1 ] 18 0 18
+[ 3 0 0 ] 19 0 19
+[ 3 0 1 ] 20 0 20
+[ 3 1 0 ] 21 0 21
+[ 3 1 1 ] 22 0 22
+[ 3 2 0 ] 23 0 23
+[ 3 2 1 ] 24 0 24
+position float3D of </> float3D of </> difference
+------------------------------------------------------------
+[ 0 0 0 ] 1.000000 0.000000 1.000000
+[ 0 0 1 ] 2.000000 0.000000 2.000000
+[ 0 1 0 ] 3.000000 0.000000 3.000000
+[ 0 1 1 ] 4.000000 0.000000 4.000000
+[ 0 2 0 ] 5.000000 0.000000 5.000000
+[ 0 2 1 ] 6.000000 0.000000 6.000000
+[ 1 0 0 ] 7.000000 0.000000 7.000000
+[ 1 0 1 ] 8.000000 0.000000 8.000000
+[ 1 1 0 ] 9.000000 0.000000 9.000000
+[ 1 1 1 ] 10.000000 0.000000 10.000000
+[ 1 2 0 ] 11.000000 0.000000 11.000000
+[ 1 2 1 ] 12.000000 0.000000 12.000000
+[ 2 0 0 ] 13.000000 0.000000 13.000000
+[ 2 0 1 ] 14.000000 0.000000 14.000000
+[ 2 1 0 ] 15.000000 0.000000 15.000000
+[ 2 1 1 ] 16.000000 0.000000 16.000000
+[ 2 2 0 ] 17.000000 0.000000 17.000000
+[ 2 2 1 ] 18.000000 0.000000 18.000000
+[ 3 0 0 ] 19.000000 0.000000 19.000000
+[ 3 0 1 ] 20.000000 0.000000 20.000000
+[ 3 1 0 ] 21.000000 0.000000 21.000000
+[ 3 1 1 ] 22.000000 0.000000 22.000000
+[ 3 2 0 ] 23.000000 0.000000 23.000000
+[ 3 2 1 ] 24.000000 0.000000 24.000000