:- 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).