Advertisement
alcidesfp

num-roman-test.rkt

Feb 4th, 2012
178
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ;; -*- coding: utf-8; mode: scheme -*-
  2. ;; $Id: num-roman-test.rkt,v 1.7 2012/02/04 21:45:32 alcides_fp Exp $
  3. #lang racket
  4.  
  5. (require rackunit
  6.          rackunit/text-ui
  7.          "num-roman.rkt")
  8.  
  9. (define-test-suite num-roman-suite
  10.  
  11.   (test-case "prueba-numerales"
  12.      (let ((pruebas '(("I" 1 0)
  13.                       ("II" 2 0)
  14.                       ("III" 3 0)
  15.                       ("IX" 9 0)
  16.                       ("XX" 2 1)
  17.                       ("CC" 2 2)
  18.                       ("XXX" 3 1)
  19.                       ("CCC" 3 2)
  20.                       ("MMM" 3 3)))
  21.            (exp-val "")
  22.            (act-val 0)
  23.            (digit 0)
  24.            (pos 0))
  25.        (for ((elem pruebas))
  26.             (set! exp-val (car elem))
  27.             (set! digit (list-ref elem 1))
  28.             (set! pos (list-ref elem 2))
  29.             (set! act-val (numeral digit pos))
  30.             (check-equal? act-val exp-val) ) ) )
  31.   ;;----------------------------------------------------------------------
  32.   (test-case "prueba-lista-cifras"
  33.    ;;(fail "Prueba no implementada")
  34.    (let ((numero 1234)
  35.          (exp-val '(4 3 2 1))
  36.          (act-val '()))
  37.      (set! act-val (dec->list numero))
  38.      (check-equal? act-val exp-val)))
  39.   ;;----------------------------------------------------------------------
  40.   (test-case "prueba-unidades"
  41.      (let ((pruebas '(("I" 1)
  42.                       ("II" 2)
  43.                       ("III" 3)
  44.                       ("IV" 4)
  45.                       ("V" 5)
  46.                       ("IX" 9)) )
  47.            (exp-val "")
  48.            (act-val "")
  49.            (arabigo 0))
  50.        (for ((elem pruebas))
  51.             (set! exp-val (car elem))
  52.             (set! arabigo (cadr elem))
  53.             (set! act-val (num-roman arabigo))
  54.             (check-equal? act-val exp-val) ) ) )
  55.  
  56.   (test-case "prueba-decenas"
  57.      (let ((pruebas '(("X" 10)
  58.                       ("XII" 12)
  59.                       ("XIX" 19)
  60.                       ("XX" 20)
  61.                       ("XXIII" 23)
  62.                       ("XXXVII" 37)
  63.                       ("LXXXIV" 84)) )
  64.            (exp-val "")
  65.            (act-val "")
  66.            (arabigo 0))
  67.        (for ((elem pruebas))
  68.             (set! exp-val (car elem))
  69.             (set! arabigo (cadr elem))
  70.             (set! act-val (num-roman arabigo))
  71.             (check-equal? act-val exp-val) ) ) )
  72.  
  73.   (test-case "prueba-centenas"
  74.      (let ((pruebas '(("C" 100)
  75.                       ("CXXIII" 123)
  76.                       ("CCXIX" 219)
  77.                       ("CDXXIII" 423)
  78.                       ("DCXXXVII" 637)
  79.                       ("DCCCLXXXIV" 884)
  80.                       ("CMXCIX" 999)) )
  81.            (exp-val "")
  82.            (act-val "")
  83.            (arabigo 0))
  84.        (for ((elem pruebas))
  85.             (set! exp-val (car elem))
  86.             (set! arabigo (cadr elem))
  87.             (set! act-val (num-roman arabigo))
  88.             (check-equal? act-val exp-val) ) ) )
  89.  
  90.   (test-case "prueba-millares"
  91.      (let ((pruebas '(("MCMLXXIV" 1974)
  92.                       ("MCMLXXXV" 1985)
  93.                       ("MCMXCIX" 1999)
  94.                       ("MMXII" 2012)) )
  95.            (exp-val "")
  96.            (act-val "")
  97.            (arabigo 0))
  98.        (for ((elem pruebas))
  99.             (set! exp-val (car elem))
  100.             (set! arabigo (cadr elem))
  101.             (set! act-val (num-roman arabigo))
  102.             (check-equal? act-val exp-val) ) ) ) )
  103. ;;------------------------------------------------------------------------
  104. (run-tests num-roman-suite)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement