From a0a2c335b3822df896f51b26ca85fc7cde526088 Mon Sep 17 00:00:00 2001 From: Alexey Solovyev Date: Tue, 2 May 2023 21:33:20 -0600 Subject: [PATCH] Update OCaml snippets --- code_challenge_examples.yml | 55 ++++++++++++++++++++----------------- default_fixture_text.toml | 23 ++++++++-------- 2 files changed, 41 insertions(+), 37 deletions(-) diff --git a/code_challenge_examples.yml b/code_challenge_examples.yml index b56c165..12059b0 100644 --- a/code_challenge_examples.yml +++ b/code_challenge_examples.yml @@ -1043,31 +1043,36 @@ ocaml: default: reference reference: setup: |- - module Person = struct - type t = { name: string } - let greet (person: t) = (* TODO: write a greeter *) - end - - answer: |- - module Person = struct - type t = { name: string } - let greet (person: t) = "Hello, " ^ person.name ^ "!" - end - - fixture: |- - module Tests = struct - open OUnit - let suite = [ - "Person module" >::: - [ - "test_greet" >:: (fun _ -> - let person : Person.t = { Person.name = "Jack" } in - assert_equal "Hello, Jack!" (Person.greet person) - ) - ] - ] - ;; - end + let is_even (n: int) = false (* TODO: return true if the number is even *) + let is_odd (n: int) = false (* TODO: return true if the number is odd *) + + answer: |- + let is_even (n: int) = n mod 2 = 0 + let is_odd (n: int) = n land 1 <> 0 + + fixture: |- + open OUnit + let suite = [ + "is_even tests" >::: + [ + "is_even 0" >:: (fun _ -> + assert_equal true (Solution.is_even 0) ~printer:string_of_bool ~msg:"n = 0" + ); + "is_even 1" >:: (fun _ -> + assert_equal false (Solution.is_even 1) ~printer:string_of_bool ~msg:"n = 1" + ); + ]; + + "is_odd tests" >::: + [ + "is_odd 0" >:: (fun _ -> + assert_equal false (Solution.is_odd 0) ~printer:string_of_bool ~msg:"n = 0" + ); + "is_even 3" >:: (fun _ -> + assert_equal true (Solution.is_odd 3) ~printer:string_of_bool ~msg:"n = 3" + ); + ]; + ] swift: default: reference diff --git a/default_fixture_text.toml b/default_fixture_text.toml index c5915ea..5591610 100644 --- a/default_fixture_text.toml +++ b/default_fixture_text.toml @@ -510,21 +510,20 @@ objc = """ ocaml = """ (* TODO: replace with your own tests, these are just how-to examples. * OUnit Spec example: - * See http://ounit.forge.ocamlcore.org/api-ounit-2.0.0 for documentation + * See https://ocaml.org/p/ounit2/2.2.3/doc/index.html for documentation + * Available packages: https://docs.codewars.com/languages/ocaml *) -module Tests = struct - open OUnit - let suite = [ - "Suite Name" >::: - [ - "Test Name" >:: (fun _ -> - assert_equal "Expected" "Actual" - ) - ] +open Solution +open OUnit +let suite = [ + "Suite Name" >::: + [ + "Test Name" >:: (fun _ -> + assert_equal "Expected" "Actual" ~printer:Fun.id ~msg:"test" + ) ] - ;; -end + ] """ pascal = """