Advertisement
alcidesfp

num-roman-test.rkt

Feb 2nd, 2012
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scheme 3.06 KB | None | 0 0
  1. ;; -*- coding: utf-8; mode: scheme -*-
  2. ;; num-roman-test.rkt
  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-unidades"
  33.      (let ((pruebas '(("I" 1)
  34.                       ("II" 2)
  35.                       ("III" 3)
  36.                       ("IV" 4)
  37.                       ("V" 5)
  38.                       ("IX" 9)) )
  39.            (exp-val "")
  40.            (act-val "")
  41.            (arabigo 0))
  42.        (for ((elem pruebas))
  43.             (set! exp-val (car elem))
  44.             (set! arabigo (cadr elem))
  45.             (set! act-val (num-roman arabigo))
  46.             (check-equal? act-val exp-val) ) ) )
  47.  
  48.   (test-case "prueba-decenas"
  49.      (let ((pruebas '(("X" 10)
  50.                       ("XII" 12)
  51.                       ("XIX" 19)
  52.                       ("XX" 20)
  53.                       ("XXIII" 23)
  54.                       ("XXXVII" 37)
  55.                       ("LXXXIV" 84)) )
  56.            (exp-val "")
  57.            (act-val "")
  58.            (arabigo 0))
  59.        (for ((elem pruebas))
  60.             (set! exp-val (car elem))
  61.             (set! arabigo (cadr elem))
  62.             (set! act-val (num-roman arabigo))
  63.             (check-equal? act-val exp-val) ) ) )
  64.  
  65.   (test-case "prueba-centenas"
  66.      (let ((pruebas '(("C" 100)
  67.                       ("CXXIII" 123)
  68.                       ("CCXIX" 219)
  69.                       ("CDXXIII" 423)
  70.                       ("DCXXXVII" 637)
  71.                       ("DCCCLXXXIV" 884)
  72.                       ("CMXCIX" 999)) )
  73.            (exp-val "")
  74.            (act-val "")
  75.            (arabigo 0))
  76.        (for ((elem pruebas))
  77.             (set! exp-val (car elem))
  78.             (set! arabigo (cadr elem))
  79.             (set! act-val (num-roman arabigo))
  80.             (check-equal? act-val exp-val) ) ) )
  81.  
  82.   (test-case "prueba-millares"
  83.      (let ((pruebas '(("MCMLXXIV" 1974)
  84.                       ("MCMLXXXV" 1985)
  85.                       ("MCMXCIX" 1999)
  86.                       ("MMXII" 2012)) )
  87.            (exp-val "")
  88.            (act-val "")
  89.            (arabigo 0))
  90.        (for ((elem pruebas))
  91.             (set! exp-val (car elem))
  92.             (set! arabigo (cadr elem))
  93.             (set! act-val (num-roman arabigo))
  94.             (check-equal? act-val exp-val) ) ) )
  95.  
  96.   ;;(test-case "caso prueba 1"
  97.   ;;  (fail "Prueba no implementada"))
  98.   )
  99.  
  100. (run-tests num-roman-suite)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement