aboutsummaryrefslogtreecommitdiff
path: root/src/urm_test.ml
blob: c64da3b9cbac232ad03f761e833a864334ffe3b7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
(*
 * UPEM / L3 / Functional programming / Project: URM
 * Pacien TRAN-GIRARD, Adam NAILI
 *)

open Common
open Main
open Parser
open Urm
open Reg
open Kaputt

let run_urm_prgm filename regs =
  let prgm = read_prgm (urm_program_of_lex) filename
  in urm_mk prgm regs |> urm_run

let () =
  Test.add_simple_test
    ~title:"example_urm_add"
    (fun () ->
       let output = run_urm_prgm "../examples/add.urm" [Reg(1, 5); Reg(2, 3)]
       in Assertion.equal (regs_get output 1) (5 + 3))

let () =
  Test.add_simple_test
    ~title:"example_urm_factorial"
    (fun () ->
       let output = run_urm_prgm "../examples/factorial.urm" [Reg(1, 5)]
       in Assertion.equal (regs_get output 1) 120)

let () =
  Test.add_simple_test
    ~title:"example_urm_sum_first_integers"
    (fun () ->
       let output = run_urm_prgm "../examples/sum-first-integers.urm" [Reg(1, 51)]
       in Assertion.equal (regs_get output 1) (51*(51+1)/2))

let () =
  Test.add_simple_test
    ~title:"example_urm_sum_first_odd_integers"
    (fun () ->
       let output = run_urm_prgm "../examples/sum-first-odd-integers.urm" [Reg(1, 51)]
       in Assertion.equal (regs_get output 1) 676)

let () = if Array.mem "run-tests" Sys.argv then Test.launch_tests ()