Skip to content

Commit

Permalink
Turned exercise 033 into practice (#2220)
Browse files Browse the repository at this point in the history
  • Loading branch information
divyankachaudhari committed Mar 15, 2024
1 parent 90761bb commit e8b6937
Show file tree
Hide file tree
Showing 9 changed files with 42 additions and 0 deletions.
4 changes: 4 additions & 0 deletions practice/033/answer/impl.ml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
let rec gcd a b =
if b = 0 then a else gcd b (a mod b)

let coprime a b = gcd a b = 1
2 changes: 2 additions & 0 deletions practice/033/answer/test/dune
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
(include_subdirs no)
(test (name run) (libraries ounit2 ex))
3 changes: 3 additions & 0 deletions practice/033/answer/test/run.ml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module Test = Ex.Make(Ex.Answer)

let () = OUnit2.run_test_tt_main Test.v
2 changes: 2 additions & 0 deletions practice/033/dune
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
(include_subdirs qualified)
(library (name ex) (libraries ounit2))
1 change: 1 addition & 0 deletions practice/033/dune-project
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
(lang dune 3.7)
21 changes: 21 additions & 0 deletions practice/033/ex.ml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
open OUnit2

module type Testable = sig
val coprime : int -> int -> bool
end

module Make(Tested: Testable) : sig val v : test end = struct
let tests = "coprime" >::: [
"coprime numbers" >:: (fun _ ->
assert_bool "13 and 27 should be coprime" (Tested.coprime 13 27));
"not coprime numbers" >:: (fun _ ->
assert_bool "20536 and 7826 should not be coprime" (not (Tested.coprime 20536 7826)));
]

let v = "Coprime Tests" >::: [
tests
]
end

module Work : Testable = Work.Impl
module Answer : Testable = Answer.Impl
4 changes: 4 additions & 0 deletions practice/033/work/impl.ml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
let rec gcd a b =
if b = 0 then a else gcd b (a mod b)

let coprime _ _ = failwith "Not yet implemented"
2 changes: 2 additions & 0 deletions practice/033/work/test/dune
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
(include_subdirs no)
(test (name run) (libraries ounit2 ex))
3 changes: 3 additions & 0 deletions practice/033/work/test/run.ml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module Test = Ex.Make(Ex.Work)

let () = OUnit2.run_test_tt_main Test.v

0 comments on commit e8b6937

Please sign in to comment.