601 lines
13 KiB
Plaintext
601 lines
13 KiB
Plaintext
# This file is part of SECONDO.
|
|
#
|
|
# Copyright (C) 2004, University in Hagen, Department of Computer Science,
|
|
# Database Systems for New Applications.
|
|
#
|
|
# SECONDO is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; either version 2 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# SECONDO is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with SECONDO; if not, write to the Free Software
|
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
#
|
|
# An example test spec for the Secondo TestRunner
|
|
# run it with :
|
|
#
|
|
# TestRunner -i example.test
|
|
#
|
|
# By default a temporary database directory will be created. If you
|
|
# want to use existing databases run
|
|
#
|
|
# TestRunner --no-tmp -i <file>
|
|
#
|
|
# If one of your tests (say number N ) reports an error you can run
|
|
# it directly by
|
|
#
|
|
# TestRunner -i <file> -num N
|
|
#
|
|
# this is useful for debugging
|
|
|
|
# A test specification consists of initial commands, a section of commands
|
|
# setting up the test, a sequence of test cases, and a section of commands
|
|
# cleaning up. The TestRunner uses directives to specify these sections.
|
|
# directives are specified in comment lines, all comment lines beginning with a
|
|
# directive are interpreted as commands to the TestRunner, non-comment lines are
|
|
# passed to Secondo. The possible directives are SETUP, TESTCASE, YIELDS and
|
|
# TEARDOWN (here i have written the directives in upper case to avoid confusion,
|
|
# the real directives must be written in lower case). The meanings of those
|
|
# directives are explained the following commented examples.
|
|
|
|
|
|
# the SETUP directive may specify the name of the test and a
|
|
# some algebra modules which are needed for it.
|
|
# the SETUP directive must appear exactly once in a test spec
|
|
|
|
#setup mainmemorytest StandardAlgebra RelationAlgebra MainMemoryAlgebra
|
|
|
|
|
|
open database berlintest
|
|
|
|
#testcase MemoryRelObject
|
|
#yields success
|
|
let t1 = ten feed mconsume;
|
|
|
|
#testcase MemoryRelObject
|
|
#yields success
|
|
query t1;
|
|
|
|
#testcase MemoryRelObject
|
|
#yields success
|
|
delete t1;
|
|
|
|
#testcase meminit
|
|
#yields error
|
|
query meminit ("ssn");
|
|
|
|
#testcase meminit
|
|
#yields (int 6000)
|
|
query meminit (6000);
|
|
|
|
|
|
#testcase memload1
|
|
#yields (bool TRUE)
|
|
query memload ("ten");
|
|
|
|
|
|
#testcase mcreateAVLtree
|
|
#yields (string "ten_No")
|
|
query "ten" mcreateAVLtree ["No"];
|
|
|
|
#testcase matchbelow
|
|
#yields ((rel(tuple((No int))))((10)))
|
|
query "ten_No" "ten" matchbelow[11] consume
|
|
|
|
#testcase matchbelow
|
|
#yields ((rel(tuple((No int))))((1)))
|
|
query "ten_No" "ten" matchbelow[1] consume
|
|
|
|
#testcase matchbelow
|
|
#yields ((rel(tuple((No int))))((5)))
|
|
query "ten_No" "ten" matchbelow[5] consume
|
|
|
|
#testcase matchbelow
|
|
#yields ((rel(tuple((No int))))())
|
|
query "ten_No" "ten" matchbelow[0] consume
|
|
|
|
|
|
#testcase memload2
|
|
#yields error
|
|
query memload (3);
|
|
|
|
#testcase memload3
|
|
#yields error
|
|
query memload ("tendd");
|
|
|
|
#testcase memload4
|
|
#yields (bool TRUE)
|
|
query memloadflob ("tiergarten");
|
|
|
|
#testcase memgetcatalog
|
|
#yields (int 3)
|
|
query memgetcatalog() count;
|
|
|
|
#testcase memload4
|
|
#yields (bool TRUE)
|
|
query memload ("strassen");
|
|
|
|
close database;
|
|
|
|
open database nrw;
|
|
|
|
#testcase strassenAccessible
|
|
#yields error
|
|
query "strassen" mfeed consume;
|
|
|
|
#testcase memgetcatalog
|
|
#yields (int 4)
|
|
query memgetcatalog() count;
|
|
|
|
close database;
|
|
|
|
open database berlintest;
|
|
|
|
#testcase memdelete
|
|
#yields (bool TRUE)
|
|
query memdelete("strassen");
|
|
|
|
#testcase memloadflob4
|
|
#yields (bool TRUE)
|
|
query memloadflob ("strassen");
|
|
|
|
close database;
|
|
|
|
open database nrw;
|
|
|
|
#testcase strassenAccessible
|
|
#yields @../Algebras/MainMemory/mm.result5
|
|
query "strassen" mfeed letmconsume ["strassenTest"];
|
|
|
|
#testcase memload5
|
|
#yields (bool TRUE)
|
|
query memload ("Roads");
|
|
|
|
#testcase memload6
|
|
#yields error
|
|
query memloadflob ("Roads");
|
|
|
|
#testcase memload7
|
|
#yields error
|
|
query memloadflob (3);
|
|
|
|
#testcase memload8
|
|
#yields error
|
|
query memloadflob ("tendd");
|
|
|
|
#testcase meminit
|
|
#yields (int 980)
|
|
query meminit (200);
|
|
|
|
#testcase meminit
|
|
#yields (int 6096)
|
|
query meminit (8000);
|
|
|
|
#testcase mfeed
|
|
#yields error
|
|
query "keinElement" mfeed count
|
|
|
|
#testcase mfeed
|
|
#yields error
|
|
query "ten" mfeed consume
|
|
|
|
#testcase mfeed
|
|
#yields (int 3212)
|
|
query "strassenTest" mfeed count;
|
|
|
|
#testcase mfeed
|
|
#yields error
|
|
query 3 mfeed count;
|
|
|
|
#testcase letmconsume
|
|
#yields error
|
|
query "keinStream" letmconsume ["zehn"];
|
|
|
|
#testcase letmconsume
|
|
#yields @../Algebras/MainMemory/mm.result6
|
|
query "strassenTest" mfeed letmconsume ["ten"];
|
|
|
|
#testcase letmconsume
|
|
#yields @../Algebras/MainMemory/mm.result4
|
|
query Roads feed head[7] letmconsume ["Roads7"];
|
|
|
|
#testcase memdelete
|
|
#yields error
|
|
query memdelete ();
|
|
|
|
#testcase memdelete
|
|
#yields error
|
|
query memdelete ("nicht vorhanden");
|
|
|
|
#testcase memdelete
|
|
#yields error
|
|
query memdelete (7);
|
|
|
|
#testcase memdelete
|
|
#yields (bool TRUE)
|
|
query memdelete ("Roads7");
|
|
|
|
#testcase memobject
|
|
#yields error
|
|
query memobject ("nichtvorhanden");
|
|
|
|
#testcase memobject
|
|
#yields error
|
|
query memobject (1);
|
|
|
|
#testcase memobject
|
|
#yields @../Algebras/MainMemory/mm.result1
|
|
query memobject ("tiergarten");
|
|
|
|
#testcase memgetcatalog
|
|
#yields error
|
|
query memgetcatalog(tiergarten) count;
|
|
|
|
#testcase memgetcatalog
|
|
#yields error
|
|
query memgetcatalog(3) count;
|
|
|
|
#testcase memgetcatalog
|
|
#yields error
|
|
query memgetcatalog("test") count;
|
|
|
|
#testcase memgetcatalog()
|
|
#yields (int 6)
|
|
query memgetcatalog() count;
|
|
|
|
#testcase memlet
|
|
#yields error
|
|
query memlet("Roads6", Roads feed head[6], 3);
|
|
|
|
#testcase memlet
|
|
#yields error
|
|
query memlet("Roads6", nichtvorhanden);
|
|
|
|
#testcase memlet
|
|
#yields (bool TRUE)
|
|
query memlet("Roads6", Roads feed head[6]);
|
|
|
|
#testcase memlet
|
|
#yields error
|
|
query memlet("Roads6", Roads feed head[8]);
|
|
|
|
#testcase memgetcatalog()
|
|
#yields (int 7)
|
|
query memgetcatalog() count;
|
|
|
|
#testcase memlet
|
|
#yields (bool TRUE)
|
|
query memlet("tiergartenmm", tiergarten);
|
|
|
|
#testcase memletflob
|
|
#yields error
|
|
query memletflob("Roads20", Roads feed head[6], 3);
|
|
|
|
#testcase memletflob
|
|
#yields error
|
|
query memlet("Roads20", nichtvorhanden);
|
|
|
|
#testcase memletflob
|
|
#yields (bool TRUE)
|
|
query memletflob("Roads20", Roads feed head[20]);
|
|
|
|
#testcase memletflob
|
|
#yields error
|
|
query memletflob("Roads20", Roads feed head[8]);
|
|
|
|
#testcase memgetcatalog()
|
|
#yields (int 9)
|
|
query memgetcatalog() count;
|
|
|
|
#testcase memletflob
|
|
#yields (bool TRUE)
|
|
query memletflob("tiergartenmmflob", tiergarten);
|
|
|
|
#testcase memupdate
|
|
#yields error
|
|
query memupdate("Roads6", Buildings feed head[8]);
|
|
|
|
#testcase memgetcatalog()
|
|
#yields (int 10)
|
|
query memgetcatalog() count
|
|
|
|
#testcase memupdate
|
|
#yields error
|
|
query memupdate("tiergarten", Roads feed head[8]);
|
|
|
|
#testcase memupdate
|
|
#yields error
|
|
query memupdate("tiergarten", testrectangle);
|
|
|
|
#testcase memupdate
|
|
#yields (bool TRUE)
|
|
query memupdate("tiergarten", testregion);
|
|
|
|
#testcase memupdate
|
|
#yields error
|
|
query memupdate("nichtVorhanden", Roads feed head[8]);
|
|
|
|
#testcase memupdate
|
|
#yields (bool TRUE)
|
|
query memupdate("Roads6", Roads feed head[8]);
|
|
|
|
#testcase mcreateRtree
|
|
#yields error
|
|
query "nichtVorhanden" mcreateRtree ["GeoData"];
|
|
|
|
#testcase mcreateRtree
|
|
#yields error
|
|
query "Roads" mcreateRtree ["Name"];
|
|
|
|
#testcase mcreateRtree
|
|
#yields error
|
|
query "Roads" mcreateRtree ["noAttribute"];
|
|
|
|
#testcase mcreateRtree
|
|
#yields error
|
|
query "Roads" mcreateRtree [7];
|
|
|
|
#testcase mcreateRtree
|
|
#yields error
|
|
query "Roads" mcreateRtree ["GeoData", "Name"];
|
|
|
|
#testcase mcreateRtree
|
|
#yields (string "Roads_GeoData")
|
|
query "Roads" mcreateRtree ["GeoData"];
|
|
|
|
#testcase mcreateRtree2
|
|
#yields (string "Roads_GeoData_2")
|
|
query "Roads" mfeed projectextend [Name,Type, GeoData; TID: tupleid(.)] mcreateRtree2 [GeoData, "Roads_GeoData_2"];
|
|
|
|
#testcase mwindowintersects
|
|
#yields (int 74583)
|
|
query mwindowintersects ("Roads_GeoData_2", "Roads", testrectangle) count;
|
|
|
|
#testcase mcreateRtree
|
|
#yields (string "Waterways_GeoData")
|
|
query Waterways feed letmconsume ["Waterways"] mcreateRtree ["GeoData"];
|
|
|
|
#testcase memdelete
|
|
#yields (bool TRUE)
|
|
query memdelete ("Waterways");
|
|
|
|
#testcase memsize
|
|
#yields error
|
|
query memsize("test");
|
|
|
|
#testcase memsize
|
|
#yields error
|
|
query memsize(300);
|
|
|
|
#testcase memsize
|
|
#yields (int 6096)
|
|
query memsize();
|
|
|
|
#testcase minsert....
|
|
#yields error
|
|
query minsert (Railways feed head [5], "Roads20") count
|
|
|
|
#testcase minsert....
|
|
#yields error
|
|
query minsert (Roads feed head [5], "Roa") count
|
|
|
|
#testcase minsert....
|
|
#yields error
|
|
query minsert (Roads feed head [5], 7) count
|
|
|
|
#testcase minsert....
|
|
#yields error
|
|
query minsert (Roads, "Roads20") count
|
|
|
|
#testcase minsert....
|
|
#yields (int 25)
|
|
query minsert (Roads feed head [5], "Roads20") count
|
|
|
|
#testcase mwindowintersects
|
|
#yields (int 14671)
|
|
query mwindowintersects ("Roads_GeoData", "Roads", bbox(testregion)) count;
|
|
|
|
#testcase mwindowintersects
|
|
#yields (int 74583)
|
|
query mwindowintersects ("Roads_GeoData", "Roads", bbox(testrectangle)) count;
|
|
|
|
#testcase mwindowintersects
|
|
#yields (int 74583)
|
|
query mwindowintersects ("Roads_GeoData", "Roads", testrectangle) count;
|
|
|
|
#testcase mwindowintersects
|
|
#yields error
|
|
query mwindowintersects ("nichts", "Roads", testrectangle) count;
|
|
|
|
#testcase mwindowintersects
|
|
#yields error
|
|
query mwindowintersects ("Roads_GeoData", "nichts", testrectangle) count;
|
|
|
|
#testcase mwindowintersects
|
|
#yields (int 0)
|
|
query mwindowintersects ("Roads_GeoData", "Roads", tiergarten) count;
|
|
|
|
#testcase mcreateAVLtree
|
|
#yields error
|
|
query "nichtVorh" mcreateAVLtree ["Name"]
|
|
|
|
#testcase mcreateAVLtree
|
|
#yields error
|
|
query Roads mcreateAVLtree ["Name"]
|
|
|
|
#testcase mcreateAVLtree
|
|
#yields error
|
|
query 7 mcreateAVLtree ["Name"]
|
|
|
|
#testcase mcreateAVLtree
|
|
#yields error
|
|
query "Roads" mcreateAVLtree ["nichtVor"]
|
|
|
|
#testcase mcreateAVLtree
|
|
#yields error
|
|
#query "Roads" mcreateAVLtree ["GeoData"]
|
|
|
|
#testcase mcreateAVLtree
|
|
#yields (string "Roads_Name")
|
|
query "Roads" mcreateAVLtree ["Name"]
|
|
|
|
#testcase mcreateAVLtree
|
|
#yields (string "Waterways_Name")
|
|
query Waterways feed letmconsume ["Waterways"] mcreateAVLtree ["Name"]
|
|
|
|
#testcase memdelete
|
|
#yields (bool TRUE)
|
|
query memdelete ("Waterways");
|
|
|
|
#testcase mexactmatch
|
|
#yields error
|
|
query "Roads_Name" "gibtsNicht" mexactmatch["Zweifaller Weg"] count
|
|
|
|
#testcase mexactmatch
|
|
#yields error
|
|
query "Roads_Name" "Roads" mexactmatch[7] count
|
|
|
|
#testcase mexactmatch
|
|
#yields error
|
|
query "gibtsNicht" "Roads" mexactmatch["Zweifaller Weg"] count
|
|
|
|
#testcase mexactmatch
|
|
#yields error
|
|
query 7 "Roads" mexactmatch["Zweifaller Weg"] count
|
|
|
|
#testcase mexactmatch
|
|
#yields error
|
|
query "Roads_Name" 7 mexactmatch["Zweifaller Weg"] count
|
|
|
|
#testcase mexactmatch
|
|
#yields (int 7)
|
|
query "Roads_Name" "Roads" mexactmatch["Zweifaller Weg"] count
|
|
|
|
#testcase mexactmatch
|
|
#yields (int 1)
|
|
query "Roads_Name" "Roads" mexactmatch["Sennetrift"] count
|
|
|
|
#testcase mexactmatch
|
|
#yields (int 70)
|
|
query "Roads_Name" "Roads" mexactmatch["Lütticher Straße"] count
|
|
|
|
#testcase mexactmatch
|
|
#yields (int 0)
|
|
query "Roads_Name" "Roads" mexactmatch["Spass Straße"] count
|
|
|
|
#testcase memlet
|
|
#yields (bool TRUE)
|
|
query memlet ("Roads30", Roads feed head[30]);
|
|
|
|
#testcase mexactmatch
|
|
#yields (int 0)
|
|
query "Roads_Name" "Roads" mexactmatch["Ötter Weg"] count
|
|
|
|
#testcase mcreateAVLtree
|
|
#yields (string "Roads30_Name")
|
|
query "Roads30" mcreateAVLtree ["Name"]
|
|
|
|
#testcase mexactmatch
|
|
#yields (int 3)
|
|
query "Roads30_Name" "Roads30" mexactmatch[""] count
|
|
|
|
|
|
|
|
#noch andere Testfälle für mrange
|
|
|
|
|
|
|
|
#testcase mrange
|
|
#yields (int 6)
|
|
query "Roads30_Name" "Roads30" mrange ["Kellnerstraße", "Paulstraße"] count
|
|
|
|
#testcase mrange
|
|
#yields (int 7)
|
|
query "Roads30_Name" "Roads30" mrange ["", "Dürener Straße"] count
|
|
|
|
#testcase mrange
|
|
#yields (int 6)
|
|
query "Roads30_Name" "Roads30" mrange ["", "Clam Straße"] count
|
|
|
|
#testcase mrange
|
|
#yields (int 3)
|
|
query "Roads30_Name" "Roads30" mrange ["Zweifaller Weg", "Österwieher Straße"] count
|
|
|
|
#testcase mrange
|
|
#yields (int 1)
|
|
query "Roads30_Name" "Roads30" mrange ["Österwieher Straße", "Österwieher Weg"] count
|
|
|
|
#testcase mrange
|
|
#yields (int 3)
|
|
query "Roads30_Name" "Roads30" mrange ["", ""] count
|
|
|
|
#testcase mrange
|
|
#yields (int 70)
|
|
query "Roads_Name" "Roads" mrange ["Lütticher Straße", "Lütticher Straße"] count
|
|
|
|
|
|
#noch andere Testfälle für matchbelow
|
|
|
|
#testcase matchbelow
|
|
#yields @../Algebras/MainMemory/mm.result3
|
|
query "Roads30_Name" "Roads30" matchbelow ["Paulstraße"] consume
|
|
|
|
#testcase matchbelow(Nordstrasse gibts nicht)
|
|
#yields @../Algebras/MainMemory/mm.result3
|
|
query "Roads30_Name" "Roads30" matchbelow ["Nordstraße"] consume
|
|
|
|
|
|
|
|
|
|
#testcase memclear
|
|
#yields error
|
|
query memclear("test");
|
|
|
|
#testcase memclear
|
|
#yields error
|
|
query memclear(6);
|
|
|
|
#testcase memclear
|
|
#yields (bool TRUE)
|
|
query memclear();
|
|
|
|
#testcase memgetcatalog
|
|
#yields (int 0)
|
|
query memgetcatalog() count;
|
|
|
|
close database;
|
|
|
|
open database berlintest;
|
|
|
|
#testcase memload
|
|
#yields (bool TRUE)
|
|
query memloadflob("ten");
|
|
|
|
#testcase mconsume ...
|
|
#yields ((memoryRelObject(tuple ((No int))))((1) (2) (3) (4) (5) (6) (7) (8) (9) (10)))
|
|
query "ten" mfeed mconsume
|
|
|
|
#testcase mconsume ...
|
|
#yields ((memoryRelObject(tuple ((No int))))((1) (2) (3) (4) (5) (6) (7) (8) (9) (10)))
|
|
query ten feed mconsume
|
|
|
|
#testcase memload
|
|
#yields (bool TRUE)
|
|
query memload("UnitTrains");
|
|
|
|
#testcase mcreateRtree
|
|
#yields (string "UnitTrains_UTrip")
|
|
query "UnitTrains" mcreateRtree ["UTrip"];
|
|
|
|
#testcase mcreateRtree
|
|
#yields (string undefined)
|
|
query "UnitTrains" mcreateRtree ["UTrip"];
|
|
|
|
close database;
|