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) |