X-Git-Url: http://git.nguyen.vg/gitweb/?a=blobdiff_plain;f=tree.ml;h=4b7cb5451a0dbef843c75e090252d16cbe4c003d;hb=d046f2b9d8e39b30350399eafe122c30ff61c8c1;hp=a0346363925a599c9f56edd735ab3b2f98dcca16;hpb=9f227961ae2219728e4cdd56e4d4c4e7165e4306;p=SXSI%2Fxpathcomp.git diff --git a/tree.ml b/tree.ml index a034636..4b7cb54 100644 --- a/tree.ml +++ b/tree.ml @@ -176,7 +176,7 @@ let text_size t = text_size t.doc module MemUnion = Hashtbl.Make (struct type t = Ptset.Int.t*Ptset.Int.t - let equal (x,y) (z,t) = x == z || y == t + let equal (x,y) (z,t) = x == z && y == t let equal a b = equal a b || equal b a let hash (x,y) = (* commutative hash *) let x = Uid.to_int (Ptset.Int.uid x) @@ -430,7 +430,7 @@ let load ?(sample=64) ?(load_text=true) str = let in_c = Unix.in_channel_of_descr fd in let _ = set_binary_mode_in in_c true in let load_table () = - (let ms = input_line in_c in if ms <> magic_string then failwith "Invalid index file"); + (let ms = input_line in_c in if ms <> magic_string then failwith ("Invalid index file " ^ ms)); (let vs = input_line in_c in if vs <> version_string then failwith "Invalid version file"); let table : (Tag.t,(Ptset.Int.t*Ptset.Int.t*Ptset.Int.t*Ptset.Int.t)) Hashtbl.t = Marshal.from_channel in_c @@ -450,7 +450,7 @@ let load ?(sample=64) ?(load_text=true) str = ntable in let _ = Printf.eprintf "\nLoading tag table : " in - let ntable = time (load_table) () in + let ntable = time ~count:0 load_table () in ignore(Unix.lseek fd (pos_in in_c) Unix.SEEK_SET); let tree = { doc = tree_load fd load_text sample; ttable = ntable;} @@ -788,3 +788,7 @@ let stats t = +let test_prefix t s = Array.length (text_prefix t.doc s) +let test_suffix t s = Array.length (text_suffix t.doc s) +let test_contains t s = Array.length (text_contains t.doc s) +let test_equals t s = Array.length (text_equals t.doc s)