Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;; -*- coding: utf-8; mode: scheme -*-
- ;; $Id: num-roman-test.rkt,v 1.7 2012/02/04 21:45:32 alcides_fp Exp $
- #lang racket
- (require rackunit
- rackunit/text-ui
- "num-roman.rkt")
- (define-test-suite num-roman-suite
- (test-case "prueba-numerales"
- (let ((pruebas '(("I" 1 0)
- ("II" 2 0)
- ("III" 3 0)
- ("IX" 9 0)
- ("XX" 2 1)
- ("CC" 2 2)
- ("XXX" 3 1)
- ("CCC" 3 2)
- ("MMM" 3 3)))
- (exp-val "")
- (act-val 0)
- (digit 0)
- (pos 0))
- (for ((elem pruebas))
- (set! exp-val (car elem))
- (set! digit (list-ref elem 1))
- (set! pos (list-ref elem 2))
- (set! act-val (numeral digit pos))
- (check-equal? act-val exp-val) ) ) )
- ;;----------------------------------------------------------------------
- (test-case "prueba-lista-cifras"
- ;;(fail "Prueba no implementada")
- (let ((numero 1234)
- (exp-val '(4 3 2 1))
- (act-val '()))
- (set! act-val (dec->list numero))
- (check-equal? act-val exp-val)))
- ;;----------------------------------------------------------------------
- (test-case "prueba-unidades"
- (let ((pruebas '(("I" 1)
- ("II" 2)
- ("III" 3)
- ("IV" 4)
- ("V" 5)
- ("IX" 9)) )
- (exp-val "")
- (act-val "")
- (arabigo 0))
- (for ((elem pruebas))
- (set! exp-val (car elem))
- (set! arabigo (cadr elem))
- (set! act-val (num-roman arabigo))
- (check-equal? act-val exp-val) ) ) )
- (test-case "prueba-decenas"
- (let ((pruebas '(("X" 10)
- ("XII" 12)
- ("XIX" 19)
- ("XX" 20)
- ("XXIII" 23)
- ("XXXVII" 37)
- ("LXXXIV" 84)) )
- (exp-val "")
- (act-val "")
- (arabigo 0))
- (for ((elem pruebas))
- (set! exp-val (car elem))
- (set! arabigo (cadr elem))
- (set! act-val (num-roman arabigo))
- (check-equal? act-val exp-val) ) ) )
- (test-case "prueba-centenas"
- (let ((pruebas '(("C" 100)
- ("CXXIII" 123)
- ("CCXIX" 219)
- ("CDXXIII" 423)
- ("DCXXXVII" 637)
- ("DCCCLXXXIV" 884)
- ("CMXCIX" 999)) )
- (exp-val "")
- (act-val "")
- (arabigo 0))
- (for ((elem pruebas))
- (set! exp-val (car elem))
- (set! arabigo (cadr elem))
- (set! act-val (num-roman arabigo))
- (check-equal? act-val exp-val) ) ) )
- (test-case "prueba-millares"
- (let ((pruebas '(("MCMLXXIV" 1974)
- ("MCMLXXXV" 1985)
- ("MCMXCIX" 1999)
- ("MMXII" 2012)) )
- (exp-val "")
- (act-val "")
- (arabigo 0))
- (for ((elem pruebas))
- (set! exp-val (car elem))
- (set! arabigo (cadr elem))
- (set! act-val (num-roman arabigo))
- (check-equal? act-val exp-val) ) ) ) )
- ;;------------------------------------------------------------------------
- (run-tests num-roman-suite)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement