open Common open Ci let tests = (* let test_id () = let l_a = [ 1 ; 2 ; 3 ; 5 ; 64 ] and l_b = [ 2 ; 3 ; 5 ; 65 ] in let det1 = Determinant.of_lists l_a l_b in let det2 = Determinant.negate_phase det1 in in *) let test_single () = let l_a = [ 1 ; 2 ; 3 ; 5 ; 64 ] and l_b = [ 2 ; 3 ; 5 ; 65 ] in let det1 = Determinant.of_lists 66 l_a l_b in let det2 = Determinant.single_excitation Spin.Alfa 3 7 det1 in let t = Excitation.single_of_det det1 det2 in Alcotest.(check bool) "single 1" true (t = Single (Phase.Pos, { hole=3 ; particle=7 ; spin=Spin.Alfa}) ); let det2 = Determinant.single_excitation Spin.Alfa 2 7 det1 |> Determinant.negate_phase in let t = Excitation.single_of_det det1 det2 in Alcotest.(check bool) "single 2" true (t = Single (Phase.Neg, { hole=2 ; particle=7 ; spin=Spin.Alfa }) ); let det2 = Determinant.single_excitation Spin.Beta 2 7 det1 in let t = Excitation.single_of_det det1 det2 in Alcotest.(check bool) "single 3" true (t = Single (Phase.Pos, { hole=2 ; particle=7 ; spin=Spin.Beta}) ); let det2 = Determinant.single_excitation Spin.Beta 3 256 det1 in let t = Excitation.single_of_det det1 det2 in Alcotest.(check bool) "single 4" true (t = Single (Phase.Pos, { hole=3 ; particle=256 ; spin=Spin.Beta}) ); in let test_double () = let l_a = [ 1 ; 2 ; 3 ; 5 ; 64 ] and l_b = [ 2 ; 3 ; 5 ; 65 ] in let det1 = Determinant.of_lists 66 l_a l_b in let det2 = Determinant.double_excitation Spin.Alfa 3 7 Spin.Alfa 2 6 det1 in let t = Excitation.double_of_det det1 det2 in Alcotest.(check bool) "double 1" true (t = Double (Phase.Neg, { hole=2 ; particle=7 ; spin=Spin.Alfa}, { hole=3 ; particle=6 ; spin=Spin.Alfa})); in [ "Single", `Quick, test_single; "Double", `Quick, test_double; ]