diff options
Diffstat (limited to 'rasodmg/test/gen_rollup.pl')
-rw-r--r-- | rasodmg/test/gen_rollup.pl | 209 |
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(); |