View difference between Paste ID: Tm6jyFhS and Qdsa6dZ2
SHOW: | | - or go back to the newest paste.
1
;; -*- coding: utf-8; mode: common-lisp -*-
2
;; num-roman-test.lisp
3
4
(asdf:load-system :fiveam)
5
6
(defpackage :num-roman-test
7
  (:use :cl :fiveam))
8
9
(in-package :num-roman-test)
10
11
(load "num-roman.lisp")
12
13
(def-suite num-roman-suite :description "Suite de pruebas unitarias.")
14
15
(in-suite num-roman-suite)
16
17
(test prueba-unidades
18
  (let ((pruebas '(("I" 1)
19
                   ("II" 2)
20
                   ("III" 3)
21
                   ("IV" 4)
22
                   ("V" 5)
23
                   ("IX" 9)) ))
24
25
    (loop for elem in pruebas do
26
         (is (string-equal (car elem) (num-roman (cadr elem)))) ) ) )
27
28
(test prueba-decenas
29
  (let ((pruebas '(("XI" 11)
30
                   ("XXVIII" 28)
31
                   ("XXXVII" 37)
32
                   ("XLII" 42)
33
                   ("XCIX" 99)) ))
34
35
    (loop for elem in pruebas do
36
         (is (string-equal (car elem) (num-roman (cadr elem)))) ) ) )
37
38
(test prueba-centenas
39
  (let ((pruebas '(("C" 100)
40
                   ("CXXIII" 123)
41-
                   ("CCXLV" 245)) ))
41+
                   ("CCXLV" 245)
42
                   ("CCCXXI" 321)
43
                   ("CMXCIX" 999)) ))
44
    (loop for elem in pruebas do
45
         (is (string-equal (car elem) (num-roman (cadr elem)))) ) ) )
46
47
(test prueba-millares
48
  (let ((pruebas '(("MCMLXXIV" 1974)
49
                   ("MCMLXXXV" 1985)
50
                   ("MCMXCIX" 1999)
51
                   ("MMXII" 2012)) ))
52
    (loop for elem in pruebas do
53
         (is (string-equal (car elem) (num-roman (cadr elem)))) ) ) )
54
55
;; (fail "Prueba no implementada")
56
57
(run! 'num-roman-suite)