From 6ca42ffbd541cede6afcc473b563e54b848ee534 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Kim=20Nguy=E1=BB=85n?= Date: Tue, 23 Jul 2013 19:06:50 +0200 Subject: [PATCH] Implement the multiple-starters feature: - implement automata merging and concatenation - change the command line parsing to allow multiple queries - update the output format to denote which query a result set belongs to - implement full evaluation of automata (associate each selecting state with its result set) Given queries Q1 ... QN on the command line, we can now: - compute Q1, then Q2, ... , then QN on the same document, sequentially - build one automaton that computes Q1, ..., QN in parallel - compute QN(... Q2(Q1(root))) sequentially (materializing intermediate results) - build one automaton that computes QN(...(Q2(Q1(root)))) in one run. --- src/ata.ml | 64 +++++++---- src/ata.mli | 13 ++- src/options.ml | 16 ++- src/run.ml | 114 ++++++++++++++------ src/run.mli | 1 + src/tatoo.ml | 117 ++++++++++++++++----- src/xpath/compile.ml | 6 ++ tests/alphabet.xml.results/A10_jaxp.xml | 2 +- tests/alphabet.xml.results/A11_jaxp.xml | 2 +- tests/alphabet.xml.results/A12_jaxp.xml | 2 +- tests/alphabet.xml.results/A1_jaxp.xml | 2 +- tests/alphabet.xml.results/A2_jaxp.xml | 2 +- tests/alphabet.xml.results/A3_jaxp.xml | 2 +- tests/alphabet.xml.results/A4_jaxp.xml | 2 +- tests/alphabet.xml.results/A5_jaxp.xml | 2 +- tests/alphabet.xml.results/A6_jaxp.xml | 2 +- tests/alphabet.xml.results/A7_jaxp.xml | 2 +- tests/alphabet.xml.results/A8_jaxp.xml | 2 +- tests/alphabet.xml.results/A9_jaxp.xml | 2 +- tests/alphabet.xml.results/O1_jaxp.xml | 2 +- tests/alphabet.xml.results/O2_jaxp.xml | 2 +- tests/alphabet.xml.results/O3_jaxp.xml | 2 +- tests/alphabet.xml.results/O4_jaxp.xml | 2 +- tests/alphabet.xml.results/P10_jaxp.xml | 2 +- tests/alphabet.xml.results/P11_jaxp.xml | 2 +- tests/alphabet.xml.results/P12_jaxp.xml | 2 +- tests/alphabet.xml.results/P1_jaxp.xml | 2 +- tests/alphabet.xml.results/P2_jaxp.xml | 2 +- tests/alphabet.xml.results/P3_jaxp.xml | 2 +- tests/alphabet.xml.results/P4_jaxp.xml | 2 +- tests/alphabet.xml.results/P5_jaxp.xml | 2 +- tests/alphabet.xml.results/P6_jaxp.xml | 2 +- tests/alphabet.xml.results/P7_jaxp.xml | 2 +- tests/alphabet.xml.results/P8_jaxp.xml | 2 +- tests/alphabet.xml.results/P9_jaxp.xml | 2 +- tests/alphabet.xml.results/T1_jaxp.xml | 2 +- tests/alphabet.xml.results/T2_jaxp.xml | 2 +- tests/alphabet.xml.results/T3_jaxp.xml | 2 +- tests/alphabet.xml.results/T4_jaxp.xml | 2 +- tests/alphabet.xml.results/T5_jaxp.xml | 2 +- tests/alphabet.xml.results/T6_jaxp.xml | 2 +- tests/alphabet.xml.results/T7_jaxp.xml | 2 +- tests/comments00.xml.results/C0_jaxp.xml | 2 +- tests/xmark_small.xml.results/A1_jaxp.xml | 2 +- tests/xmark_small.xml.results/A2_jaxp.xml | 2 +- tests/xmark_small.xml.results/A3_jaxp.xml | 2 +- tests/xmark_small.xml.results/A4_jaxp.xml | 2 +- tests/xmark_small.xml.results/A5_jaxp.xml | 2 +- tests/xmark_small.xml.results/A6_jaxp.xml | 2 +- tests/xmark_small.xml.results/A7_jaxp.xml | 2 +- tests/xmark_small.xml.results/A8_jaxp.xml | 2 +- tests/xmark_small.xml.results/B10_jaxp.xml | 2 +- tests/xmark_small.xml.results/B11_jaxp.xml | 2 +- tests/xmark_small.xml.results/B12_jaxp.xml | 2 +- tests/xmark_small.xml.results/B13_jaxp.xml | 2 +- tests/xmark_small.xml.results/B1_jaxp.xml | 2 +- tests/xmark_small.xml.results/B2_jaxp.xml | 2 +- tests/xmark_small.xml.results/B3_jaxp.xml | 2 +- tests/xmark_small.xml.results/B4_jaxp.xml | 2 +- tests/xmark_small.xml.results/B5_jaxp.xml | 2 +- tests/xmark_small.xml.results/B6_jaxp.xml | 2 +- tests/xmark_small.xml.results/B7_jaxp.xml | 2 +- tests/xmark_small.xml.results/B8_jaxp.xml | 2 +- tests/xmark_small.xml.results/B9_jaxp.xml | 2 +- tests/xmark_tiny.xml.results/A1_jaxp.xml | 2 +- tests/xmark_tiny.xml.results/A2_jaxp.xml | 2 +- tests/xmark_tiny.xml.results/A3_jaxp.xml | 2 +- tests/xmark_tiny.xml.results/A4_jaxp.xml | 2 +- tests/xmark_tiny.xml.results/A5_jaxp.xml | 2 +- tests/xmark_tiny.xml.results/A6_jaxp.xml | 2 +- tests/xmark_tiny.xml.results/A7_jaxp.xml | 2 +- tests/xmark_tiny.xml.results/A8_jaxp.xml | 2 +- tests/xmark_tiny.xml.results/B10_jaxp.xml | 2 +- tests/xmark_tiny.xml.results/B11_jaxp.xml | 2 +- tests/xmark_tiny.xml.results/B12_jaxp.xml | 2 +- tests/xmark_tiny.xml.results/B13_jaxp.xml | 2 +- tests/xmark_tiny.xml.results/B1_jaxp.xml | 2 +- tests/xmark_tiny.xml.results/B2_jaxp.xml | 2 +- tests/xmark_tiny.xml.results/B3_jaxp.xml | 2 +- tests/xmark_tiny.xml.results/B4_jaxp.xml | 2 +- tests/xmark_tiny.xml.results/B5_jaxp.xml | 2 +- tests/xmark_tiny.xml.results/B6_jaxp.xml | 2 +- tests/xmark_tiny.xml.results/B7_jaxp.xml | 2 +- tests/xmark_tiny.xml.results/B8_jaxp.xml | 2 +- tests/xmark_tiny.xml.results/B9_jaxp.xml | 2 +- 85 files changed, 329 insertions(+), 158 deletions(-) diff --git a/src/ata.ml b/src/ata.ml index 70213fd..add2775 100644 --- a/src/ata.ml +++ b/src/ata.ml @@ -116,13 +116,23 @@ struct end -module Transition = Hcons.Make (struct +module Transition = + struct + include Hcons.Make (struct type t = State.t * QNameSet.t * Formula.t let equal (a, b, c) (d, e, f) = a == d && b == e && c == f let hash (a, b, c) = HASHINT4 (PRIME1, a, ((QNameSet.uid b) :> int), ((Formula.uid c) :> int)) end) + let print ppf t = + let q, l, f = t.node in + fprintf ppf "%a, %a %s %a" + State.print q + QNameSet.print l + Pretty.double_right_arrow + Formula.print f + end module TransList : sig @@ -147,24 +157,12 @@ type t = { transitions: (State.t, (QNameSet.t*Formula.t) list) Hashtbl.t; } - +let uid t = t.id let get_states a = a.states let get_starting_states a = a.starting_states let get_selecting_states a = a.selecting_states -let get_trans a tag states = - StateSet.fold (fun q acc0 -> - try - let trs = Hashtbl.find a.transitions q in - List.fold_left (fun acc1 (labs, phi) -> - if QNameSet.mem tag labs then - TransList.cons (Transition.make (q, labs, phi)) acc1 - else acc1) acc0 trs - with Not_found -> acc0 - ) states TransList.nil - - let _pr_buff = Buffer.create 50 let _str_fmt = formatter_of_buffer _pr_buff @@ -173,6 +171,7 @@ let _flush_str_fmt () = pp_print_flush _str_fmt (); Buffer.clear _pr_buff; s let print fmt a = + let _ = _flush_str_fmt() in fprintf fmt "Internal UID: %i@\n\ States: %a@\n\ @@ -215,6 +214,21 @@ let print fmt a = ) strs_strings; fprintf fmt "%s@\n" line + +let get_trans a tag states = + StateSet.fold (fun q acc0 -> + try + let trs = Hashtbl.find a.transitions q in + List.fold_left (fun acc1 (labs, phi) -> + if QNameSet.mem tag labs then + TransList.cons (Transition.make (q, labs, phi)) acc1 + else acc1) acc0 trs + with Not_found -> acc0 + ) states TransList.nil + + + + (* [complete transitions a] ensures that for each state q and each symbols s in the alphabet, a transition q, s exists. @@ -444,16 +458,30 @@ let concat a1 a2 = let link_phi = StateSet.fold (fun q phi -> Formula.(or_ (stay q) phi)) - a1.selecting_states Formula.true_ + a1.selecting_states Formula.false_ in + Hashtbl.iter (fun q trs -> Hashtbl.add a1.transitions q trs) + a2.transitions; StateSet.iter (fun q -> - Hashtbl.add a1.transitions q [(QNameSet.any, link_phi)]) + Hashtbl.replace a1.transitions q [(QNameSet.any, link_phi)]) a2.starting_states; - Hashtbl.iter (fun q trs -> Hashtbl.add a1.transitions q trs) - a2.transitions; { a1 with states = StateSet.union a1.states a2.states; selecting_states = a2.selecting_states; transitions = a1.transitions; } + +let merge a1 a2 = + let a1 = copy a1 in + let a2 = copy a2 in + { a1 with + states = StateSet.union a1.states a2.states; + selecting_states = StateSet.union a1.selecting_states a2.selecting_states; + starting_states = StateSet.union a1.starting_states a2.starting_states; + transitions = + let () = + Hashtbl.iter (fun k v -> Hashtbl.add a1.transitions k v) a2.transitions + in + a1.transitions + } diff --git a/src/ata.mli b/src/ata.mli index 6b4c02a..eada8d0 100644 --- a/src/ata.mli +++ b/src/ata.mli @@ -68,7 +68,10 @@ module Formula : end (** Modules representing the Boolean formulae used in transitions *) -module Transition : Hcons.S with type data = State.t * QNameSet.t * Formula.t +module Transition : sig + include Hcons.S with type data = State.t * QNameSet.t * Formula.t + val print : Format.formatter -> t -> unit +end (** A [Transition.t] is a hashconsed triple of the state, the set of labels and the formula *) @@ -82,6 +85,9 @@ end type t (** 2-way Selecting Alternating Tree Automata *) +val uid : t -> Uid.t +(** return the internal unique ID of the automaton *) + val get_states : t -> StateSet.t (** return the set of states of the automaton *) @@ -110,6 +116,11 @@ val concat : t -> t -> t nodes [N], [a'' N = a' (a N)]. *) +val merge : t -> t -> t +(** [merge a a'] creates a new automaton [a''] that evaluates both [a] and [a''] + in parallel +*) + module Builder : sig type auto = t diff --git a/src/options.ml b/src/options.ml index 70c2b4d..3c2239a 100644 --- a/src/options.ml +++ b/src/options.ml @@ -3,8 +3,10 @@ open Arg let count = ref false let input_file : string option ref = ref None let output_file : string option ref = ref None -let query = ref "" +let queries = ref [] let stats = ref false +let compose = ref false +let parallel = ref false let set_string_option r s = r := Some s @@ -17,12 +19,20 @@ let specs = align [ "--doc", String (set_string_option input_file), " "; "-o", String (set_string_option output_file), " specify the output file [default stdout]"; "--out", String (set_string_option output_file), " "; + "-C", Set compose, " compose queries: each query is applied to the results of the previous one [default run all queries +from the root node]"; + "--compose", Set compose, " "; + "-p", Set parallel, " run all queries in parallel [default run all queries sequentially]"; + "--parallel", Set parallel, " "; ] -let usage_msg = Printf.sprintf "usage: %s [options] query" Sys.argv.(0) +let usage_msg = Printf.sprintf "usage: %s [options] query [query ... query]" Sys.argv.(0) let usage () = usage specs usage_msg let parse () = - parse specs (fun q -> query := q) usage_msg + parse specs (fun q -> queries := q :: !queries ) usage_msg; + match !queries with + [] -> raise (Arg.Bad "missing query") + | l -> queries := List.rev l diff --git a/src/run.ml b/src/run.ml index d7d5177..cb2ea3b 100644 --- a/src/run.ml +++ b/src/run.ml @@ -222,6 +222,38 @@ END loop phi + let eval_trans_aux cache4 fcs nss ps ss old_config = + let { sat = old_sat; + unsat = old_unsat; + todo = old_todo; + summary = old_summary } = old_config.NodeStatus.node + in + let sat, unsat, removed, kept, todo = + Ata.TransList.fold + (fun trs acc -> + let q, lab, phi = Ata.Transition.node trs in + let a_sat, a_unsat, a_rem, a_kept, a_todo = acc in + if StateSet.mem q a_sat || StateSet.mem q a_unsat then acc else + let new_phi = + eval_form phi fcs nss ps old_config old_summary + in + if Ata.Formula.is_true new_phi then + StateSet.add q a_sat, a_unsat, StateSet.add q a_rem, a_kept, a_todo + else if Ata.Formula.is_false new_phi then + a_sat, StateSet.add q a_unsat, StateSet.add q a_rem, a_kept, a_todo + else + let new_tr = Ata.Transition.make (q, lab, new_phi) in + (a_sat, a_unsat, a_rem, StateSet.add q a_kept, (Ata.TransList.cons new_tr a_todo)) + ) old_todo (old_sat, old_unsat, StateSet.empty, StateSet.empty, Ata.TransList.nil) + in + (* States that have been removed from the todo list and not kept are now + unsatisfiable *) + let unsat = StateSet.union unsat (StateSet.diff removed kept) in + (* States that were found once to be satisfiable remain so *) + let unsat = StateSet.diff unsat sat in + let new_config = NodeStatus.make { old_config.NodeStatus.node with sat; unsat; todo; } in + new_config + let eval_trans cache4 fcs nss ps ss = let fcsid = (fcs.NodeStatus.id :> int) in @@ -233,35 +265,9 @@ END let res = Cache.N4.find cache4 oid fcsid nssid psid in if res != dummy_status then res else - let { sat = old_sat; - unsat = old_unsat; - todo = old_todo; - summary = old_summary } = old_config.NodeStatus.node + let new_config = + eval_trans_aux cache4 fcs nss ps ss old_config in - let sat, unsat, removed, kept, todo = - Ata.TransList.fold - (fun trs acc -> - let q, lab, phi = Ata.Transition.node trs in - let a_sat, a_unsat, a_rem, a_kept, a_todo = acc in - if StateSet.mem q a_sat || StateSet.mem q a_unsat then acc else - let new_phi = - eval_form phi fcs nss ps old_config old_summary - in - if Ata.Formula.is_true new_phi then - StateSet.add q a_sat, a_unsat, StateSet.add q a_rem, a_kept, a_todo - else if Ata.Formula.is_false new_phi then - a_sat, StateSet.add q a_unsat, StateSet.add q a_rem, a_kept, a_todo - else - let new_tr = Ata.Transition.make (q, lab, new_phi) in - (a_sat, a_unsat, a_rem, StateSet.add q a_kept, (Ata.TransList.cons new_tr a_todo)) - ) old_todo (old_sat, old_unsat, StateSet.empty, StateSet.empty, Ata.TransList.nil) - in - (* States that have been removed from the todo list and not kept are now - unsatisfiable *) - let unsat = StateSet.union unsat (StateSet.diff removed kept) in - (* States that were found once to be satisfiable remain so *) - let unsat = StateSet.diff unsat sat in - let new_config = NodeStatus.make { old_config.NodeStatus.node with sat; unsat; todo; } in Cache.N4.add cache4 oid fcsid nssid psid new_config; new_config in @@ -294,10 +300,11 @@ END let c = unsafe_get_status status node_id in if c == dummy_status then (* first time we visit the node *) + let ltrs = get_trans cache2 auto tag (Ata.get_states auto) in NodeStatus.make { sat = StateSet.empty; unsat = Ata.get_starting_states auto; - todo = get_trans cache2 auto tag (Ata.get_states auto); + todo = ltrs; summary = NodeSummary.make (node == T.first_child tree parent) (* is_left *) (node == T.next_sibling tree parent) (* is_right *) @@ -416,6 +423,35 @@ END in loop (T.root tree) [] + + let get_full_results run = + let cache = run.status in + let auto = run.auto in + let tree = run.tree in + let res_mapper = Hashtbl.create MED_H_SIZE in + let () = + StateSet.iter + (fun q -> Hashtbl.add res_mapper q []) + (Ata.get_selecting_states auto) + in + let rec loop node = + if node != T.nil then + let () = loop (T.next_sibling tree node) in + let () = loop (T.first_child tree node) in + StateSet.iter + (fun q -> + try + let acc = Hashtbl.find res_mapper q in + Hashtbl.replace res_mapper q (node::acc) + with + Not_found -> ()) + cache.(T.preorder tree node).NodeStatus.node.sat + in + loop (T.root tree); + StateSet.fold + (fun q acc -> (q, Hashtbl.find res_mapper q)::acc) + (Ata.get_selecting_states auto) [] + let prepare_run run list = let tree = run.tree in let auto = run.auto in @@ -444,12 +480,24 @@ END status.(node_id) <- status0) list - - let eval auto tree nodes = + let eval full auto tree nodes = let run = make auto tree in prepare_run run nodes; while run.redo do - top_down run; + top_down run done; - get_results run + if full then `Full (get_full_results run) + else `Normal (get_results run) + + + let full_eval auto tree nodes = + match eval true auto tree nodes with + `Full l -> l + | _ -> assert false + + let eval auto tree nodes = + match eval false auto tree nodes with + `Normal l -> l + | _ -> assert false + end diff --git a/src/run.mli b/src/run.mli index d57f6c9..1efe4a7 100644 --- a/src/run.mli +++ b/src/run.mli @@ -16,4 +16,5 @@ module Make (T : Tree.S) : sig val eval : Ata.t -> T.t -> T.node list -> T.node list + val full_eval : Ata.t -> T.t -> T.node list -> (State.t * T.node list) list end diff --git a/src/tatoo.ml b/src/tatoo.ml index 4d7e693..d8c3e09 100644 --- a/src/tatoo.ml +++ b/src/tatoo.ml @@ -24,56 +24,123 @@ let time f arg msg = r +let compose_parallel run auto_list tree nodes () = + match auto_list with + [ auto ] -> [run auto tree nodes] + | _ -> assert false + +let compose_sequential run auto_list tree nodes () = + [ List.fold_left (fun acc auto -> + run auto tree acc) nodes auto_list ] + + +let restart_parallel run auto_list tree nodes () = + match auto_list with + [ auto ] -> List.map snd (run auto tree nodes) + | _ -> assert false + +let restart_sequential run auto_list tree nodes () = + List.map (fun auto -> run auto tree nodes) auto_list + let main () = let () = Options.parse () in let doc = let fd, close_fd = match !Options.input_file with - None -> stdin, ignore + None | Some "-" | Some "/dev/stdin" -> stdin, ignore | Some input -> let fd = open_in input in fd, fun () -> close_in fd in let d = time Naive_tree.load_xml_file fd "parsing xml document" in close_fd (); d in - let query = + let queries = time - Xpath.Parser.parse - (Ulexing.from_latin1_string !Options.query) - "parsing XPath query" + (fun l -> + List.map (fun q -> + Xpath.Parser.parse + (Ulexing.from_utf8_string q)) l) + !Options.queries + "parsing XPath queries" in - let auto = - time Xpath.Compile.path query "compiling XPath query" + (* parallel, compose -> action + true, true -> Ata.concat of all automata and single run + true, false -> Ata.merge of all automata and single run + false, true -> Eval first, then run on results then ... + false, false -> Eval first on root, then second on root then ... + *) + let auto_list = + time + (fun l -> + List.map (fun query -> Xpath.Compile.path query) l) + queries + "compiling XPath queries" + in + let auto_list = + if !Options.parallel then + match auto_list with + fst :: rest -> + let f = + if !Options.compose then + Ata.concat + else + Ata.merge + in + let big_auto = List.fold_left f fst rest in + [big_auto] + | _ -> assert false + + else + auto_list in - let auto = time Ata.copy auto "copying Automaton" in let output = match !Options.output_file with | None | Some "-" | Some "/dev/stdout" -> stdout | Some f -> open_out f in if !Options.stats then begin - Logger.msg `STATS "Query: %a " Xpath.Ast.print_path query; - Logger.msg `STATS "@[Automaton: @\n%a@]" Ata.print auto; + List.iter (fun query -> + Logger.msg `STATS "Query: %a " Xpath.Ast.print_path query) queries; + List.iter (fun auto -> + Logger.msg `STATS "@[Automaton: @\n%a@]" Ata.print auto) auto_list; end; let module Naive = Run.Make(Naive_tree) in - let results = - time (Naive.eval auto doc) ([Naive_tree.root doc]) "evaluating query" + let result_list = + let root = [ Naive_tree.root doc] in + let f, msg = + match !Options.parallel, !Options.compose with + true, true -> + compose_parallel Naive.eval auto_list doc root, "parallel/compose" + | true, false -> + restart_parallel Naive.full_eval auto_list doc root, "parallel/restart" + | false, true -> + compose_sequential Naive.eval auto_list doc root , "sequential/compose" + | false, false -> + restart_sequential Naive.eval auto_list doc root, "sequential/restart" + in + time f () ("evaluating query in " ^ msg ^ " mode") in time (fun () -> - output_string output "\n"; - if !Options.count then begin - output_string output (string_of_int (List.length results)); - output_char output '\n'; - end else - List.iter (fun n -> - Naive_tree.print_xml output doc n; - output_char output '\n' - ) results; - output_string output "\n"; - flush output; - if output != stdout then close_out output + let count = ref 1 in + List.iter (fun results -> + output_string output "\n"; + if !Options.count then begin + output_string output (string_of_int (List.length results)); + output_char output '\n'; + end else + List.iter (fun n -> + Naive_tree.print_xml output doc n; + output_char output '\n' + ) results; + output_string output "\n"; + incr count + ) result_list; + flush output; + if output != stdout then close_out output -) () "serializing results" + ) () "serializing results" let () = diff --git a/src/xpath/compile.ml b/src/xpath/compile.ml index 6987b4c..cd887b7 100644 --- a/src/xpath/compile.ml +++ b/src/xpath/compile.ml @@ -236,6 +236,12 @@ let path p = nasts) (StateSet.empty, StateSet.empty, [], StateSet.empty) p in let builder = Ata.Builder.make () in + (** ensure that we have a single selecting state at the end *) + let phi_sel = StateSet.fold (fun q acc -> F.or_ (F.stay q) acc) mstates F.false_ in + let q_sel = State.make () in + let states = StateSet.add q_sel states in + let mstates = StateSet.singleton q_sel in + let trans = (q_sel, [QNameSet.any, phi_sel]) :: trans in StateSet.iter (Ata.Builder.add_state builder ~starting:true) sstates; StateSet.iter diff --git a/tests/alphabet.xml.results/A10_jaxp.xml b/tests/alphabet.xml.results/A10_jaxp.xml index 0adab38..e0ba34a 100644 --- a/tests/alphabet.xml.results/A10_jaxp.xml +++ b/tests/alphabet.xml.results/A10_jaxp.xml @@ -1,4 +1,4 @@ - + clergywomandecadent clergywoman decadent diff --git a/tests/alphabet.xml.results/A11_jaxp.xml b/tests/alphabet.xml.results/A11_jaxp.xml index 9de6bbd..bf63d7c 100644 --- a/tests/alphabet.xml.results/A11_jaxp.xml +++ b/tests/alphabet.xml.results/A11_jaxp.xml @@ -1,3 +1,3 @@ - + The letter L is followed by the letter:which is followed by the letter:ovenware

plentiful

quarrelsome
diff --git a/tests/alphabet.xml.results/A12_jaxp.xml b/tests/alphabet.xml.results/A12_jaxp.xml index 9de6bbd..bf63d7c 100644 --- a/tests/alphabet.xml.results/A12_jaxp.xml +++ b/tests/alphabet.xml.results/A12_jaxp.xml @@ -1,3 +1,3 @@ - + The letter L is followed by the letter:which is followed by the letter:ovenware

plentiful

quarrelsome
diff --git a/tests/alphabet.xml.results/A1_jaxp.xml b/tests/alphabet.xml.results/A1_jaxp.xml index 1a1784e..a69088e 100644 --- a/tests/alphabet.xml.results/A1_jaxp.xml +++ b/tests/alphabet.xml.results/A1_jaxp.xml @@ -1,4 +1,4 @@ - + ovenware

plentiful

quarrelsome diff --git a/tests/alphabet.xml.results/A2_jaxp.xml b/tests/alphabet.xml.results/A2_jaxp.xml index 26ca0b8..26875fd 100644 --- a/tests/alphabet.xml.results/A2_jaxp.xml +++ b/tests/alphabet.xml.results/A2_jaxp.xml @@ -1,3 +1,3 @@ - + gentilityhappy-go-lucky manjigsawkerchiefThe letter L is followed by the letter:which is followed by the letter:ovenware

plentiful

quarrelsome
sagetatteredvoluptuarywriggle
diff --git a/tests/alphabet.xml.results/A3_jaxp.xml b/tests/alphabet.xml.results/A3_jaxp.xml index 6e09c87..37becd7 100644 --- a/tests/alphabet.xml.results/A3_jaxp.xml +++ b/tests/alphabet.xml.results/A3_jaxp.xml @@ -1,4 +1,4 @@ - + ovenware

plentiful

ovenware diff --git a/tests/alphabet.xml.results/A4_jaxp.xml b/tests/alphabet.xml.results/A4_jaxp.xml index 829fd9f..2c8971a 100644 --- a/tests/alphabet.xml.results/A4_jaxp.xml +++ b/tests/alphabet.xml.results/A4_jaxp.xml @@ -1,4 +1,4 @@ - + The letter L is followed by the letter:which is followed by the letter:ovenware

plentiful

quarrelsome
ovenware

plentiful

diff --git a/tests/alphabet.xml.results/A5_jaxp.xml b/tests/alphabet.xml.results/A5_jaxp.xml index 1a5765c..a84fce6 100644 --- a/tests/alphabet.xml.results/A5_jaxp.xml +++ b/tests/alphabet.xml.results/A5_jaxp.xml @@ -1,4 +1,4 @@ - + clergywomandecadentgentilityhappy-go-lucky manjigsawkerchiefThe letter L is followed by the letter:which is followed by the letter:ovenware

plentiful

quarrelsome
sagetatteredvoluptuarywriggle
yawnzuzzurellone
gentilityhappy-go-lucky manjigsawkerchiefThe letter L is followed by the letter:which is followed by the letter:ovenware

plentiful

quarrelsome
sagetatteredvoluptuarywriggle
diff --git a/tests/alphabet.xml.results/A6_jaxp.xml b/tests/alphabet.xml.results/A6_jaxp.xml index 8345b9d..8744ddb 100644 --- a/tests/alphabet.xml.results/A6_jaxp.xml +++ b/tests/alphabet.xml.results/A6_jaxp.xml @@ -1,4 +1,4 @@ - + clergywomandecadentgentilityhappy-go-lucky manjigsawkerchiefThe letter L is followed by the letter:which is followed by the letter:ovenware

plentiful

quarrelsome
sagetatteredvoluptuarywriggle
yawnzuzzurellone
gentilityhappy-go-lucky manjigsawkerchiefThe letter L is followed by the letter:which is followed by the letter:ovenware

plentiful

quarrelsome
sagetatteredvoluptuarywriggle
The letter L is followed by the letter:which is followed by the letter:ovenware

plentiful

quarrelsome
diff --git a/tests/alphabet.xml.results/A7_jaxp.xml b/tests/alphabet.xml.results/A7_jaxp.xml index dca0301..430a92c 100644 --- a/tests/alphabet.xml.results/A7_jaxp.xml +++ b/tests/alphabet.xml.results/A7_jaxp.xml @@ -1,4 +1,4 @@ - + sagetattered voluptuarywriggle diff --git a/tests/alphabet.xml.results/A8_jaxp.xml b/tests/alphabet.xml.results/A8_jaxp.xml index 6403866..8ded737 100644 --- a/tests/alphabet.xml.results/A8_jaxp.xml +++ b/tests/alphabet.xml.results/A8_jaxp.xml @@ -1,4 +1,4 @@ - + gentilityhappy-go-lucky man jigsawkerchief diff --git a/tests/alphabet.xml.results/A9_jaxp.xml b/tests/alphabet.xml.results/A9_jaxp.xml index b0181f8..f78d6e0 100644 --- a/tests/alphabet.xml.results/A9_jaxp.xml +++ b/tests/alphabet.xml.results/A9_jaxp.xml @@ -1,4 +1,4 @@ - + sagetattered sage tattered diff --git a/tests/alphabet.xml.results/O1_jaxp.xml b/tests/alphabet.xml.results/O1_jaxp.xml index 0383baf..2337e21 100644 --- a/tests/alphabet.xml.results/O1_jaxp.xml +++ b/tests/alphabet.xml.results/O1_jaxp.xml @@ -1,4 +1,4 @@ - + sagetattered voluptuarywriggle yawnzuzzurellone diff --git a/tests/alphabet.xml.results/O2_jaxp.xml b/tests/alphabet.xml.results/O2_jaxp.xml index 439c8cb..92b9cea 100644 --- a/tests/alphabet.xml.results/O2_jaxp.xml +++ b/tests/alphabet.xml.results/O2_jaxp.xml @@ -1,4 +1,4 @@ - + sage tattered voluptuary diff --git a/tests/alphabet.xml.results/O3_jaxp.xml b/tests/alphabet.xml.results/O3_jaxp.xml index 4a252cf..a460c56 100644 --- a/tests/alphabet.xml.results/O3_jaxp.xml +++ b/tests/alphabet.xml.results/O3_jaxp.xml @@ -1,4 +1,4 @@ - + clergywomandecadent clergywoman decadent diff --git a/tests/alphabet.xml.results/O4_jaxp.xml b/tests/alphabet.xml.results/O4_jaxp.xml index af9ff00..1f69ba8 100644 --- a/tests/alphabet.xml.results/O4_jaxp.xml +++ b/tests/alphabet.xml.results/O4_jaxp.xml @@ -1,4 +1,4 @@ - + clergywomandecadentgentilityhappy-go-lucky manjigsawkerchiefThe letter L is followed by the letter:which is followed by the letter:ovenware

plentiful

quarrelsome
sagetatteredvoluptuarywriggle
yawnzuzzurellone
gentilityhappy-go-lucky manjigsawkerchiefThe letter L is followed by the letter:which is followed by the letter:ovenware

plentiful

quarrelsome
sagetatteredvoluptuarywriggle
diff --git a/tests/alphabet.xml.results/P10_jaxp.xml b/tests/alphabet.xml.results/P10_jaxp.xml index b0181f8..f78d6e0 100644 --- a/tests/alphabet.xml.results/P10_jaxp.xml +++ b/tests/alphabet.xml.results/P10_jaxp.xml @@ -1,4 +1,4 @@ - + sagetattered sage tattered diff --git a/tests/alphabet.xml.results/P11_jaxp.xml b/tests/alphabet.xml.results/P11_jaxp.xml index 9de6bbd..bf63d7c 100644 --- a/tests/alphabet.xml.results/P11_jaxp.xml +++ b/tests/alphabet.xml.results/P11_jaxp.xml @@ -1,3 +1,3 @@ - + The letter L is followed by the letter:which is followed by the letter:ovenware

plentiful

quarrelsome
diff --git a/tests/alphabet.xml.results/P12_jaxp.xml b/tests/alphabet.xml.results/P12_jaxp.xml index f6bea4b..7cfb3ab 100644 --- a/tests/alphabet.xml.results/P12_jaxp.xml +++ b/tests/alphabet.xml.results/P12_jaxp.xml @@ -1,4 +1,4 @@ - + clergywomandecadentgentilityhappy-go-lucky manjigsawkerchiefThe letter L is followed by the letter:which is followed by the letter:ovenware

plentiful

quarrelsome
sagetatteredvoluptuarywriggle
yawnzuzzurellone
clergywomandecadent clergywoman diff --git a/tests/alphabet.xml.results/P1_jaxp.xml b/tests/alphabet.xml.results/P1_jaxp.xml index 26ca0b8..26875fd 100644 --- a/tests/alphabet.xml.results/P1_jaxp.xml +++ b/tests/alphabet.xml.results/P1_jaxp.xml @@ -1,3 +1,3 @@ - + gentilityhappy-go-lucky manjigsawkerchiefThe letter L is followed by the letter:which is followed by the letter:ovenware

plentiful

quarrelsome
sagetatteredvoluptuarywriggle
diff --git a/tests/alphabet.xml.results/P2_jaxp.xml b/tests/alphabet.xml.results/P2_jaxp.xml index 1a1784e..a69088e 100644 --- a/tests/alphabet.xml.results/P2_jaxp.xml +++ b/tests/alphabet.xml.results/P2_jaxp.xml @@ -1,4 +1,4 @@ - + ovenware

plentiful

quarrelsome diff --git a/tests/alphabet.xml.results/P3_jaxp.xml b/tests/alphabet.xml.results/P3_jaxp.xml index 1a5765c..a84fce6 100644 --- a/tests/alphabet.xml.results/P3_jaxp.xml +++ b/tests/alphabet.xml.results/P3_jaxp.xml @@ -1,4 +1,4 @@ - + clergywomandecadentgentilityhappy-go-lucky manjigsawkerchiefThe letter L is followed by the letter:which is followed by the letter:ovenware

plentiful

quarrelsome
sagetatteredvoluptuarywriggle
yawnzuzzurellone
gentilityhappy-go-lucky manjigsawkerchiefThe letter L is followed by the letter:which is followed by the letter:ovenware

plentiful

quarrelsome
sagetatteredvoluptuarywriggle
diff --git a/tests/alphabet.xml.results/P4_jaxp.xml b/tests/alphabet.xml.results/P4_jaxp.xml index 8345b9d..8744ddb 100644 --- a/tests/alphabet.xml.results/P4_jaxp.xml +++ b/tests/alphabet.xml.results/P4_jaxp.xml @@ -1,4 +1,4 @@ - + clergywomandecadentgentilityhappy-go-lucky manjigsawkerchiefThe letter L is followed by the letter:which is followed by the letter:ovenware

plentiful

quarrelsome
sagetatteredvoluptuarywriggle
yawnzuzzurellone
gentilityhappy-go-lucky manjigsawkerchiefThe letter L is followed by the letter:which is followed by the letter:ovenware

plentiful

quarrelsome
sagetatteredvoluptuarywriggle
The letter L is followed by the letter:which is followed by the letter:ovenware

plentiful

quarrelsome
diff --git a/tests/alphabet.xml.results/P5_jaxp.xml b/tests/alphabet.xml.results/P5_jaxp.xml index 6e09c87..37becd7 100644 --- a/tests/alphabet.xml.results/P5_jaxp.xml +++ b/tests/alphabet.xml.results/P5_jaxp.xml @@ -1,4 +1,4 @@ - + ovenware

plentiful

ovenware diff --git a/tests/alphabet.xml.results/P6_jaxp.xml b/tests/alphabet.xml.results/P6_jaxp.xml index 829fd9f..2c8971a 100644 --- a/tests/alphabet.xml.results/P6_jaxp.xml +++ b/tests/alphabet.xml.results/P6_jaxp.xml @@ -1,4 +1,4 @@ - + The letter L is followed by the letter:which is followed by the letter:ovenware

plentiful

quarrelsome
ovenware

plentiful

diff --git a/tests/alphabet.xml.results/P7_jaxp.xml b/tests/alphabet.xml.results/P7_jaxp.xml index 6403866..8ded737 100644 --- a/tests/alphabet.xml.results/P7_jaxp.xml +++ b/tests/alphabet.xml.results/P7_jaxp.xml @@ -1,4 +1,4 @@ - + gentilityhappy-go-lucky man jigsawkerchief diff --git a/tests/alphabet.xml.results/P8_jaxp.xml b/tests/alphabet.xml.results/P8_jaxp.xml index dca0301..430a92c 100644 --- a/tests/alphabet.xml.results/P8_jaxp.xml +++ b/tests/alphabet.xml.results/P8_jaxp.xml @@ -1,4 +1,4 @@ - + sagetattered voluptuarywriggle diff --git a/tests/alphabet.xml.results/P9_jaxp.xml b/tests/alphabet.xml.results/P9_jaxp.xml index 0adab38..e0ba34a 100644 --- a/tests/alphabet.xml.results/P9_jaxp.xml +++ b/tests/alphabet.xml.results/P9_jaxp.xml @@ -1,4 +1,4 @@ - + clergywomandecadent clergywoman decadent diff --git a/tests/alphabet.xml.results/T1_jaxp.xml b/tests/alphabet.xml.results/T1_jaxp.xml index 6332e2d..382544b 100644 --- a/tests/alphabet.xml.results/T1_jaxp.xml +++ b/tests/alphabet.xml.results/T1_jaxp.xml @@ -1,4 +1,4 @@ - + The letter L is followed by the letter: which is followed by the letter: diff --git a/tests/alphabet.xml.results/T2_jaxp.xml b/tests/alphabet.xml.results/T2_jaxp.xml index a990051..9f87b33 100644 --- a/tests/alphabet.xml.results/T2_jaxp.xml +++ b/tests/alphabet.xml.results/T2_jaxp.xml @@ -1,3 +1,3 @@ - + diff --git a/tests/alphabet.xml.results/T3_jaxp.xml b/tests/alphabet.xml.results/T3_jaxp.xml index 0ae8d20..b25c6db 100644 --- a/tests/alphabet.xml.results/T3_jaxp.xml +++ b/tests/alphabet.xml.results/T3_jaxp.xml @@ -1,3 +1,3 @@ - + diff --git a/tests/alphabet.xml.results/T4_jaxp.xml b/tests/alphabet.xml.results/T4_jaxp.xml index 0ae8d20..b25c6db 100644 --- a/tests/alphabet.xml.results/T4_jaxp.xml +++ b/tests/alphabet.xml.results/T4_jaxp.xml @@ -1,3 +1,3 @@ - + diff --git a/tests/alphabet.xml.results/T5_jaxp.xml b/tests/alphabet.xml.results/T5_jaxp.xml index c95635d..83ac2cf 100644 --- a/tests/alphabet.xml.results/T5_jaxp.xml +++ b/tests/alphabet.xml.results/T5_jaxp.xml @@ -1,4 +1,4 @@ - + The letter L is followed by the letter: diff --git a/tests/alphabet.xml.results/T6_jaxp.xml b/tests/alphabet.xml.results/T6_jaxp.xml index c35335e..52f4d06 100644 --- a/tests/alphabet.xml.results/T6_jaxp.xml +++ b/tests/alphabet.xml.results/T6_jaxp.xml @@ -1,3 +1,3 @@ - + ovenware

plentiful

diff --git a/tests/alphabet.xml.results/T7_jaxp.xml b/tests/alphabet.xml.results/T7_jaxp.xml index 1a1784e..a69088e 100644 --- a/tests/alphabet.xml.results/T7_jaxp.xml +++ b/tests/alphabet.xml.results/T7_jaxp.xml @@ -1,4 +1,4 @@ - + ovenware

plentiful

quarrelsome diff --git a/tests/comments00.xml.results/C0_jaxp.xml b/tests/comments00.xml.results/C0_jaxp.xml index 57f3545..172422a 100644 --- a/tests/comments00.xml.results/C0_jaxp.xml +++ b/tests/comments00.xml.results/C0_jaxp.xml @@ -1,3 +1,3 @@ - + diff --git a/tests/xmark_small.xml.results/A1_jaxp.xml b/tests/xmark_small.xml.results/A1_jaxp.xml index e4f6cef..46f97a0 100644 --- a/tests/xmark_small.xml.results/A1_jaxp.xml +++ b/tests/xmark_small.xml.results/A1_jaxp.xml @@ -1,4 +1,4 @@ - + brethren hath powers intents pudding ceremonious troyan maim drain supplications air kindly shrine office stabbed disarms show feels pocket diff --git a/tests/xmark_small.xml.results/A2_jaxp.xml b/tests/xmark_small.xml.results/A2_jaxp.xml index 0e46d7a..e6556e7 100644 --- a/tests/xmark_small.xml.results/A2_jaxp.xml +++ b/tests/xmark_small.xml.results/A2_jaxp.xml @@ -1,4 +1,4 @@ - + miserable wash twelvemonth baby earthly fairy spare passes rise caitiff scattered brach words empty ground domain cup negligence speaks hundred encounter thus drawn observation broke will heads wast skulls mark objects dies pagan lose wight cinna description lie poisons diff --git a/tests/xmark_small.xml.results/A3_jaxp.xml b/tests/xmark_small.xml.results/A3_jaxp.xml index 0e46d7a..e6556e7 100644 --- a/tests/xmark_small.xml.results/A3_jaxp.xml +++ b/tests/xmark_small.xml.results/A3_jaxp.xml @@ -1,4 +1,4 @@ - + miserable wash twelvemonth baby earthly fairy spare passes rise caitiff scattered brach words empty ground domain cup negligence speaks hundred encounter thus drawn observation broke will heads wast skulls mark objects dies pagan lose wight cinna description lie poisons diff --git a/tests/xmark_small.xml.results/A4_jaxp.xml b/tests/xmark_small.xml.results/A4_jaxp.xml index 182ca0a..559d13a 100644 --- a/tests/xmark_small.xml.results/A4_jaxp.xml +++ b/tests/xmark_small.xml.results/A4_jaxp.xml @@ -1,4 +1,4 @@ - + 09/08/2001 08/23/2001 03/16/2001 diff --git a/tests/xmark_small.xml.results/A5_jaxp.xml b/tests/xmark_small.xml.results/A5_jaxp.xml index b2d49bb..ed5c67b 100644 --- a/tests/xmark_small.xml.results/A5_jaxp.xml +++ b/tests/xmark_small.xml.results/A5_jaxp.xml @@ -1,4 +1,4 @@ - + 06/11/2000 01/25/1999 08/22/1999 diff --git a/tests/xmark_small.xml.results/A6_jaxp.xml b/tests/xmark_small.xml.results/A6_jaxp.xml index e10e7eb..b3645d3 100644 --- a/tests/xmark_small.xml.results/A6_jaxp.xml +++ b/tests/xmark_small.xml.results/A6_jaxp.xml @@ -1,4 +1,4 @@ - + Hajin Callegarin Niklas Rudisin Husam Abdelguerfi diff --git a/tests/xmark_small.xml.results/A7_jaxp.xml b/tests/xmark_small.xml.results/A7_jaxp.xml index 5ceff22..e39451f 100644 --- a/tests/xmark_small.xml.results/A7_jaxp.xml +++ b/tests/xmark_small.xml.results/A7_jaxp.xml @@ -1,4 +1,4 @@ - + Odette Morrison Ibrahim Karnin German Barz diff --git a/tests/xmark_small.xml.results/A8_jaxp.xml b/tests/xmark_small.xml.results/A8_jaxp.xml index e2a945e..6d85805 100644 --- a/tests/xmark_small.xml.results/A8_jaxp.xml +++ b/tests/xmark_small.xml.results/A8_jaxp.xml @@ -1,4 +1,4 @@ - + Philippas Woit Takio Usdin Sakthirel Mittermeir diff --git a/tests/xmark_small.xml.results/B10_jaxp.xml b/tests/xmark_small.xml.results/B10_jaxp.xml index b0c697a..25b9f37 100644 --- a/tests/xmark_small.xml.results/B10_jaxp.xml +++ b/tests/xmark_small.xml.results/B10_jaxp.xml @@ -1,2 +1,2 @@ - + diff --git a/tests/xmark_small.xml.results/B11_jaxp.xml b/tests/xmark_small.xml.results/B11_jaxp.xml index f9b174f..905cb75 100644 --- a/tests/xmark_small.xml.results/B11_jaxp.xml +++ b/tests/xmark_small.xml.results/B11_jaxp.xml @@ -1,4 +1,4 @@ - + 11/14/2000 07/26/1998 diff --git a/tests/xmark_small.xml.results/B12_jaxp.xml b/tests/xmark_small.xml.results/B12_jaxp.xml index b6beecb..8f1fbf0 100644 --- a/tests/xmark_small.xml.results/B12_jaxp.xml +++ b/tests/xmark_small.xml.results/B12_jaxp.xml @@ -1,4 +1,4 @@ - + duteous nine eighteen condemn earnestly subtle spotted attend diff --git a/tests/xmark_small.xml.results/B13_jaxp.xml b/tests/xmark_small.xml.results/B13_jaxp.xml index 284fd3f..38d1a28 100644 --- a/tests/xmark_small.xml.results/B13_jaxp.xml +++ b/tests/xmark_small.xml.results/B13_jaxp.xml @@ -1,4 +1,4 @@ - + officer embrace such fears distinction attires tract element sails course placed fouler four plac joint cimber paper admittance tread character diff --git a/tests/xmark_small.xml.results/B1_jaxp.xml b/tests/xmark_small.xml.results/B1_jaxp.xml index 9d212b4..0c00c87 100644 --- a/tests/xmark_small.xml.results/B1_jaxp.xml +++ b/tests/xmark_small.xml.results/B1_jaxp.xml @@ -1,4 +1,4 @@ - + ungentle secure pleading snow base hoar fortunes lowest grief diff --git a/tests/xmark_small.xml.results/B2_jaxp.xml b/tests/xmark_small.xml.results/B2_jaxp.xml index 0359e79..59d2a0d 100644 --- a/tests/xmark_small.xml.results/B2_jaxp.xml +++ b/tests/xmark_small.xml.results/B2_jaxp.xml @@ -1,4 +1,4 @@ - + officer embrace such fears distinction attires tract element sails course placed fouler four plac joint cimber paper admittance tread character diff --git a/tests/xmark_small.xml.results/B3_jaxp.xml b/tests/xmark_small.xml.results/B3_jaxp.xml index a56764c..91aa114 100644 --- a/tests/xmark_small.xml.results/B3_jaxp.xml +++ b/tests/xmark_small.xml.results/B3_jaxp.xml @@ -1,4 +1,4 @@ - + 04/19/2000 diff --git a/tests/xmark_small.xml.results/B4_jaxp.xml b/tests/xmark_small.xml.results/B4_jaxp.xml index 5c21bc3..8916dd0 100644 --- a/tests/xmark_small.xml.results/B4_jaxp.xml +++ b/tests/xmark_small.xml.results/B4_jaxp.xml @@ -1,4 +1,4 @@ - + 01/05/2000 diff --git a/tests/xmark_small.xml.results/B5_jaxp.xml b/tests/xmark_small.xml.results/B5_jaxp.xml index c1b1b08..62780ad 100644 --- a/tests/xmark_small.xml.results/B5_jaxp.xml +++ b/tests/xmark_small.xml.results/B5_jaxp.xml @@ -1,4 +1,4 @@ - + duteous nine eighteen condemn earnestly subtle spotted attend diff --git a/tests/xmark_small.xml.results/B6_jaxp.xml b/tests/xmark_small.xml.results/B6_jaxp.xml index c7e0372..e30e91b 100644 --- a/tests/xmark_small.xml.results/B6_jaxp.xml +++ b/tests/xmark_small.xml.results/B6_jaxp.xml @@ -1,4 +1,4 @@ - + condemn earnestly subtle spotted attend poisons diff --git a/tests/xmark_small.xml.results/B7_jaxp.xml b/tests/xmark_small.xml.results/B7_jaxp.xml index f96ac1d..75bbd46 100644 --- a/tests/xmark_small.xml.results/B7_jaxp.xml +++ b/tests/xmark_small.xml.results/B7_jaxp.xml @@ -1,4 +1,4 @@ - + Fumihide Fairtlough Philippas Woit Takio Usdin diff --git a/tests/xmark_small.xml.results/B8_jaxp.xml b/tests/xmark_small.xml.results/B8_jaxp.xml index 687da92..b7db632 100644 --- a/tests/xmark_small.xml.results/B8_jaxp.xml +++ b/tests/xmark_small.xml.results/B8_jaxp.xml @@ -1,4 +1,4 @@ - + 11/14/2000 07/26/1998 diff --git a/tests/xmark_small.xml.results/B9_jaxp.xml b/tests/xmark_small.xml.results/B9_jaxp.xml index 7637cac..174e50d 100644 --- a/tests/xmark_small.xml.results/B9_jaxp.xml +++ b/tests/xmark_small.xml.results/B9_jaxp.xml @@ -1,4 +1,4 @@ - + 11/14/2000 07/26/1998 diff --git a/tests/xmark_tiny.xml.results/A1_jaxp.xml b/tests/xmark_tiny.xml.results/A1_jaxp.xml index 33f3af1..c127ae5 100644 --- a/tests/xmark_tiny.xml.results/A1_jaxp.xml +++ b/tests/xmark_tiny.xml.results/A1_jaxp.xml @@ -1,3 +1,3 @@ - + heathen diff --git a/tests/xmark_tiny.xml.results/A2_jaxp.xml b/tests/xmark_tiny.xml.results/A2_jaxp.xml index 963bf01..51577c4 100644 --- a/tests/xmark_tiny.xml.results/A2_jaxp.xml +++ b/tests/xmark_tiny.xml.results/A2_jaxp.xml @@ -1,4 +1,4 @@ - + record penury herself reasons merits villainous whereupon wrote penny mar seemeth heathen diff --git a/tests/xmark_tiny.xml.results/A3_jaxp.xml b/tests/xmark_tiny.xml.results/A3_jaxp.xml index 963bf01..51577c4 100644 --- a/tests/xmark_tiny.xml.results/A3_jaxp.xml +++ b/tests/xmark_tiny.xml.results/A3_jaxp.xml @@ -1,4 +1,4 @@ - + record penury herself reasons merits villainous whereupon wrote penny mar seemeth heathen diff --git a/tests/xmark_tiny.xml.results/A4_jaxp.xml b/tests/xmark_tiny.xml.results/A4_jaxp.xml index 91d0e7d..c028128 100644 --- a/tests/xmark_tiny.xml.results/A4_jaxp.xml +++ b/tests/xmark_tiny.xml.results/A4_jaxp.xml @@ -1,3 +1,3 @@ - + 12/05/2001 diff --git a/tests/xmark_tiny.xml.results/A5_jaxp.xml b/tests/xmark_tiny.xml.results/A5_jaxp.xml index 408ba47..3f4f2d3 100644 --- a/tests/xmark_tiny.xml.results/A5_jaxp.xml +++ b/tests/xmark_tiny.xml.results/A5_jaxp.xml @@ -1,4 +1,4 @@ - + 06/06/2000 12/05/2001 diff --git a/tests/xmark_tiny.xml.results/A6_jaxp.xml b/tests/xmark_tiny.xml.results/A6_jaxp.xml index b0c697a..25b9f37 100644 --- a/tests/xmark_tiny.xml.results/A6_jaxp.xml +++ b/tests/xmark_tiny.xml.results/A6_jaxp.xml @@ -1,2 +1,2 @@ - + diff --git a/tests/xmark_tiny.xml.results/A7_jaxp.xml b/tests/xmark_tiny.xml.results/A7_jaxp.xml index a0673ca..e738b68 100644 --- a/tests/xmark_tiny.xml.results/A7_jaxp.xml +++ b/tests/xmark_tiny.xml.results/A7_jaxp.xml @@ -1,3 +1,3 @@ - + Jaak Tempesti diff --git a/tests/xmark_tiny.xml.results/A8_jaxp.xml b/tests/xmark_tiny.xml.results/A8_jaxp.xml index b0c697a..25b9f37 100644 --- a/tests/xmark_tiny.xml.results/A8_jaxp.xml +++ b/tests/xmark_tiny.xml.results/A8_jaxp.xml @@ -1,2 +1,2 @@ - + diff --git a/tests/xmark_tiny.xml.results/B10_jaxp.xml b/tests/xmark_tiny.xml.results/B10_jaxp.xml index b0c697a..25b9f37 100644 --- a/tests/xmark_tiny.xml.results/B10_jaxp.xml +++ b/tests/xmark_tiny.xml.results/B10_jaxp.xml @@ -1,2 +1,2 @@ - + diff --git a/tests/xmark_tiny.xml.results/B11_jaxp.xml b/tests/xmark_tiny.xml.results/B11_jaxp.xml index 461c9f8..271722e 100644 --- a/tests/xmark_tiny.xml.results/B11_jaxp.xml +++ b/tests/xmark_tiny.xml.results/B11_jaxp.xml @@ -1,4 +1,4 @@ - + 06/16/1999 05/12/2001 diff --git a/tests/xmark_tiny.xml.results/B12_jaxp.xml b/tests/xmark_tiny.xml.results/B12_jaxp.xml index edad0cf..ef50483 100644 --- a/tests/xmark_tiny.xml.results/B12_jaxp.xml +++ b/tests/xmark_tiny.xml.results/B12_jaxp.xml @@ -1,4 +1,4 @@ - + duteous nine eighteen great scarce brook diff --git a/tests/xmark_tiny.xml.results/B13_jaxp.xml b/tests/xmark_tiny.xml.results/B13_jaxp.xml index 06708c4..24aea62 100644 --- a/tests/xmark_tiny.xml.results/B13_jaxp.xml +++ b/tests/xmark_tiny.xml.results/B13_jaxp.xml @@ -1,4 +1,4 @@ - + officer embrace such fears distinction attires preparation rejoice season presently victory women beating diff --git a/tests/xmark_tiny.xml.results/B1_jaxp.xml b/tests/xmark_tiny.xml.results/B1_jaxp.xml index 4d92e81..31d06e7 100644 --- a/tests/xmark_tiny.xml.results/B1_jaxp.xml +++ b/tests/xmark_tiny.xml.results/B1_jaxp.xml @@ -1,4 +1,4 @@ - + unsur brutish nakedness diff --git a/tests/xmark_tiny.xml.results/B2_jaxp.xml b/tests/xmark_tiny.xml.results/B2_jaxp.xml index 71cc789..37a1657 100644 --- a/tests/xmark_tiny.xml.results/B2_jaxp.xml +++ b/tests/xmark_tiny.xml.results/B2_jaxp.xml @@ -1,4 +1,4 @@ - + officer embrace such fears distinction attires preparation rejoice season presently victory women beating diff --git a/tests/xmark_tiny.xml.results/B3_jaxp.xml b/tests/xmark_tiny.xml.results/B3_jaxp.xml index 2ac913b..30d41dc 100644 --- a/tests/xmark_tiny.xml.results/B3_jaxp.xml +++ b/tests/xmark_tiny.xml.results/B3_jaxp.xml @@ -1,4 +1,4 @@ - + 10/22/2001 diff --git a/tests/xmark_tiny.xml.results/B4_jaxp.xml b/tests/xmark_tiny.xml.results/B4_jaxp.xml index 5a8d16b..970c937 100644 --- a/tests/xmark_tiny.xml.results/B4_jaxp.xml +++ b/tests/xmark_tiny.xml.results/B4_jaxp.xml @@ -1,4 +1,4 @@ - + 07/27/2001 diff --git a/tests/xmark_tiny.xml.results/B5_jaxp.xml b/tests/xmark_tiny.xml.results/B5_jaxp.xml index 54209fa..6dc3e0a 100644 --- a/tests/xmark_tiny.xml.results/B5_jaxp.xml +++ b/tests/xmark_tiny.xml.results/B5_jaxp.xml @@ -1,4 +1,4 @@ - + duteous nine eighteen great scarce brook diff --git a/tests/xmark_tiny.xml.results/B6_jaxp.xml b/tests/xmark_tiny.xml.results/B6_jaxp.xml index 4129172..e87702e 100644 --- a/tests/xmark_tiny.xml.results/B6_jaxp.xml +++ b/tests/xmark_tiny.xml.results/B6_jaxp.xml @@ -1,4 +1,4 @@ - + great scarce brook abhorr execution beckon rue diff --git a/tests/xmark_tiny.xml.results/B7_jaxp.xml b/tests/xmark_tiny.xml.results/B7_jaxp.xml index b0c697a..25b9f37 100644 --- a/tests/xmark_tiny.xml.results/B7_jaxp.xml +++ b/tests/xmark_tiny.xml.results/B7_jaxp.xml @@ -1,2 +1,2 @@ - + diff --git a/tests/xmark_tiny.xml.results/B8_jaxp.xml b/tests/xmark_tiny.xml.results/B8_jaxp.xml index b0c697a..25b9f37 100644 --- a/tests/xmark_tiny.xml.results/B8_jaxp.xml +++ b/tests/xmark_tiny.xml.results/B8_jaxp.xml @@ -1,2 +1,2 @@ - + diff --git a/tests/xmark_tiny.xml.results/B9_jaxp.xml b/tests/xmark_tiny.xml.results/B9_jaxp.xml index 461c9f8..271722e 100644 --- a/tests/xmark_tiny.xml.results/B9_jaxp.xml +++ b/tests/xmark_tiny.xml.results/B9_jaxp.xml @@ -1,4 +1,4 @@ - + 06/16/1999 05/12/2001 -- 2.17.1