From fe395e3a8ca72363c6de51f1ded8354bfda5e94e Mon Sep 17 00:00:00 2001 From: Mark Thom Date: Sun, 26 Apr 2020 20:32:16 -0600 Subject: [PATCH] publish bimetatrans_ruleml_tests, move both files to own directory --- Cargo.lock | 6 +- .../bimetatrans_ruleml.pl | 0 .../bimetatrans_ruleml_tests.pl | 4174 +++++++++++++++++ src/prolog/machine/system_calls.rs | 1 + 4 files changed, 4178 insertions(+), 3 deletions(-) rename src/prolog/examples/{ => bimetatrans_ruleml}/bimetatrans_ruleml.pl (100%) create mode 100644 src/prolog/examples/bimetatrans_ruleml/bimetatrans_ruleml_tests.pl diff --git a/Cargo.lock b/Cargo.lock index ede5aa3d..268177ba 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -491,7 +491,7 @@ dependencies = [ [[package]] name = "prolog_parser" -version = "0.8.53" +version = "0.8.54" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "lexical 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -638,7 +638,7 @@ dependencies = [ "nix 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", "num-rug-adapter 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "ordered-float 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", - "prolog_parser 0.8.53 (registry+https://github.com/rust-lang/crates.io-index)", + "prolog_parser 0.8.54 (registry+https://github.com/rust-lang/crates.io-index)", "ref_thread_local 0.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "rug 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)", "rustyline 6.0.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -870,7 +870,7 @@ dependencies = [ "checksum proc-macro-hack 0.5.14 (registry+https://github.com/rust-lang/crates.io-index)" = "fcfdefadc3d57ca21cf17990a28ef4c0f7c61383a28cb7604cf4a18e6ede1420" "checksum proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)" = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" "checksum proc-macro2 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)" = "6c09721c6781493a2a492a96b5a5bf19b65917fe6728884e7c44dd0c60ca3435" -"checksum prolog_parser 0.8.53 (registry+https://github.com/rust-lang/crates.io-index)" = "772ac5f493b6c0d1a4fb486da6b05cba8d2486f4d7f9872ae363d5fb097728c7" +"checksum prolog_parser 0.8.54 (registry+https://github.com/rust-lang/crates.io-index)" = "1724f289e6a670073445192ee382afd21138c106e2f4fa9797a7252926e7dea0" "checksum quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1" "checksum quote 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2bdc6c187c65bca4260c9011c9e3132efe4909da44726bad24cf7572ae338d7f" "checksum rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" diff --git a/src/prolog/examples/bimetatrans_ruleml.pl b/src/prolog/examples/bimetatrans_ruleml/bimetatrans_ruleml.pl similarity index 100% rename from src/prolog/examples/bimetatrans_ruleml.pl rename to src/prolog/examples/bimetatrans_ruleml/bimetatrans_ruleml.pl diff --git a/src/prolog/examples/bimetatrans_ruleml/bimetatrans_ruleml_tests.pl b/src/prolog/examples/bimetatrans_ruleml/bimetatrans_ruleml_tests.pl new file mode 100644 index 00000000..cf1026d8 --- /dev/null +++ b/src/prolog/examples/bimetatrans_ruleml/bimetatrans_ruleml_tests.pl @@ -0,0 +1,4174 @@ +:- module(bimetatrans_ruleml_tests, [test_bimetatrans_ruleml/0]). + +:- use_module('bimetatrans_ruleml'). + +:- 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. + */ + +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)))]. + + +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_([], []). + + +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, + [(mtow('$V'(kg)) :- aircraftType('$V'(type)), aircraftChar('$V'(type), '$V'(kg), '$V'(wingspan), '$V'(appSpeed))), + (mtowPreceding('$V'(kg)) :- precedingAircraftType('$V'(type)), aircraftChar('$V'(type), '$V'(kg), '$V'(wingspan), '$V'(appSpeed))), + (wingspan('$V'(feet)) :-aircraftType('$V'(type)), aircraftChar('$V'(type), '$V'(kg), '$V'(feet), '$V'(appSpeed))), + (wingspanPreceding('$V'(feet)) :- precedingAircraftType('$V'(type)), aircraftChar('$V'(type), '$V'(kg), '$V'(feet), '$V'(appSpeed))), + (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)))], + [], + "\ + \ + \ + \ + mtow\ + kg\ + \ + \ + \ + \ + \ + aircraftType\ + type\ + \ + \ + aircraftChar\ + type\ + kg\ + wingspan\ + appSpeed\ + \ + \ + \ + \ + \ + \ + \ + mtowPreceding\ + kg\ + \ + \ + \ + \ + \ + precedingAircraftType\ + type\ + \ + \ + aircraftChar\ + type\ + kg\ + wingspan\ + appSpeed\ + \ + \ + \ + \ + \ + \ + \ + wingspan\ + feet\ + \ + \ + \ + \ + \ + aircraftType\ + type\ + \ + \ + aircraftChar\ + type\ + kg\ + feet\ + appSpeed\ + \ + \ + \ + \ + \ + \ + \ + wingspanPreceding\ + feet\ + \ + \ + \ + \ + \ + precedingAircraftType\ + type\ + \ + \ + aircraftChar\ + type\ + kg\ + feet\ + appSpeed\ + \ + \ + \ + \ + \ + \ + \ + 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(light) :- mtow('$V'(kg)), lessThanOrEqual('$V'(kg), 7000.0)), + (icaoCategory(medium):- mtow('$V'(kg)), lessThan('$V'(kg), 136000.0), greaterThan('$V'(kg), 7000.0)), + (icaoCategory(heavy) :- aircraftType('$V'(model)), notEqual('$V'(model),'A388'), notEqual('$V'(model),'A38F'), mtow('$V'(kg)), greaterThanOrEqual('$V'(kg), 136000.0)), + (icaoCategory(super) :- aircraftType('A388')), + (icaoCategory(super) :- aircraftType('A38F')), + %(icaoCategory(super) :- aircraftType('A225')), + + + (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\ + light\ + \ + \ + \ + \ + \ + mtow\ + kg\ + \ + \ + lessThanOrEqual\ + kg\ + 7000.0\ + \ + \ + \ + \ + \ + \ + \ + icaoCategory\ + medium\ + \ + \ + \ + \ + \ + mtow\ + kg\ + \ + \ + lessThan\ + kg\ + 136000.0\ + \ + \ + greaterThan\ + kg\ + 7000.0\ + \ + \ + \ + \ + \ + \ + \ + icaoCategory\ + heavy\ + \ + \ + \ + \ + \ + aircraftType\ + model\ + \ + \ + notEqual\ + model\ + A388\ + \ + \ + notEqual\ + model\ + A38F\ + \ + \ + mtow\ + kg\ + \ + \ + greaterThanOrEqual\ + kg\ + 136000.0\ + \ + \ + \ + \ + \ + \ + \ + icaoCategory\ + super\ + \ + \ + \ + \ + aircraftType\ + A388\ + \ + \ + \ + \ + \ + \ + icaoCategory\ + super\ + \ + \ + \ + \ + aircraftType\ + A38F\ + \ + \ + \ + \ + \ + \ + 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_ruleml :- + 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)). diff --git a/src/prolog/machine/system_calls.rs b/src/prolog/machine/system_calls.rs index d564be97..13ceb30c 100644 --- a/src/prolog/machine/system_calls.rs +++ b/src/prolog/machine/system_calls.rs @@ -1565,6 +1565,7 @@ impl MachineState { arity ); let source_sink = self.store(self.deref(a1)); + MachineError::permission_error( h, Permission::Access, -- 2.54.0