test.ml 2.07 KB
(*
 *  ENIAMwalenty, an interface for Polish Valence Dictionary "Walenty".
 *  Copyright (C) 2016 Wojciech Jaworski <wjaworski atSPAMfree mimuw dot edu dot pl>
 *  Copyright (C) 2016 Institute of Computer Science Polish Academy of Sciences
 *
 *  This library is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU Lesser General Public License as published by
 *  the Free Software Foundation, either version 3 of the License, or
 *  (at your option) any later version.
 *
 *  This library is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU Lesser General Public License
 *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *)

open Xstd

let test_strings = [
  ["chłopiec","subst"; "maić","fin"; "ulica","subst"; "kwiat","subst"]
  ]

let map_of_list l =
  Xlist.fold l StringMap.empty (fun map (lemma,pos) ->
    StringMap.add map lemma (StringSet.singleton pos))

let string_of_list l =
  String.concat " " (Xlist.map l (fun (lemma,pos) -> lemma ^ ":" ^ pos))

let _ =
  (* print_endline "Testy wbudowane"; *)
  Xlist.iter test_strings (fun l ->
    print_endline ("\nTEST: " ^ (string_of_list l));
    let valence = ENIAMwalenty.find_frames (map_of_list l) in
    StringMap.iter valence (fun lexeme poss ->
      StringMap.iter poss (fun pos frames ->
        Xlist.iter frames (fun frame ->
         print_endline (ENIAMwalStringOf.frame lexeme frame)))));
(*  print_endline "Testy użytkownika.";
  print_endline "Wpisz tekst i naciśnij ENTER, pusty tekst kończy.";
  let s = ref (read_line ()) in
  while !s <> "" do
    let tokens = ENIAMtokenizer.parse !s in
    (* print_endline (ENIAMtokenizer.xml_of tokens); *)
    Xlist.iter tokens (fun token -> print_endline (ENIAMtokenizer.string_of 0 token));
    print_endline "Wpisz tekst i naciśnij ENTER, pusty tekst kończy.";
    s := read_line ()
  done;*)
  ()