open Core ;; open Qptypes ;; let test_molecule () = let xyz = " H 1.0 0.54386314 0.00000000 -3.78645152 O 8.0 1.65102147 0.00000000 -2.35602344 H 1.0 0.54386314 0.00000000 -0.92559535 " in print_string "---\n"; begin try ( ignore (Molecule.of_xyz_string xyz ~multiplicity:(Multiplicity.of_int 2)) ; print_string "Failed in MultiplicityError\n" ) with | Molecule.MultiplicityError _ -> print_string "MultiplicityError OK\n" end ; print_string "---\n"; let m = Molecule.of_xyz_string xyz in print_endline (Molecule.name m) ; let m = Molecule.of_xyz_string xyz ~charge:(Charge.of_int 1) ~multiplicity:(Multiplicity.of_int 2) in print_endline (Molecule.name m) ; let xyz = " H 0.54386314 0.00000000 -3.78645152 O 1.65102147 0.00000000 -2.35602344 H 0.54386314 0.00000000 -0.92559535 " in let m = Molecule.of_xyz_string xyz ~charge:(Charge.of_int (-2)) in print_endline (Molecule.name m) ; print_endline (Molecule.to_string m); print_string "---------\n"; let m = Molecule.of_xyz_file "c2h6.xyz" in print_string (Molecule.to_string m); print_string "\nDistance matrix\n"; print_string "---------------\n"; let d = Molecule.distance_matrix m in Array.iter d ~f:(fun x -> Array.iter x ~f:(fun y -> Printf.printf "%12.8f " y); print_newline (); ) ;; test_molecule ();;