summaryrefslogtreecommitdiffstats
path: root/rasodmg/test/gen_rollup.pl
diff options
context:
space:
mode:
Diffstat (limited to 'rasodmg/test/gen_rollup.pl')
-rw-r--r--rasodmg/test/gen_rollup.pl209
1 files changed, 209 insertions, 0 deletions
diff --git a/rasodmg/test/gen_rollup.pl b/rasodmg/test/gen_rollup.pl
new file mode 100644
index 0000000..a3d60e0
--- /dev/null
+++ b/rasodmg/test/gen_rollup.pl
@@ -0,0 +1,209 @@
+#!/usr/local/dist/bin/perl
+
+$repeat = 20;
+
+sub randNum($$);
+# initialize rand()
+srand();
+
+sub randNum
+{
+ my ($l, $h) = @_;
+
+ return int ( $l + rand()*($h-$l) );
+}
+
+sub rollZ
+{
+ my $tomo = @_[0];
+ for ($i = 1; $i <= $repeat; $i++) {
+ $start = randNum(0, 153-6);
+ print "// [\"z\"] $tomo [*:*, *:*, $start:";
+ print $start + 6;
+ print "]\n";
+ print "SELECT img[*:*,*:*,$start]";
+ for ($j = $start + 1; $j <= $start + 6; $j++) {
+ print "+img[*:*,*:*,$j]";
+ }
+ print "\nFROM $tomo as img\n";
+ }
+}
+
+sub rollY
+{
+ my $tomo = @_[0];
+ for ($i = 1; $i <= $repeat; $i++) {
+ $start = randNum(0, 255-6);
+ print "// [\"y\"] $tomo [*:*, $start:";
+ print $start + 6;
+ print ", *:*]\n";
+ print "SELECT img[*:*,$start,*:*]";
+ for ($j = $start + 1; $j <= $start + 6; $j++) {
+ print "+img[*:*,$j,*:*]";
+ }
+ print "\nFROM $tomo as img\n";
+ }
+}
+
+sub rollX
+{
+ my $tomo = @_[0];
+ for ($i = 1; $i <= $repeat; $i++) {
+ $start = randNum(0, 255-6);
+ print "// [\"x\"] $tomo [$start:";
+ print $start + 6;
+ print ",*:*,*:*]\n";
+ print "SELECT img[$start,*:*,*:*]";
+ for ($j = $start + 1; $j <= $start + 6; $j++) {
+ print "+img[$j,*:*,*:*]";
+ }
+ print "\nFROM $tomo as img\n";
+ }
+}
+
+sub SQLrollX
+{
+ my $tomo = shift;
+
+ for($i = 1; $i <= $repeat; $i++)
+ {
+ $start = randNum(0, 153-6);
+ $end = $start + 6;
+ print "
+--#COMMENT BETWEEN $start AND $end
+
+SELECT y, z, sum(val)
+FROM $tomo
+WHERE x BETWEEN $start AND $end
+GROUP BY y, z
+;
+ ";
+
+
+ }
+}
+
+sub SQLrollY
+{
+ my $tomo = shift;
+
+ for($i = 1; $i <= $repeat; $i++)
+ {
+ $start = randNum(0, 255-6);
+ $end = $start + 6;
+ print "
+--#COMMENT BETWEEN $start AND $end
+
+SELECT x, z, sum(val)
+FROM $tomo
+WHERE y BETWEEN $start AND $end
+GROUP BY x, z
+;
+ ";
+
+
+ }
+}
+
+sub SQLrollZ
+{
+ my $tomo = shift;
+
+ for($i = 1; $i <= $repeat; $i++)
+ {
+ $start = randNum(0, 255-6);
+ $end = $start + 6;
+ print "
+--#COMMENT BETWEEN $start AND $end
+
+SELECT x, y, sum(val)
+FROM $tomo
+WHERE z BETWEEN $start AND $end
+GROUP BY x, y
+;
+ ";
+
+
+ }
+}
+
+sub genRollXYZ
+{
+ $headerStr = "
+// Testing roll up operations on different axes. It adds seven
+// consecutive slices along the corresponding Axis with a random
+// starting point on all four tomos..
+
+";
+
+ @mdd = ( tomo_sliced, tomo_cubed_16, tomo_cubed, tomo_cubed_64 );
+ foreach $tomo (@mdd)
+ {
+ rollX($tomo);
+ rollY($tomo);
+ rollZ($tomo);
+ };
+}
+
+sub genRollZ
+{
+ $headerStr = "
+// Testing roll up operations on different tomos. It adds seven
+// consecutive slices along the z-Axis with a random starting
+// point.
+
+";
+
+ @mdd = ( tomo_sliced, tomo_cubed, tomo_cubed_16, tomo_cubed_64 );
+ foreach $tomo (@mdd)
+ {
+ rollZ($tomo);
+ };
+}
+
+sub genSQLRollX
+{
+ $tomo = "tomo";
+
+ $headerStr = "
+-- tomo_rollX.sql
+-- tests rolling up tomo along x-axes.
+
+--#SET PERF_DETAIL 1 ROWS_FETCH -1 ROWS_OUT 0
+
+";
+ print $headerStr;
+ SQLrollX($tomo);
+}
+
+sub genSQLRollY
+{
+ $tomo = "tomo";
+
+ $headerStr = "
+-- tomo_rollY.sql
+-- tests rolling up tomo along y-axes.
+
+--#SET PERF_DETAIL 1 ROWS_FETCH -1 ROWS_OUT 0
+
+";
+ print $headerStr;
+ SQLrollY($tomo);
+}
+
+sub genSQLRollZ
+{
+ $tomo = "tomo";
+
+ $headerStr = "
+-- tomo_rollZ.sql
+-- tests rolling up tomo along z-axes.
+
+--#SET PERF_DETAIL 1 ROWS_FETCH -1 ROWS_OUT 0
+
+";
+ print $headerStr;
+ SQLrollZ($tomo);
+}
+
+genSQLRollX();