123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- module Get_type = Qsp_syntax.Get_type
- module T = Qsp_syntax.T
- let _position = (Lexing.dummy_pos, Lexing.dummy_pos)
- let type_of : Get_type.t Alcotest.testable =
- Alcotest.testable Get_type.pp Get_type.equal
- let add_number () =
- let actual =
- Get_type.boperator _position T.Plus
- (Get_type.integer _position "0")
- (Get_type.integer _position "1")
- in
- let expected = Get_type.(Raw Integer) in
- let msg = "Adding integer" in
- Alcotest.(check' type_of ~msg ~expected ~actual)
- let add_literal_number () =
- let actual =
- Get_type.boperator _position T.Plus
- (Get_type.literal _position [ T.Text "2" ])
- (Get_type.integer _position "1")
- in
- let expected = Get_type.(Raw Integer) in
- let msg = "A string containing integer is considered as integer" in
- Alcotest.(check' type_of ~msg ~expected ~actual)
- let concat_text () =
- let actual =
- Get_type.boperator _position T.Plus
- (Get_type.literal _position [ T.Text "a" ])
- (Get_type.integer _position "1")
- in
- let expected = Get_type.(Raw String) in
- let msg = "Concatenate" in
- Alcotest.(check' type_of ~msg ~expected ~actual)
- let test =
- ( "Type expression",
- [
- Alcotest.test_case "int + int" `Quick add_number;
- Alcotest.test_case "'int' + int" `Quick add_literal_number;
- Alcotest.test_case "str + int" `Quick concat_text;
- ] )
|