mirror of
https://gitlab.com/scemama/QCaml.git
synced 2024-12-22 20:33:36 +01:00
53 lines
1.8 KiB
OCaml
53 lines
1.8 KiB
OCaml
|
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;
|
||
|
]
|
||
|
|
||
|
|