:- module(bimetatrans_tests, [test_bimetatrans/0]).
:- use_module(bimetatrans).
:- use_module(library(dcgs)).
:- use_module(library(iso_ext)).
:- use_module(library(lists)).
:- use_module(library(si)).
/* test(N, Prolog, XML) is expanded to the predicates
*
* prolog2ruleml_N :- parse_ruleml(Prolog, XML0), XML0 = XML.
* ruleml2prolog_N :- parse_ruleml(Prolog0, XML), Prolog0 = Prolog.
*
* test_N :- prolog2ruleml_N, ruleml2prolog_N, !.
* test_N :- throw(error(test_failure, test_N)).
*
* which test the invertibility of parse_ruleml/2.
*
* The initialization goal is a chain of calls to the test_N in
* order of ascending N.
*/
until_non_space_or_end([C|Cs], Cs1) :-
( C == (' ') ->
until_non_space_or_end(Cs, Cs1)
; Cs1 = [C|Cs]
).
until_non_space_or_end([], []).
strip_indentation(Cs, String) :-
strip_indentation_(Cs, Cs1),
partial_string(Cs1, String, []).
strip_indentation_([C|Cs], Cs0) :-
( C == ('>') ->
until_non_space_or_end(Cs, Cs1),
Cs0 = [C|Cs2],
strip_indentation_(Cs1, Cs2)
; Cs0 = [C|Cs1],
strip_indentation_(Cs, Cs1)
).
strip_indentation_([], []).
user:term_expansion(Term0, Term) :-
nonvar(Term0),
Term0 = test(N, Assert, Query, XML),
integer(N),
list_si(Assert),
list_si(Query),
partial_string(XML),
number_chars(N, NChars),
atom_chars(NAtom, NChars),
atom_concat(prolog2ruleml_, NAtom, Prolog2RuleML),
atom_concat(ruleml2prolog_, NAtom, RuleML2Prolog),
atom_concat(test_, NAtom, TestN),
strip_indentation(XML, XML1),
Term = [(Prolog2RuleML :- parse_ruleml(Assert, Query, XML0),
XML0 = XML1),
(RuleML2Prolog :- parse_ruleml(Assert0, Query0, XML),
Assert0 = Assert,
Query0 = Query),
(TestN :- write(test(N)), nl, Prolog2RuleML, RuleML2Prolog, !),
(TestN :- throw(error(test_failure, TestN)))].
test(1,
[people('Alex',male),people('Alex',female),people('Siri',female)],
[],
"\
\
people\
Alex\
male\
\
\
people\
Alex\
female\
\
\
people\
Siri\
female\
\
").
test(2,
[parent('Alex','Mary')],
[],
"\
\
parent\
Alex\
Mary\
\
").
test(3,
[people('Alex',male),people('Alex',female),people('Siri',female),parent('Alex','Mary'),parent('Mary','Tom')],
[],
"\
\
people\
Alex\
male\
\
\
people\
Alex\
female\
\
\
people\
Siri\
female\
\
\
parent\
Alex\
Mary\
\
\
parent\
Mary\
Tom\
\
").
test(4,
[(ancestor(mark, terry) :- true)],
[],
"\
\
\
\
ancestor\
mark\
terry\
\
\
\
\
true\
\
\
\
").
test(5,
[(ancestor(mark, '$V'(y)) :- parent(mark, '$V'(x)), ancestor('$V'(x), '$V'(y)))],
[],
"\
\
\
\
ancestor\
mark\
y\
\
\
\
\
\
parent\
mark\
x\
\
\
ancestor\
x\
y\
\
\
\
\
").
test(6,
[(ancestor(mark, terry) :- condition_1, condition_2)],
[],
"\
\
\
\
ancestor\
mark\
terry\
\
\
\
\
\
condition_1\
\
\
condition_2\
\
\
\
\
").
test(7,
[(roots(nationality('$V'(x), '$V'(nation)), '$V'(y)) :- parent('$V'(x), '$V'(y)), nationality('$V'(y), '$V'(nation)))],
[],
"\
\
\
\
roots\
\
nationality\
x\
nation\
\
y\
\
\
\
\
\
parent\
x\
y\
\
\
nationality\
y\
nation\
\
\
\
\
").
test(8,
[a(item), b(item), c(item)],
[],
"\
\
a\
item\
\
\
b\
item\
\
\
c\
item\
\
").
test(9,
[number(1)],
[],
"\
\
number\
1\
\
").
test(10,
[number(1.2)],
[],
"\
\
number\
1.2\
\
").
test(11,
[number(-1.2)],
[],
"\
\
number\
-1.2\
\
").
test(12,
[h(f(1,2,g(b)), '$V'(stuff))],
[],
"\
\
h\
\
f\
1\
2\
\
g\
b\
\
\
stuff\
\
").
test(13,
[buy('$V'(person), '$V'(merchant), book(('$V'(title) | '$V'(info))))],
[],
"\
\
buy\
person\
merchant\
\
book\
title\
\
info\
\
\
\
").
test(14,
[(own('$V'(person),book(('$V'(title) | '$V'(info)))):-buy('$V'(person),'$V'(merchant),book(('$V'(title) | '$V'(info)))),\+relinquish('$V'(person),book(('$V'(title) | '$V'(info))))),buy('Mary','John',book('XML Bible','Elliotte Rusty Harold',2001))],
[],
"\
\
\
\
own\
person\
\
book\
title\
\
info\
\
\
\
\
\
\
\
buy\
person\
merchant\
\
book\
title\
\
info\
\
\
\
\
\
relinquish\
person\
\
book\
title\
\
info\
\
\
\
\
\
\
\
\
buy\
Mary\
John\
\
book\
XML Bible\
Elliotte Rusty Harold\
2001\
\
\
").
test(15,
[(fact :- \+ blue_eyed(mark))],
[],
"\
\
\
\
fact\
\
\
\
\
\
blue_eyed\
mark\
\
\
\
\
").
test(16,
[string_data("string data")],
[],
"\
\
string_data\
\"string data\"\
\
").
test(17,
[factorial(0) = 1],
[],
"\
\
\
factorial\
0\
\
1\
\
").
test(18,
[factorial(n) = mul(n, factorial(sub(n,1)))],
[],
"\
\
\
factorial\
n\
\
\
mul\
n\
\
factorial\
\
sub\
n\
1\
\
\
\
\
").
test(19,
[factorial(0) = 1, factorial(n) = mul(n,factorial(sub(n,1)))],
[],
"\
\
\
factorial\
0\
\
1\
\
\
\
factorial\
n\
\
\
mul\
n\
\
factorial\
\
sub\
n\
1\
\
\
\
\
").
test(20,
[(visit('$V'(customer), store(best_buy, manager(karen), location(prospect_st))) :- feels_like_it('$V'(customer)))],
[],
"\
\
\
\
visit\
customer\
\
store\
best_buy\
\
manager\
karen\
\
\
location\
prospect_st\
\
\
\
\
\
\
feels_like_it\
customer\
\
\
\
").
test(21,
[(visit('$V'(customer), store(best_buy, manager(karen), location(prospect_st))) :- feels_like_it('$V'(customer)), has_car('$V'(customer)))],
[],
"\
\
\
\
visit\
customer\
\
store\
best_buy\
\
manager\
karen\
\
\
location\
prospect_st\
\
\
\
\
\
\
\
feels_like_it\
customer\
\
\
has_car\
customer\
\
\
\
\
").
test(22,
[(visit('$V'(customer), store(best_buy, manager((karen | head_office_mgrs)), location(prospect_st))) :- feels_like_it('$V'(customer)), has_car('$V'(customer)))],
[],
"\
\
\
\
visit\
customer\
\
store\
best_buy\
\
manager\
karen\
\
head_office_mgrs\
\
\
\
location\
prospect_st\
\
\
\
\
\
\
\
feels_like_it\
customer\
\
\
has_car\
customer\
\
\
\
\
").
test(23,
[employee('William'),'Bill'='William'],
[],
"\
\
employee\
William\
\
\
Bill\
William\
\
").
test(24,
['$V'(x)='$V'(x)],
[],
"\
\
x\
x\
\
").
test(25,
[(s :- p, q, r)],
[],
"\
\
\
\
s\
\
\
\
\
\
p\
\
\
q\
\
\
r\
\
\
\
\
").
test(26,
[(trip(origin(us), destination(tuva)) :- airline_tickets('$V'(airline)), \+ expensive_tickets)],
[],
"\
\
\
\
trip\
\
origin\
us\
\
\
destination\
tuva\
\
\
\
\
\
\
airline_tickets\
airline\
\
\
\
expensive_tickets\
\
\
\
\
\
").
test(27,
[(or :- (a ; b))],
[],
"\
\
\
\
or\
\
\
\
\
\
a\
\
\
b\
\
\
\
\
").
test(28,
[(or_and :- (a ; b), c)],
[],
"\
\
\
\
or_and\
\
\
\
\
\
\
a\
\
\
b\
\
\
\
c\
\
\
\
\
").
test(29,
[(or_and_2 :- (a ; b, c), d)],
[],
"\
\
\
\
or_and_2\
\
\
\
\
\
\
a\
\
\
\
b\
\
\
c\
\
\
\
\
d\
\
\
\
\
").
test(30,
[(or_and_2_equal :- (a ; b, c), d, (factorial(0) = factorial(0)))],
[],
"\
\
\
\
or_and_2_equal\
\
\
\
\
\
\
a\
\
\
\
b\
\
\
c\
\
\
\
\
d\
\
\
\
factorial\
0\
\
\
factorial\
0\
\
\
\
\
\
").
test(31,
[(or_and_3_equal :- (a ; b, c), d, \+ p(a))],
[],
"\
\
\
\
or_and_3_equal\
\
\
\
\
\
\
a\
\
\
\
b\
\
\
c\
\
\
\
\
d\
\
\
\
p\
a\
\
\
\
\
\
").
test(32,
[(or_and_4_equal :- (a ; b, c), d, \+ p(a,b,c))],
[],
"\
\
\
\
or_and_4_equal\
\
\
\
\
\
\
a\
\
\
\
b\
\
\
c\
\
\
\
\
d\
\
\
\
p\
a\
b\
c\
\
\
\
\
\
").
test(33,
[((term_0 = term_1) :- (a ; b, c), d, \+ p(a,b,c))],
[],
"\
\
\
\
\
term_0\
\
\
term_1\
\
\
\
\
\
\
\
a\
\
\
\
b\
\
\
c\
\
\
\
\
d\
\
\
\
p\
a\
b\
c\
\
\
\
\
\
").
test(34,
[((term_0 = term_1) :- (a, f, g ; b, c), d, \+ p(f(a, 1),b,c))],
[],
"\
\
\
\
\
term_0\
\
\
term_1\
\
\
\
\
\
\
\
\
a\
\
\
f\
\
\
g\
\
\
\
\
b\
\
\
c\
\
\
\
\
d\
\
\
\
p\
\
f\
a\
1\
\
b\
c\
\
\
\
\
\
").
test(35,
[((term_0(a,1.2,"string") = term_1) :- (a, f, g ; b, c), d, \+ p(f(a, 1),b,c))],
[],
"\
\
\
\
\
term_0\
a\
1.2\
\"string\"\
\
\
term_1\
\
\
\
\
\
\
\
\
a\
\
\
f\
\
\
g\
\
\
\
\
b\
\
\
c\
\
\
\
\
d\
\
\
\
p\
\
f\
a\
1\
\
b\
c\
\
\
\
\
\
").
test(36,
[((term_0(a,1.2,"strings may contain \"") = term_1) :- (a, f, g ; b, c), d, \+ p(f(a, 1),b,c))],
[],
"\
\
\
\
\
term_0\
a\
1.2\
\"strings may contain \\\"\"\
\
\
term_1\
\
\
\
\
\
\
\
\
a\
\
\
f\
\
\
g\
\
\
\
\
b\
\
\
c\
\
\
\
\
d\
\
\
\
p\
\
f\
a\
1\
\
b\
c\
\
\
\
\
\
").
test(37,
[(factorial(n) = mul(n, factorial(sub(n,1))) :- greaterThan(n, 0))],
[],
"\
\
\
\
\
factorial\
n\
\
\
mul\
n\
\
factorial\
\
sub\
n\
1\
\
\
\
\
\
\
\
greaterThan\
n\
0\
\
\
\
").
test(38,
[],
[(?- p)],
"\
\
p\
\
").
test(39,
[],
[(?- p(with, args))],
"\
\
p\
with\
args\
\
").
test(40,
[],
[(?- p(h, f(g(a, 1))))],
"\
\
p\
h\
\
f\
\
g\
a\
1\
\
\
\
").
test(41,
[],
[(?- p, q, r(1), s(-2.222342432), t("attached"))],
"\
\
\
p\
\
\
q\
\
\
r\
1\
\
\
s\
-2.222342432\
\
\
t\
\"attached\"\
\
\
").
test(42,
[a(item), b(item), c(item)],
[(?- p, q, r(1), s(-2.222342432), t("attached")), (?- u, v('$V'(q)))],
"\
\
a\
item\
\
\
b\
item\
\
\
c\
item\
\
\
\
\
\
p\
\
\
q\
\
\
r\
1\
\
\
s\
-2.222342432\
\
\
t\
\"attached\"\
\
\
\
\
\
\
u\
\
\
v\
q\
\
\
").
test(43,
[f([items,in,a,list])],
[],
"\
\
f\
\
items\
in\
a\
list\
\
\
").
test(44,
[f([items,in,a,list|'$V'(x)])],
[],
"\
\
f\
\
items\
in\
a\
list\
\
x\
\
\
\
").
test(45,
[select('$V'(x), ['$V'(x) | '$V'(xs)], '$V'(xs)),
(select('$V'(x), ['$V'(y) | '$V'(xs)], ['$V'(y) | '$V'(ys)]) :- select('$V'(x), '$V'(xs), '$V'(ys)))],
[],
"\
\
select\
x\
\
x\
\
xs\
\
\
xs\
\
\
\
\
select\
x\
\
y\
\
xs\
\
\
\
y\
\
ys\
\
\
\
\
\
\
select\
x\
xs\
ys\
\
\
\
").
test(46,
[permutation([], []),
(permutation(['$V'(x) | '$V'(xs)], '$V'(ys)) :-
permutation('$V'(xs), '$V'(yss)), select('$V'(x), '$V'(ys), '$V'(yss)))],
[],
"\
\
permutation\
\
\
\
\
\
\
permutation\
\
x\
\
xs\
\
\
ys\
\
\
\
\
\
permutation\
xs\
yss\
\
\
select\
x\
ys\
yss\
\
\
\
\
").
%% Try a more substantial test case.
test(47,
[(runwayOneOrientation('$V'(runOneOr)) :- airportChar('$V'(code), '$V'(runOneOr), '$V'(runTwoOr), '$V'(runThreeOr), '$V'(runFourOr), '$V'(runOneName), '$V'(runTwoName), '$V'(runThreeName), '$V'(runFourName), '$V'(distanceBetweenRunways), '$V'(rules)), airportName('$V'(code))),
(runwayTwoOrientation('$V'(runTwoOr)) :- airportChar('$V'(code), '$V'(runOneOr), '$V'(runTwoOr), '$V'(runThreeOr), '$V'(runFourOr), '$V'(runOneName), '$V'(runTwoName), '$V'(runThreeName), '$V'(runFourName), '$V'(distanceBetweenRunways), '$V'(rules)), airportName('$V'(code))),
(runwayThreeOrientation('$V'(runThreeOr)) :- airportChar('$V'(code), '$V'(runOneOr), '$V'(runTwoOr), '$V'(runThreeOr), '$V'(runFourOr), '$V'(runOneName), '$V'(runTwoName), '$V'(runThreeName), '$V'(runFourName), '$V'(distanceBetweenRunways), '$V'(rules)), airportName('$V'(code))),
(runwayFourOrientation('$V'(runFourOr)) :- airportChar('$V'(code), '$V'(runOneOr), '$V'(runTwoOr), '$V'(runThreeOr), '$V'(runFourOr), '$V'(runOneName), '$V'(runTwoName), '$V'(runThreeName), '$V'(runFourName), '$V'(distanceBetweenRunways), '$V'(rules)), airportName('$V'(code))),
(runwayOneName('$V'(runOneName)) :- airportChar('$V'(code), '$V'(runOneOr), '$V'(runTwoOr), '$V'(runThreeOr), '$V'(runFourOr), '$V'(runOneName), '$V'(runTwoName), '$V'(runThreeName), '$V'(runFourName), '$V'(distanceBetweenRunways), '$V'(rules)), airportName('$V'(code))),
(runwayTwoName('$V'(runTwoName)) :- airportChar('$V'(code), '$V'(runOneOr), '$V'(runTwoOr), '$V'(runThreeOr), '$V'(runFourOr), '$V'(runOneName), '$V'(runTwoName), '$V'(runThreeName), '$V'(runFourName), '$V'(distanceBetweenRunways), '$V'(rules)), airportName('$V'(code))),
(runwayThreeName('$V'(runThreeName)) :- airportChar('$V'(code), '$V'(runOneOr), '$V'(runTwoOr), '$V'(runThreeOr), '$V'(runFourOr), '$V'(runOneName), '$V'(runTwoName), '$V'(runThreeName), '$V'(runFourName), '$V'(distanceBetweenRunways), '$V'(rules)), airportName('$V'(code))),
(runwayFourName('$V'(runFourName)) :- airportChar('$V'(code), '$V'(runOneOr), '$V'(runTwoOr), '$V'(runThreeOr), '$V'(runFourOr), '$V'(runOneName), '$V'(runTwoName), '$V'(runThreeName), '$V'(runFourName), '$V'(distanceBetweenRunways), '$V'(rules)), airportName('$V'(code))),
(distanceBetweenRunways('$V'(distanceBetweenRunways)) :- airportChar('$V'(code), '$V'(runOneOr), '$V'(runTwoOr), '$V'(runThreeOr), '$V'(runFourOr), '$V'(runOneName), '$V'(runTwoName), '$V'(runThreeName), '$V'(runFourName), '$V'(distanceBetweenRunways), '$V'(rules)), airportName('$V'(code)))],
[],
"\
\
\
\
runwayOneOrientation\
runOneOr\
\
\
\
\
\
airportChar\
code\
runOneOr\
runTwoOr\
runThreeOr\
runFourOr\
runOneName\
runTwoName\
runThreeName\
runFourName\
distanceBetweenRunways\
rules\
\
\
airportName\
code\
\
\
\
\
\
\
\
runwayTwoOrientation\
runTwoOr\
\
\
\
\
\
airportChar\
code\
runOneOr\
runTwoOr\
runThreeOr\
runFourOr\
runOneName\
runTwoName\
runThreeName\
runFourName\
distanceBetweenRunways\
rules\
\
\
airportName\
code\
\
\
\
\
\
\
\
runwayThreeOrientation\
runThreeOr\
\
\
\
\
\
airportChar\
code\
runOneOr\
runTwoOr\
runThreeOr\
runFourOr\
runOneName\
runTwoName\
runThreeName\
runFourName\
distanceBetweenRunways\
rules\
\
\
airportName\
code\
\
\
\
\
\
\
\
runwayFourOrientation\
runFourOr\
\
\
\
\
\
airportChar\
code\
runOneOr\
runTwoOr\
runThreeOr\
runFourOr\
runOneName\
runTwoName\
runThreeName\
runFourName\
distanceBetweenRunways\
rules\
\
\
airportName\
code\
\
\
\
\
\
\
\
runwayOneName\
runOneName\
\
\
\
\
\
airportChar\
code\
runOneOr\
runTwoOr\
runThreeOr\
runFourOr\
runOneName\
runTwoName\
runThreeName\
runFourName\
distanceBetweenRunways\
rules\
\
\
airportName\
code\
\
\
\
\
\
\
\
runwayTwoName\
runTwoName\
\
\
\
\
\
airportChar\
code\
runOneOr\
runTwoOr\
runThreeOr\
runFourOr\
runOneName\
runTwoName\
runThreeName\
runFourName\
distanceBetweenRunways\
rules\
\
\
airportName\
code\
\
\
\
\
\
\
\
runwayThreeName\
runThreeName\
\
\
\
\
\
airportChar\
code\
runOneOr\
runTwoOr\
runThreeOr\
runFourOr\
runOneName\
runTwoName\
runThreeName\
runFourName\
distanceBetweenRunways\
rules\
\
\
airportName\
code\
\
\
\
\
\
\
\
runwayFourName\
runFourName\
\
\
\
\
\
airportChar\
code\
runOneOr\
runTwoOr\
runThreeOr\
runFourOr\
runOneName\
runTwoName\
runThreeName\
runFourName\
distanceBetweenRunways\
rules\
\
\
airportName\
code\
\
\
\
\
\
\
\
distanceBetweenRunways\
distanceBetweenRunways\
\
\
\
\
\
airportChar\
code\
runOneOr\
runTwoOr\
runThreeOr\
runFourOr\
runOneName\
runTwoName\
runThreeName\
runFourName\
distanceBetweenRunways\
rules\
\
\
airportName\
code\
\
\
\
\
").
test(48,
[(icaoCategory('$V'(aircraft), light) :- aircraftChar(['$V'(aircraft), '$V'(kg) | '$V'(rest)]), lessThanOrEqual('$V'(kg), 7000.0)),
(icaoCategory('$V'(aircraft), medium):- aircraftChar(['$V'(aircraft), '$V'(kg) | '$V'(rest)]), lessThan('$V'(kg), 136000.0), greaterThan('$V'(kg), 7000.0)),
(icaoCategory('$V'(aircraft), heavy) :- aircraftChar(['$V'(aircraft), '$V'(kg) | '$V'(rest)]), greaterThanOrEqual('$V'(kg), 136000.0), \+ icaoCategory('$V'(aircraft), super)),
(icaoCategoryPreceding(light) :- mtowPreceding('$V'(kgPreceding)), lessThanOrEqual('$V'(kgPreceding), 7000.0)),
(icaoCategoryPreceding(medium) :- mtowPreceding('$V'(kgPreceding)), lessThan('$V'(kgPreceding), 136000.0), greaterThan('$V'(kgPreceding), 7000.0)),
(icaoCategoryPreceding(heavy) :- precedingAircraftType('$V'(modelPreceding)), notEqual('$V'(modelPreceding),'A388'), notEqual('$V'(modelPreceding),'A38F'), notEqual('$V'(modelPreceding),'A225'), mtowPreceding('$V'(kgPreceding)), greaterThanOrEqual('$V'(kgPreceding), 136000.0)),
(icaoCategoryPreceding(super) :- precedingAircraftType('A388')),
(icaoCategoryPreceding(super) :- precedingAircraftType('A38F')),
(icaoSeparationMiles(4):- icaoCategory(heavy), icaoCategoryPreceding(heavy)),
(icaoSeparationMiles(5):- icaoCategory(medium), icaoCategoryPreceding(heavy)),
(icaoSeparationMiles(6):- icaoCategory(light), icaoCategoryPreceding(heavy)),
(icaoSeparationMiles(5):- icaoCategory(light), icaoCategoryPreceding(medium)),
(icaoSeparationMiles(mrs):- icaoCategoryPreceding(light)),
(icaoSeparationMiles(mrs):- icaoCategory(medium), icaoCategoryPreceding(medium)),
(icaoSeparationMiles(mrs):- icaoCategory(heavy), icaoCategoryPreceding(medium)),
(icaoSeparationMiles(mrs):- icaoCategory(super)),
(icaoSeparationMiles(6):- icaoCategory(heavy), icaoCategoryPreceding(super)),
(icaoSeparationMiles(7):- icaoCategory(medium), icaoCategoryPreceding(super)),
(icaoSeparationMiles(8):- icaoCategory(light), icaoCategoryPreceding(super))],
[],
"\
\
\
\
icaoCategory\
aircraft\
light\
\
\
\
\
\
aircraftChar\
\
aircraft\
kg\
\
rest\
\
\
\
\
lessThanOrEqual\
kg\
7000.0\
\
\
\
\
\
\
\
icaoCategory\
aircraft\
medium\
\
\
\
\
\
aircraftChar\
\
aircraft\
kg\
\
rest\
\
\
\
\
lessThan\
kg\
136000.0\
\
\
greaterThan\
kg\
7000.0\
\
\
\
\
\
\
\
icaoCategory\
aircraft\
heavy\
\
\
\
\
\
aircraftChar\
\
aircraft\
kg\
\
rest\
\
\
\
\
greaterThanOrEqual\
kg\
136000.0\
\
\
\
icaoCategory\
aircraft\
super\
\
\
\
\
\
\
\
\
icaoCategoryPreceding\
light\
\
\
\
\
\
mtowPreceding\
kgPreceding\
\
\
lessThanOrEqual\
kgPreceding\
7000.0\
\
\
\
\
\
\
\
icaoCategoryPreceding\
medium\
\
\
\
\
\
mtowPreceding\
kgPreceding\
\
\
lessThan\
kgPreceding\
136000.0\
\
\
greaterThan\
kgPreceding\
7000.0\
\
\
\
\
\
\
\
icaoCategoryPreceding\
heavy\
\
\
\
\
\
precedingAircraftType\
modelPreceding\
\
\
notEqual\
modelPreceding\
A388\
\
\
notEqual\
modelPreceding\
A38F\
\
\
notEqual\
modelPreceding\
A225\
\
\
mtowPreceding\
kgPreceding\
\
\
greaterThanOrEqual\
kgPreceding\
136000.0\
\
\
\
\
\
\
\
icaoCategoryPreceding\
super\
\
\
\
\
precedingAircraftType\
A388\
\
\
\
\
\
\
icaoCategoryPreceding\
super\
\
\
\
\
precedingAircraftType\
A38F\
\
\
\
\
\
\
icaoSeparationMiles\
4\
\
\
\
\
\
icaoCategory\
heavy\
\
\
icaoCategoryPreceding\
heavy\
\
\
\
\
\
\
\
icaoSeparationMiles\
5\
\
\
\
\
\
icaoCategory\
medium\
\
\
icaoCategoryPreceding\
heavy\
\
\
\
\
\
\
\
icaoSeparationMiles\
6\
\
\
\
\
\
icaoCategory\
light\
\
\
icaoCategoryPreceding\
heavy\
\
\
\
\
\
\
\
icaoSeparationMiles\
5\
\
\
\
\
\
icaoCategory\
light\
\
\
icaoCategoryPreceding\
medium\
\
\
\
\
\
\
\
icaoSeparationMiles\
mrs\
\
\
\
\
icaoCategoryPreceding\
light\
\
\
\
\
\
\
icaoSeparationMiles\
mrs\
\
\
\
\
\
icaoCategory\
medium\
\
\
icaoCategoryPreceding\
medium\
\
\
\
\
\
\
\
icaoSeparationMiles\
mrs\
\
\
\
\
\
icaoCategory\
heavy\
\
\
icaoCategoryPreceding\
medium\
\
\
\
\
\
\
\
icaoSeparationMiles\
mrs\
\
\
\
\
icaoCategory\
super\
\
\
\
\
\
\
icaoSeparationMiles\
6\
\
\
\
\
\
icaoCategory\
heavy\
\
\
icaoCategoryPreceding\
super\
\
\
\
\
\
\
\
icaoSeparationMiles\
7\
\
\
\
\
\
icaoCategory\
medium\
\
\
icaoCategoryPreceding\
super\
\
\
\
\
\
\
\
icaoSeparationMiles\
8\
\
\
\
\
\
icaoCategory\
light\
\
\
icaoCategoryPreceding\
super\
\
\
\
\
").
test(49,
[(aircraftChar('A500',3175.144,44.0,97.5)),
(aircraftChar('SGUP',77110.64,156.25,123.0)),
(aircraftChar('AR11',566.99,36.0,64.0)),
(aircraftChar('AR15',929.8636,37.5,67.0)),
(aircraftChar('AT43',16699.896664,80.58,124.0)),
(aircraftChar('AT45',18599.53996,80.6,128.0)),
(aircraftChar('AT72',21999.665592,88.75,128.0)),
(aircraftChar('N262',10800.02552,74.17,96.0)),
(aircraftChar('S210',49985.8384,112.5,127.0)),
(aircraftChar('S601',6599.7636,42.25,118.0)),
(aircraftChar('AEST',2864.43348,36.7,94.0)),
(aircraftChar('AEST',2721.552,36.71,94.0)),
(aircraftChar('AEST',2721.552,36.71,94.0)),
(aircraftChar('AT3P',1583.943264,45.15,76.0)),
(aircraftChar('AT3T',4159.43864,51.0,69.0)),
(aircraftChar('AT5T',2902.9888,52.0,69.0)),
(aircraftChar('AT6T',5669.9,56.0,78.0)),
(aircraftChar('AT8T',7257.472,52.1,82.0)),
(aircraftChar('A306',164998.62592,147.08,132.0)),
(aircraftChar('A3ST',140613.52,147.17,135.0)),
(aircraftChar('A30B',141999.24356,147.08,131.0)),
(aircraftChar('A30B',171684.572,147.08,135.0)),
(aircraftChar('A310',164018.8672,144.0,135.0)),
(aircraftChar('A310',149999.699256,144.1,125.0)),
(aircraftChar('A318',59000.9794,111.9,138.0)),
(aircraftChar('A319',63999.56324,111.3,138.0)),
(aircraftChar('A320',65999.90396,111.3,138.0)),
(aircraftChar('A320',73500.04768,111.3,138.0)),
(aircraftChar('A321',93439.952,111.83,138.0)),
(aircraftChar('A388',560186.12,261.3,145.0)),
(aircraftChar('A38F',590032.4736,261.65,145.0)),
(aircraftChar('AA1',680.388,24.5,70.0)),
(aircraftChar('AA5',997.9024,31.5,80.0)),
(aircraftChar('CH7A',598.74144,33.5,78.0)),
(aircraftChar('CH7A',793.786,33.5,88.0)),
(aircraftChar('CH7B',816.4656,34.5,87.0)),
(aircraftChar('BL8',975.2228,36.2,92.0)),
(aircraftChar('BL8',884.5044,32.0,90.0)),
(aircraftChar('AN12',55111.428,124.8,127.0)),
(aircraftChar('A124',404999.142632,240.5,124.0)),
(aircraftChar('A140',21500.2608,83.67,230.0)),
(aircraftChar('AN72',29937.072,84.7,89.0)),
(aircraftChar('AT72',19989.79944,88.09,105.0)),
(aircraftChar('AT43',15172.6524,58.02,103.0)),
(aircraftChar('AT43',16699.896664,80.58,104.0)),
(aircraftChar('AT44',16150.14316,80.58,105.0)),
(aircraftChar('AT45',16150.14316,80.42,105.0)),
(aircraftChar('AT72',21500.2608,88.75,105.0)),
(aircraftChar('AT72',19989.79944,88.75,105.0)),
(aircraftChar('BA11',35833.768,88.5,129.0)),
(aircraftChar('BA11',40142.892,88.5,137.0)),
(aircraftChar('B461',38101.728,86.42,113.0)),
(aircraftChar('B462',42184.056,86.42,117.0)),
(aircraftChar('B463',44225.22,86.42,121.0)),
(aircraftChar('BE18',4490.5608,49.67,87.0)),
(aircraftChar('BE24',1247.378,38.6666666667,70.0)),
(aircraftChar('BE55',2404.0376,37.83,88.0)),
(aircraftChar('B190',7765.49504,58.0,113.0)),
(aircraftChar('BE99',5125.5896,45.92,107.0)),
(aircraftChar('B190',7529.6272,54.5,113.0)),
(aircraftChar('BE58',2494.756,37.8,96.0)),
(aircraftChar('BE58',2812.2704,37.8,101.0)),
(aircraftChar('BE58',2812.2704,37.8,101.0)),
(aircraftChar('BE36',1655.6108,33.5,80.0)),
(aircraftChar('BE36',1746.3292,37.83,75.0)),
(aircraftChar('BE35',1542.2128,33.5,70.0)),
(aircraftChar('BE76',1769.0088,38.0,76.0)),
(aircraftChar('BE60',3050.4062,39.25,98.0)),
(aircraftChar('BE10',5352.3856,45.92,111.0)),
(aircraftChar('BE9L',4581.2792,50.25,100.0)),
(aircraftChar('BE9T',4966.8324,45.9,108.0)),
(aircraftChar('PRM1',5669.9,44.5,108.0)),
(aircraftChar('BE77',759.7666,30.0,63.0)),
(aircraftChar('BE23',1111.3004,32.75,68.0)),
(aircraftChar('BE20',5669.9,54.5,103.0)),
(aircraftChar('B720',104008.6456,130.83,133.0)),
(aircraftChar('B742',377842.136,195.67,152.0)),
(aircraftChar('B74S',317514.4,195.67,140.0)),
(aircraftChar('B74R',272155.2,195.7,141.0)),
(aircraftChar('B752',115665.96,124.67,135.0)),
(aircraftChar('B752',99790.24,124.83,135.0)),
(aircraftChar('B772',347451.472,212.07,145.0)),
(aircraftChar('B773',340194.0,212.07,145.0)),
(aircraftChar('B701',116727.36528,130.83,139.0)),
(aircraftChar('B703',141520.704,142.42,139.0)),
(aircraftChar('B703',151318.2912,145.75,136.0)),
(aircraftChar('B712',54884.632,93.3333333333,125.0)),
(aircraftChar('B720',106276.6056,130.83,137.0)),
(aircraftChar('B721',76657.048,108.0,125.0)),
(aircraftChar('B722',95027.524,108.0,138.0)),
(aircraftChar('B731',49895.12,94.0,137.0)),
(aircraftChar('B732',52389.876,93.0,137.0)),
(aircraftChar('B733',63276.084,94.75,135.0)),
(aircraftChar('B734',68038.8,94.75,139.0)),
(aircraftChar('B735',61688.512,94.75,140.0)),
(aircraftChar('B736',65997.636,112.58,125.0)),
(aircraftChar('B737',70079.964,112.58,130.0)),
(aircraftChar('B738',79015.7264,112.58,141.0)),
(aircraftChar('B739',74389.088,112.07,144.0)),
(aircraftChar('B744',394625.04,213.0,154.0)),
(aircraftChar('B753',123603.82,124.83,142.0)),
(aircraftChar('B762',142881.48,156.08,130.0)),
(aircraftChar('B753',158757.2,156.08,130.0)),
(aircraftChar('B772',286896.94,199.9,145.0)),
(aircraftChar('B773',299370.72,199.9,145.0)),
(aircraftChar('B52',221352.896,185.0,141.0)),
(aircraftChar('C97',66133.7136,141.3,105.0)),
(aircraftChar('NOMA',4059.6484,54.0,69.0)),
(aircraftChar('GLEX',43091.24,94.0,126.0)),
(aircraftChar('CL60',21590.9792,61.8,125.0)),
(aircraftChar('TRIS',4535.92,53.0,65.0)),
(aircraftChar('CL60',18710.67,61.8,125.0)),
(aircraftChar('CL44',95254.32,142.3,123.0)),
(aircraftChar('C207',16510.7488,91.2,102.0)),
(aircraftChar('C150',725.7472,33.5,55.0)),
(aircraftChar('C177',1133.98,35.5,64.0)),
(aircraftChar('C182',1406.1352,36.0,92.0)),
(aircraftChar('C206',1632.9312,36.0,92.0)),
(aircraftChar('C402',2857.6296,44.17,95.0)),
(aircraftChar('C402',2857.6296,44.17,95.0)),
(aircraftChar('C404',3810.1728,46.3,92.0)),
(aircraftChar('C414',3077.62172,44.1,94.0)),
(aircraftChar('C421',3379.2604,41.7,96.0)),
(aircraftChar('C421',3102.56928,41.7,96.0)),
(aircraftChar('C441',4501.9006,49.3,100.0)),
(aircraftChar('C208',3628.736,52.1,104.0)),
(aircraftChar('A37_',6350.288,35.92,131.0)),
(aircraftChar('C550',6713.1616,52.17,112.0)),
(aircraftChar('C525',4808.0752,46.8,107.0)),
(aircraftChar('C25A',5669.9,49.83,118.0)),
(aircraftChar('C560',7543.23496,54.08,108.0)),
(aircraftChar('C500',5375.0652,47.1,108.0)),
(aircraftChar('C550',6032.7736,51.7,108.0)),
(aircraftChar('C650',9979.024,53.5,114.0)),
(aircraftChar('C560',7633.95336,55.8,107.0)),
(aircraftChar('CVLP',18955.60968,91.8,107.0)),
(aircraftChar('CVLP',22543.5224,105.33,104.0)),
(aircraftChar('CVLP',22543.5224,105.33,106.0)),
(aircraftChar('CVLT',24766.1232,105.3,107.0)),
(aircraftChar('FA20',18497.48176,61.92,113.0)),
(aircraftChar('F900',20638.436,63.42,100.0)),
(aircraftChar('F2TH',16238.5936,63.33,114.0)),
(aircraftChar('ATLA',43500.379984,119.08,130.0)),
(aircraftChar('FA10',8300.7336,42.92,104.0)),
(aircraftChar('FA20',12999.94672,53.5,107.0)),
(aircraftChar('DOVE',4059.6484,57.0,84.0)),
(aircraftChar('HERN',6123.492,71.5,85.0)),
(aircraftChar('DH2T',2313.3192,48.0,50.0)),
(aircraftChar('DHC4',12927.372,95.67,77.0)),
(aircraftChar('DHC6',5669.9,65.0,75.0)),
(aircraftChar('DHC7',19958.048,93.0,83.0)),
(aircraftChar('DH8C',18642.6312,90.0,90.0)),
(aircraftChar('E110',5899.871144,50.3,92.0)),
(aircraftChar('E121',5669.9,47.4,92.0)),
(aircraftChar('PA31',3175.144,40.5833333333,74.0)),
(aircraftChar('D28D',4016.55716,51.0,74.0)),
(aircraftChar('A10_',23133.192,57.5,140.0)),
(aircraftChar('VF14',19958.048,70.5,111.0)),
(aircraftChar('LJ25',6803.88,35.6,137.0)),
(aircraftChar('LJ24',5896.696,35.6,128.0)),
(aircraftChar('LJ25',6803.88,35.6,137.0)),
(aircraftChar('LJ28',6803.88,43.7,120.0)),
(aircraftChar('LJ28',8300.7336,39.5,143.0)),
(aircraftChar('GLF2',29619.5576,68.1,141.0)),
(aircraftChar('GLF3',31161.7704,77.1,136.0)),
(aircraftChar('GLF4',33837.9632,77.1,149.0)),
(aircraftChar('GLF4',33202.9344,77.1,128.0)),
(aircraftChar('GLF5',41276.872,93.5,145.0)),
(aircraftChar('A748',21092.028,102.46,94.0)),
(aircraftChar('TRID',71667.536,98.0,146.0)),
(aircraftChar('A748',22679.6,98.2,100.0)),
(aircraftChar('WW23',10659.412,44.8,129.0)),
(aircraftChar('ASTR',11181.0428,54.7,126.0)),
(aircraftChar('ARVA',6803.88,68.8,81.0)),
(aircraftChar('ARVA',6803.88,68.8,81.0)),
(aircraftChar('JCOM',7620.3456,43.3,130.0)),
(aircraftChar('WW24',10659.412,44.8,129.0)),
(aircraftChar('WW24',10659.412,44.8,129.0)),
(aircraftChar('IL18',61071.62688,122.7,103.0)),
(aircraftChar('IL76',169999.47772,165.7,119.0)),
(aircraftChar('C130',70306.76,132.07,129.0)),
(aircraftChar('C130',70306.76,132.6,129.0)),
(aircraftChar('C130',70306.76,132.07,138.0)),
(aircraftChar('C130',70306.76,132.6,138.0)),
(aircraftChar('L101',195044.56,155.3,138.0)),
(aircraftChar('L101',211373.872,155.3,140.0)),
(aircraftChar('L101',211373.872,155.3,144.0)),
(aircraftChar('L101',231331.92,155.3,144.0)),
(aircraftChar('L101',234053.472,155.3,148.0)),
(aircraftChar('L29A',19844.65,54.4,132.0)),
(aircraftChar('C141',143607.2272,159.9,129.0)),
(aircraftChar('C141',155582.056,159.9,129.0)),
(aircraftChar('C5',348812.248,222.7,135.0)),
(aircraftChar('C5',379656.504,222.7,135.0)),
(aircraftChar('P3',61234.92,99.7,134.0)),
(aircraftChar('A4_',11113.004,27.5,120.0)),
(aircraftChar('DC10',200941.256,155.3,136.0)),
(aircraftChar('DC7',64863.656,127.5,110.0)),
(aircraftChar('DC85',147417.4,142.4,137.0)),
(aircraftChar('MD11',273289.18,169.8,155.0)),
(aircraftChar('BE40',7135.00216,43.5,100.0)),
(aircraftChar('MU2',5250.3274,39.1666666667,88.0)),
(aircraftChar('MU2',4898.7936,39.2,119.0)),
(aircraftChar('B2',152633.708,172.0,140.0)),
(aircraftChar('AEST',2864.43348,36.67,94.0)),
(aircraftChar('PA31',2812.2704,40.7,100.0)),
(aircraftChar('PAY4',5465.7836,47.7,110.0)),
(aircraftChar('AN2',5499.803,59.67,54.0)),
(aircraftChar('BE40',7302.8312,43.06,111.0)),
(aircraftChar('AC11',5216.308,46.0,75.0)),
(aircraftChar('AC95',4683.3374,52.2,121.0)),
(aircraftChar('AC50',3061.746,49.08,97.0)),
(aircraftChar('AC56',2948.348,49.0833333333,97.0)),
(aircraftChar('AC68',3401.94,49.0833333333,97.0)),
(aircraftChar('B1_',216363.384,137.0,165.0)),
(aircraftChar('AC52',2494.756,44.1,97.0)),
(aircraftChar('AC80',4059.6484,49.05,97.0)),
(aircraftChar('AC90',4649.318,46.67,97.0)),
(aircraftChar('SBR1',8459.4908,44.5,120.0)),
(aircraftChar('SBR1',9071.84,44.5,120.0)),
(aircraftChar('SBR1',10886.208,50.5,105.0)),
(aircraftChar('SBR2',10568.6936,44.5,137.0)),
(aircraftChar('SBR2',11113.004,50.4,128.0)),
(aircraftChar('SH33',9979.024,74.67,96.0)),
(aircraftChar('SH36',11793.392,74.8,104.0))],
[],
"\
\
aircraftChar\
A500\
3175.144\
44.0\
97.5\
\
\
aircraftChar\
SGUP\
77110.64\
156.25\
123.0\
\
\
aircraftChar\
AR11\
566.99\
36.0\
64.0\
\
\
aircraftChar\
AR15\
929.8636\
37.5\
67.0\
\
\
aircraftChar\
AT43\
16699.896664\
80.58\
124.0\
\
\
aircraftChar\
AT45\
18599.53996\
80.6\
128.0\
\
\
aircraftChar\
AT72\
21999.665592\
88.75\
128.0\
\
\
aircraftChar\
N262\
10800.02552\
74.17\
96.0\
\
\
aircraftChar\
S210\
49985.8384\
112.5\
127.0\
\
\
aircraftChar\
S601\
6599.7636\
42.25\
118.0\
\
\
aircraftChar\
AEST\
2864.43348\
36.7\
94.0\
\
\
aircraftChar\
AEST\
2721.552\
36.71\
94.0\
\
\
aircraftChar\
AEST\
2721.552\
36.71\
94.0\
\
\
aircraftChar\
AT3P\
1583.943264\
45.15\
76.0\
\
\
aircraftChar\
AT3T\
4159.43864\
51.0\
69.0\
\
\
aircraftChar\
AT5T\
2902.9888\
52.0\
69.0\
\
\
aircraftChar\
AT6T\
5669.9\
56.0\
78.0\
\
\
aircraftChar\
AT8T\
7257.472\
52.1\
82.0\
\
\
aircraftChar\
A306\
164998.62592\
147.08\
132.0\
\
\
aircraftChar\
A3ST\
140613.52\
147.17\
135.0\
\
\
aircraftChar\
A30B\
141999.24356\
147.08\
131.0\
\
\
aircraftChar\
A30B\
171684.572\
147.08\
135.0\
\
\
aircraftChar\
A310\
164018.8672\
144.0\
135.0\
\
\
aircraftChar\
A310\
149999.699256\
144.1\
125.0\
\
\
aircraftChar\
A318\
59000.9794\
111.9\
138.0\
\
\
aircraftChar\
A319\
63999.56324\
111.3\
138.0\
\
\
aircraftChar\
A320\
65999.90396\
111.3\
138.0\
\
\
aircraftChar\
A320\
73500.04768\
111.3\
138.0\
\
\
aircraftChar\
A321\
93439.952\
111.83\
138.0\
\
\
aircraftChar\
A388\
560186.12\
261.3\
145.0\
\
\
aircraftChar\
A38F\
590032.4736\
261.65\
145.0\
\
\
aircraftChar\
AA1\
680.388\
24.5\
70.0\
\
\
aircraftChar\
AA5\
997.9024\
31.5\
80.0\
\
\
aircraftChar\
CH7A\
598.74144\
33.5\
78.0\
\
\
aircraftChar\
CH7A\
793.786\
33.5\
88.0\
\
\
aircraftChar\
CH7B\
816.4656\
34.5\
87.0\
\
\
aircraftChar\
BL8\
975.2228\
36.2\
92.0\
\
\
aircraftChar\
BL8\
884.5044\
32.0\
90.0\
\
\
aircraftChar\
AN12\
55111.428\
124.8\
127.0\
\
\
aircraftChar\
A124\
404999.142632\
240.5\
124.0\
\
\
aircraftChar\
A140\
21500.2608\
83.67\
230.0\
\
\
aircraftChar\
AN72\
29937.072\
84.7\
89.0\
\
\
aircraftChar\
AT72\
19989.79944\
88.09\
105.0\
\
\
aircraftChar\
AT43\
15172.6524\
58.02\
103.0\
\
\
aircraftChar\
AT43\
16699.896664\
80.58\
104.0\
\
\
aircraftChar\
AT44\
16150.14316\
80.58\
105.0\
\
\
aircraftChar\
AT45\
16150.14316\
80.42\
105.0\
\
\
aircraftChar\
AT72\
21500.2608\
88.75\
105.0\
\
\
aircraftChar\
AT72\
19989.79944\
88.75\
105.0\
\
\
aircraftChar\
BA11\
35833.768\
88.5\
129.0\
\
\
aircraftChar\
BA11\
40142.892\
88.5\
137.0\
\
\
aircraftChar\
B461\
38101.728\
86.42\
113.0\
\
\
aircraftChar\
B462\
42184.056\
86.42\
117.0\
\
\
aircraftChar\
B463\
44225.22\
86.42\
121.0\
\
\
aircraftChar\
BE18\
4490.5608\
49.67\
87.0\
\
\
aircraftChar\
BE24\
1247.378\
38.6666666667\
70.0\
\
\
aircraftChar\
BE55\
2404.0376\
37.83\
88.0\
\
\
aircraftChar\
B190\
7765.49504\
58.0\
113.0\
\
\
aircraftChar\
BE99\
5125.5896\
45.92\
107.0\
\
\
aircraftChar\
B190\
7529.6272\
54.5\
113.0\
\
\
aircraftChar\
BE58\
2494.756\
37.8\
96.0\
\
\
aircraftChar\
BE58\
2812.2704\
37.8\
101.0\
\
\
aircraftChar\
BE58\
2812.2704\
37.8\
101.0\
\
\
aircraftChar\
BE36\
1655.6108\
33.5\
80.0\
\
\
aircraftChar\
BE36\
1746.3292\
37.83\
75.0\
\
\
aircraftChar\
BE35\
1542.2128\
33.5\
70.0\
\
\
aircraftChar\
BE76\
1769.0088\
38.0\
76.0\
\
\
aircraftChar\
BE60\
3050.4062\
39.25\
98.0\
\
\
aircraftChar\
BE10\
5352.3856\
45.92\
111.0\
\
\
aircraftChar\
BE9L\
4581.2792\
50.25\
100.0\
\
\
aircraftChar\
BE9T\
4966.8324\
45.9\
108.0\
\
\
aircraftChar\
PRM1\
5669.9\
44.5\
108.0\
\
\
aircraftChar\
BE77\
759.7666\
30.0\
63.0\
\
\
aircraftChar\
BE23\
1111.3004\
32.75\
68.0\
\
\
aircraftChar\
BE20\
5669.9\
54.5\
103.0\
\
\
aircraftChar\
B720\
104008.6456\
130.83\
133.0\
\
\
aircraftChar\
B742\
377842.136\
195.67\
152.0\
\
\
aircraftChar\
B74S\
317514.4\
195.67\
140.0\
\
\
aircraftChar\
B74R\
272155.2\
195.7\
141.0\
\
\
aircraftChar\
B752\
115665.96\
124.67\
135.0\
\
\
aircraftChar\
B752\
99790.24\
124.83\
135.0\
\
\
aircraftChar\
B772\
347451.472\
212.07\
145.0\
\
\
aircraftChar\
B773\
340194.0\
212.07\
145.0\
\
\
aircraftChar\
B701\
116727.36528\
130.83\
139.0\
\
\
aircraftChar\
B703\
141520.704\
142.42\
139.0\
\
\
aircraftChar\
B703\
151318.2912\
145.75\
136.0\
\
\
aircraftChar\
B712\
54884.632\
93.3333333333\
125.0\
\
\
aircraftChar\
B720\
106276.6056\
130.83\
137.0\
\
\
aircraftChar\
B721\
76657.048\
108.0\
125.0\
\
\
aircraftChar\
B722\
95027.524\
108.0\
138.0\
\
\
aircraftChar\
B731\
49895.12\
94.0\
137.0\
\
\
aircraftChar\
B732\
52389.876\
93.0\
137.0\
\
\
aircraftChar\
B733\
63276.084\
94.75\
135.0\
\
\
aircraftChar\
B734\
68038.8\
94.75\
139.0\
\
\
aircraftChar\
B735\
61688.512\
94.75\
140.0\
\
\
aircraftChar\
B736\
65997.636\
112.58\
125.0\
\
\
aircraftChar\
B737\
70079.964\
112.58\
130.0\
\
\
aircraftChar\
B738\
79015.7264\
112.58\
141.0\
\
\
aircraftChar\
B739\
74389.088\
112.07\
144.0\
\
\
aircraftChar\
B744\
394625.04\
213.0\
154.0\
\
\
aircraftChar\
B753\
123603.82\
124.83\
142.0\
\
\
aircraftChar\
B762\
142881.48\
156.08\
130.0\
\
\
aircraftChar\
B753\
158757.2\
156.08\
130.0\
\
\
aircraftChar\
B772\
286896.94\
199.9\
145.0\
\
\
aircraftChar\
B773\
299370.72\
199.9\
145.0\
\
\
aircraftChar\
B52\
221352.896\
185.0\
141.0\
\
\
aircraftChar\
C97\
66133.7136\
141.3\
105.0\
\
\
aircraftChar\
NOMA\
4059.6484\
54.0\
69.0\
\
\
aircraftChar\
GLEX\
43091.24\
94.0\
126.0\
\
\
aircraftChar\
CL60\
21590.9792\
61.8\
125.0\
\
\
aircraftChar\
TRIS\
4535.92\
53.0\
65.0\
\
\
aircraftChar\
CL60\
18710.67\
61.8\
125.0\
\
\
aircraftChar\
CL44\
95254.32\
142.3\
123.0\
\
\
aircraftChar\
C207\
16510.7488\
91.2\
102.0\
\
\
aircraftChar\
C150\
725.7472\
33.5\
55.0\
\
\
aircraftChar\
C177\
1133.98\
35.5\
64.0\
\
\
aircraftChar\
C182\
1406.1352\
36.0\
92.0\
\
\
aircraftChar\
C206\
1632.9312\
36.0\
92.0\
\
\
aircraftChar\
C402\
2857.6296\
44.17\
95.0\
\
\
aircraftChar\
C402\
2857.6296\
44.17\
95.0\
\
\
aircraftChar\
C404\
3810.1728\
46.3\
92.0\
\
\
aircraftChar\
C414\
3077.62172\
44.1\
94.0\
\
\
aircraftChar\
C421\
3379.2604\
41.7\
96.0\
\
\
aircraftChar\
C421\
3102.56928\
41.7\
96.0\
\
\
aircraftChar\
C441\
4501.9006\
49.3\
100.0\
\
\
aircraftChar\
C208\
3628.736\
52.1\
104.0\
\
\
aircraftChar\
A37_\
6350.288\
35.92\
131.0\
\
\
aircraftChar\
C550\
6713.1616\
52.17\
112.0\
\
\
aircraftChar\
C525\
4808.0752\
46.8\
107.0\
\
\
aircraftChar\
C25A\
5669.9\
49.83\
118.0\
\
\
aircraftChar\
C560\
7543.23496\
54.08\
108.0\
\
\
aircraftChar\
C500\
5375.0652\
47.1\
108.0\
\
\
aircraftChar\
C550\
6032.7736\
51.7\
108.0\
\
\
aircraftChar\
C650\
9979.024\
53.5\
114.0\
\
\
aircraftChar\
C560\
7633.95336\
55.8\
107.0\
\
\
aircraftChar\
CVLP\
18955.60968\
91.8\
107.0\
\
\
aircraftChar\
CVLP\
22543.5224\
105.33\
104.0\
\
\
aircraftChar\
CVLP\
22543.5224\
105.33\
106.0\
\
\
aircraftChar\
CVLT\
24766.1232\
105.3\
107.0\
\
\
aircraftChar\
FA20\
18497.48176\
61.92\
113.0\
\
\
aircraftChar\
F900\
20638.436\
63.42\
100.0\
\
\
aircraftChar\
F2TH\
16238.5936\
63.33\
114.0\
\
\
aircraftChar\
ATLA\
43500.379984\
119.08\
130.0\
\
\
aircraftChar\
FA10\
8300.7336\
42.92\
104.0\
\
\
aircraftChar\
FA20\
12999.94672\
53.5\
107.0\
\
\
aircraftChar\
DOVE\
4059.6484\
57.0\
84.0\
\
\
aircraftChar\
HERN\
6123.492\
71.5\
85.0\
\
\
aircraftChar\
DH2T\
2313.3192\
48.0\
50.0\
\
\
aircraftChar\
DHC4\
12927.372\
95.67\
77.0\
\
\
aircraftChar\
DHC6\
5669.9\
65.0\
75.0\
\
\
aircraftChar\
DHC7\
19958.048\
93.0\
83.0\
\
\
aircraftChar\
DH8C\
18642.6312\
90.0\
90.0\
\
\
aircraftChar\
E110\
5899.871144\
50.3\
92.0\
\
\
aircraftChar\
E121\
5669.9\
47.4\
92.0\
\
\
aircraftChar\
PA31\
3175.144\
40.5833333333\
74.0\
\
\
aircraftChar\
D28D\
4016.55716\
51.0\
74.0\
\
\
aircraftChar\
A10_\
23133.192\
57.5\
140.0\
\
\
aircraftChar\
VF14\
19958.048\
70.5\
111.0\
\
\
aircraftChar\
LJ25\
6803.88\
35.6\
137.0\
\
\
aircraftChar\
LJ24\
5896.696\
35.6\
128.0\
\
\
aircraftChar\
LJ25\
6803.88\
35.6\
137.0\
\
\
aircraftChar\
LJ28\
6803.88\
43.7\
120.0\
\
\
aircraftChar\
LJ28\
8300.7336\
39.5\
143.0\
\
\
aircraftChar\
GLF2\
29619.5576\
68.1\
141.0\
\
\
aircraftChar\
GLF3\
31161.7704\
77.1\
136.0\
\
\
aircraftChar\
GLF4\
33837.9632\
77.1\
149.0\
\
\
aircraftChar\
GLF4\
33202.9344\
77.1\
128.0\
\
\
aircraftChar\
GLF5\
41276.872\
93.5\
145.0\
\
\
aircraftChar\
A748\
21092.028\
102.46\
94.0\
\
\
aircraftChar\
TRID\
71667.536\
98.0\
146.0\
\
\
aircraftChar\
A748\
22679.6\
98.2\
100.0\
\
\
aircraftChar\
WW23\
10659.412\
44.8\
129.0\
\
\
aircraftChar\
ASTR\
11181.0428\
54.7\
126.0\
\
\
aircraftChar\
ARVA\
6803.88\
68.8\
81.0\
\
\
aircraftChar\
ARVA\
6803.88\
68.8\
81.0\
\
\
aircraftChar\
JCOM\
7620.3456\
43.3\
130.0\
\
\
aircraftChar\
WW24\
10659.412\
44.8\
129.0\
\
\
aircraftChar\
WW24\
10659.412\
44.8\
129.0\
\
\
aircraftChar\
IL18\
61071.62688\
122.7\
103.0\
\
\
aircraftChar\
IL76\
169999.47772\
165.7\
119.0\
\
\
aircraftChar\
C130\
70306.76\
132.07\
129.0\
\
\
aircraftChar\
C130\
70306.76\
132.6\
129.0\
\
\
aircraftChar\
C130\
70306.76\
132.07\
138.0\
\
\
aircraftChar\
C130\
70306.76\
132.6\
138.0\
\
\
aircraftChar\
L101\
195044.56\
155.3\
138.0\
\
\
aircraftChar\
L101\
211373.872\
155.3\
140.0\
\
\
aircraftChar\
L101\
211373.872\
155.3\
144.0\
\
\
aircraftChar\
L101\
231331.92\
155.3\
144.0\
\
\
aircraftChar\
L101\
234053.472\
155.3\
148.0\
\
\
aircraftChar\
L29A\
19844.65\
54.4\
132.0\
\
\
aircraftChar\
C141\
143607.2272\
159.9\
129.0\
\
\
aircraftChar\
C141\
155582.056\
159.9\
129.0\
\
\
aircraftChar\
C5\
348812.248\
222.7\
135.0\
\
\
aircraftChar\
C5\
379656.504\
222.7\
135.0\
\
\
aircraftChar\
P3\
61234.92\
99.7\
134.0\
\
\
aircraftChar\
A4_\
11113.004\
27.5\
120.0\
\
\
aircraftChar\
DC10\
200941.256\
155.3\
136.0\
\
\
aircraftChar\
DC7\
64863.656\
127.5\
110.0\
\
\
aircraftChar\
DC85\
147417.4\
142.4\
137.0\
\
\
aircraftChar\
MD11\
273289.18\
169.8\
155.0\
\
\
aircraftChar\
BE40\
7135.00216\
43.5\
100.0\
\
\
aircraftChar\
MU2\
5250.3274\
39.1666666667\
88.0\
\
\
aircraftChar\
MU2\
4898.7936\
39.2\
119.0\
\
\
aircraftChar\
B2\
152633.708\
172.0\
140.0\
\
\
aircraftChar\
AEST\
2864.43348\
36.67\
94.0\
\
\
aircraftChar\
PA31\
2812.2704\
40.7\
100.0\
\
\
aircraftChar\
PAY4\
5465.7836\
47.7\
110.0\
\
\
aircraftChar\
AN2\
5499.803\
59.67\
54.0\
\
\
aircraftChar\
BE40\
7302.8312\
43.06\
111.0\
\
\
aircraftChar\
AC11\
5216.308\
46.0\
75.0\
\
\
aircraftChar\
AC95\
4683.3374\
52.2\
121.0\
\
\
aircraftChar\
AC50\
3061.746\
49.08\
97.0\
\
\
aircraftChar\
AC56\
2948.348\
49.0833333333\
97.0\
\
\
aircraftChar\
AC68\
3401.94\
49.0833333333\
97.0\
\
\
aircraftChar\
B1_\
216363.384\
137.0\
165.0\
\
\
aircraftChar\
AC52\
2494.756\
44.1\
97.0\
\
\
aircraftChar\
AC80\
4059.6484\
49.05\
97.0\
\
\
aircraftChar\
AC90\
4649.318\
46.67\
97.0\
\
\
aircraftChar\
SBR1\
8459.4908\
44.5\
120.0\
\
\
aircraftChar\
SBR1\
9071.84\
44.5\
120.0\
\
\
aircraftChar\
SBR1\
10886.208\
50.5\
105.0\
\
\
aircraftChar\
SBR2\
10568.6936\
44.5\
137.0\
\
\
aircraftChar\
SBR2\
11113.004\
50.4\
128.0\
\
\
aircraftChar\
SH33\
9979.024\
74.67\
96.0\
\
\
aircraftChar\
SH36\
11793.392\
74.8\
104.0\
\
").
test(50,
[(p('$V'(x),'$V'(y)):-true,true)],
[],
"\
\
\
\
p\
x\
y\
\
\
\
\
\
\
").
test(51,
[(p('$V'(x),'$V'(y)) :- true, q)],
[],
"\
\
\
\
p\
x\
y\
\
\
\
\
\
q\
\
\
\
\
").
test(52,
[(p('$V'(x),'$V'(y)):-(false ; false))],
[],
"\
\
\
\
p\
x\
y\
\
\
\
\
\
\
").
test(53,
[(p('$V'(x),'$V'(y)) :- (false ; q))],
[],
"\
\
\
\
p\
x\
y\
\
\
\
\
\
q\
\
\
\
\
").
test_bimetatrans :-
catch((test_1,
test_2,
test_3,
test_4,
test_5,
test_6,
test_7,
test_8,
test_9,
test_10,
test_11,
test_12,
test_13,
test_14,
test_15,
test_16,
test_17,
test_18,
test_19,
test_20,
test_21,
test_22,
test_23,
test_24,
test_25,
test_26,
test_27,
test_28,
test_29,
test_30,
test_31,
test_32,
test_33,
test_34,
test_35,
test_36,
test_37,
test_38,
test_39,
test_40,
test_41,
test_42,
test_43,
test_44,
test_45,
test_46,
test_47,
test_48,
test_49,
test_50,
test_51,
test_52,
test_53),
E,
(writeq(E),
nl,
false)).
:- initialization(test_bimetatrans).