89 lines
4.3 KiB
Plaintext
89 lines
4.3 KiB
Plaintext
########################################
|
|
# INITIALIZATION
|
|
########################################
|
|
delete database pc2test;
|
|
|
|
#setup pc2test Pointcloud2Algebra
|
|
create database pc2test;
|
|
open database pc2test;
|
|
|
|
let pcNameValue = [const pointcloud2 (EUCLID (tuple([Name: string, Value: real]))) value ( (1 6 1 ("GoldenerSchnitt" 1.618)) (0 5 7 ("Eulerkonstante" 0.5772)) )];
|
|
let pcNameValue2 = [const pointcloud2 (EUCLID (tuple([Name: real, Value: string]))) value ( (3 1 4 (3.14 "Pi")) (0 0 0 (0.0 "Koordinatenursprung")) )];
|
|
let pcNameValueEmpty = [const pointcloud2 (EUCLID (tuple([Name: string, Value: real]))) value ( )];
|
|
let pcNameValueWGS84 = [const pointcloud2 (WGS84 (tuple([Name: string, Value: real]))) value ( (1 6 1 ("GoldenerSchnitt" 1.618)) (0 5 7 ("Eulerkonstante" 0.5772)) )];
|
|
|
|
let pcNameAlter = [const pointcloud2 (EUCLID (tuple([Name: string, Alter: int]))) value ( (-9.9 0.0 4.1 ("Hans" 64)) (-0.1 -99.9 -6.0 ("Tim" 39)) (1.0 -5.1 -1.01 ("Karl" 1)) )];
|
|
let pcNameAlterEmpty = [const pointcloud2 (EUCLID (tuple([Name: string, Alter: int]))) value ( )];
|
|
let pcAlterName = [const pointcloud2 (EUCLID (tuple([Alter: int, Name: string]))) value ( (1.0 2.0 3.0 (10 "Haensel")) (4.0 5.0 6.0 (11 "Gretel")) )];
|
|
|
|
let pcNoAttrs1 = [const pointcloud2(EUCLID) value ( (1 2 3) (4 5 6) )];
|
|
let pcNoAttrs2 = [const pointcloud2(EUCLID) value ( (-1 -2 -3) (-4 -5 -6) )];
|
|
|
|
let pc_test1 = rasterTestPc2(100, FALSE);
|
|
let pc_test2 = rasterTestPc2(200, TRUE);
|
|
|
|
let pc_las = importPc2FromLas('../Algebras/Pointcloud2/test-specs/imports/20110304_10SDH9607.las');
|
|
|
|
########################################
|
|
# OPERATOR - MERGE
|
|
########################################
|
|
|
|
#testcase -1- merge with match in one of two attributes
|
|
#yields ((pointcloud2 (EUCLID (tuple((Name string))))) ( (1.0 6.0 1.0 ("GoldenerSchnitt")) (0.0 5.0 7.0 ("Eulerkonstante")) (-9.9 0.0 4.1 ("Hans")) (-0.1 -99.9 -6.0 ("Tim")) (1.0 -5.1 -1.01 ("Karl")) ))
|
|
query merge(pcNameValue, pcNameAlter)
|
|
|
|
#testcase -2- merge with same attribute names, but attribut types do not match
|
|
#yields ((pointcloud2 EUCLID) ( (1.0 6.0 1.0) (0.0 5.0 7.0) (3.0 1.0 4.0) (0.0 0.0 0.0) ) )
|
|
query merge(pcNameValue, pcNameValue2)
|
|
|
|
#testcase -3- merge with same tuple type, but second pointcloud is empty
|
|
#yields ((pointcloud2(EUCLID(tuple((Name string)(Alter int))))) ( (-9.9 0.0 4.1 ("Hans" 64)) (-0.1 -99.90000000000001 -6.0 ("Tim" 39)) (1.0 -5.1 -1.01 ("Karl" 1)) ))
|
|
query merge(pcNameAlter, pcNameAlterEmpty)
|
|
|
|
#testcase -4- merge with same attribute names and types, but in different order
|
|
#yields ((pointcloud2(EUCLID(tuple ( (Name string) (Alter int))))) ( (-9.9 0.0 4.1 ("Hans" 64)) (-0.1 -99.9 -6.0 ("Tim" 39)) (1.0 -5.1 -1.01 ("Karl" 1)) (1.0 2.0 3.0 ("Haensel" 10)) (4.0 5.0 6.0 ("Gretel" 11))))
|
|
query merge(pcNameAlter, pcAlterName)
|
|
|
|
#testcase -5- same as last testcase but with clouds in reverse order.
|
|
#yields ((pointcloud2(EUCLID(tuple ( (Alter int) (Name string))))) ( (1.0 2.0 3.0 (10 "Haensel")) (4.0 5.0 6.0 (11 "Gretel")) (-9.9 0.0 4.1 (64 "Hans")) (-0.1 -99.9 -6.0 (39 "Tim")) (1.0 -5.1 -1.01 (1 "Karl")) ))
|
|
query merge(pcAlterName, pcNameAlter)
|
|
|
|
#testcase -6- merge different reference systems
|
|
#yields error
|
|
query merge(pcNameValue, pcNameValueWGS84)
|
|
|
|
#testcase -7- merge pointcloud with itself
|
|
#yields ((pointcloud2 (EUCLID (tuple ((Name string)(Alter int))))) ( (-9.9 0.0 4.1 ("Hans" 64)) (-0.1 -99.9 -6.0 ("Tim" 39)) (1.0 -5.1 -1.01 ("Karl" 1)) (-9.9 0.0 4.1 ("Hans" 64)) (-0.1 -99.90000000000001 -6.0 ("Tim" 39)) (1.0 -5.1 -1.01 ("Karl" 1))))
|
|
query merge(pcNameAlter, pcNameAlter)
|
|
|
|
#testcase -8- merge empty pointclouds with one of two matching attributes
|
|
#yields ((pointcloud2 (EUCLID (tuple((Name string))))) ( ))
|
|
query merge(pcNameValueEmpty, pcNameAlterEmpty)
|
|
|
|
#testcase -9- merge pointclouds with no attributes
|
|
#yields ( (pointcloud2 EUCLID) ((1.0 2.0 3.0) (4.0 5.0 6.0) (-1.0 -2.0 -3.0) (-4.0 -5.0 -6.0)))
|
|
query merge(pcNoAttrs1, pcNoAttrs2)
|
|
|
|
#testcase -10- merge 2 random clouds
|
|
#yields success
|
|
query merge(pc_test1,pc_test2);
|
|
|
|
#testcase -11- merge with lasimport and same rs
|
|
#yields (int 58589)
|
|
query size(merge(pcNameValueWGS84,pc_las));
|
|
|
|
|
|
#teardown
|
|
kill pcNameValue;
|
|
kill pcNameValue2;
|
|
kill pcNameValueEmpty;
|
|
kill pcNameValueWGS84;
|
|
kill pcNameAlter;
|
|
kill pcNameAlterEmpty;
|
|
kill pcAlterName;
|
|
kill pcNoAttrs1;
|
|
kill pcNoAttrs2;
|
|
kill pc_las;
|
|
close database;
|
|
delete database pc2test;
|