Files
secondo/Algebras/MRegionOps3/test/mregionops35.test
2026-01-23 17:03:45 +08:00

98 lines
3.1 KiB
Plaintext

#
# MRegionOps3Algebra-Testfile
#
# November 2017, U. Wiesecke
#
# *
# * Note: Call this testscript as follows:
# * TestRunner --no-tmp -i ../Algebras/MRegionOps3/test/mregionops35.test
# *
################################################################################
# *
# * Preparing the test database
# *
################################################################################
#testcase create database opt
#yields success
#create database opt;
#testcase open database opt
#yields success
open database opt;
delete gwGK;
delete wuGK;
################################################################################
# *
# * Create test data
# *
################################################################################
restore gwGK from '../Algebras/MRegionOps3/test/gwGK';
restore wuGK from '../Algebras/MRegionOps3/test/wuGK';
################################################################################
# *
# * Detailed test, preparation
# *
################################################################################
delete t0A;
delete t0B;
delete t1A;
delete t1B;
delete t0;
delete t1;
delete noSamples;
delete step;
delete samples;
delete tolerance;
delete gwwuGKi;
delete gwwuGKu;
delete gwwuGkm;
let noSamples = 100.0;
let t0A = instant2real(inst(initial(gwGK)));
let t0B = instant2real(inst(initial(wuGK)));
let t1A = instant2real(inst(final(gwGK)));
let t1B = instant2real(inst(final(wuGK)));
let t0 = ifthenelse(t0A < t0B, t0A, t0B);
let t1 = ifthenelse(t1A > t1B, t1A, t1B);
let step = (abs(t1 - t0)) / noSamples;
let samples = realstream(t0, t1, step)
use[fun(t: real) create_instant(t)] transformstream consume;
let tolerance = 30.0;
################################################################################
# *
# * Detailed test, Union
# *
################################################################################
#testcase gwGK union wuGK
#yields ()
let gwwuGKu = gwGK union wuGK;
#yields (bool TRUE)
query samples feed transformstream
use[ fun(t: instant) abs( area(val(gwwuGKu atinstant t)) -
area( val(gwGK atinstant t) union val(wuGK atinstant t))
)] transformstream max[Elem] < tolerance;
################################################################################
# *
# * Detailed test, Intersection
# *
################################################################################
#testcase intersection(gwGK, wuGK)
#yields ()
let gwwuGKi = intersection(gwGK, wuGK);
#yields (bool TRUE)
query samples feed transformstream
use[ fun(t: instant) abs( area(val(gwwuGKi atinstant t)) -
area( intersection(val(gwGK atinstant t), val(wuGK atinstant t)))
)] transformstream max[Elem] < tolerance;
################################################################################
# *
# * Detailed test, Minus
# *
################################################################################
#testcase gwGK minus wuGK
#yields ()
let gwwuGkm = gwGK minus wuGK;
#yields (bool TRUE)
query samples feed transformstream
use[ fun(t: instant) abs( area(val(gwwuGkm atinstant t)) -
area( val(gwGK atinstant t) minus val(wuGK atinstant t))
)] transformstream max[Elem] < tolerance;