https://github.com/jrincayc/ucblogo-code
Raw File
Tip revision: ca23b30a62eaaf03ea203ae71d00dc45a046514e authored by Dan Malec on 21 January 2024, 20:20:12 UTC
Merge pull request #178 from jrincayc/issue_176_alt
Tip revision: ca23b30
UnitTests-Random.lg

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;                                        ;;
;;             BERKELEY LOGO              ;;
;;             Random Number Unit Tests   ;;
;;                                        ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


InstallSuite [Random Numbers] [Tests.Random.Setup]



;; The list of all OOP unit tests
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

MAKE "Tests.Random [
  ;list tests here
  Tests.Random.RandomNumMonadic
  Tests.Random.RandomNumMonadicBadInput
  Tests.Random.RandomNumDyadic
  Tests.Random.RandomNumDyadicNegative
  Tests.Random.RandomNumDyadicBadRange
]

;; Test Suite setup procedure, main entry
;; point for all tests in this suite
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

to Tests.Random.Setup
  RunTests :Tests.Random
end

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;                                 ;;
;; HELPERS, MISC                   ;;
;;                                 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;                                 ;;
;; ADD INDIVIDUAL UNIT TESTS BELOW ;;
;;                                 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;all tests must return T/F indicating success/failure

to Tests.Random.RandomNumMonadic
  OUTPUT (AND [(Random 1) = 0])
end

TO Tests.Random.RandomNumMonadicBadInput
  CATCH "Error [ Random -10 ]
  LOCALMAKE "err ERROR

  ; Message 4 is "%p doesn't like %s as input"
  ; for unexpected negative integers
  OUTPUT (AND [NOT EMPTY? :err]
              [EQUAL? FIRST :err 4])
END

to Tests.Random.RandomNumDyadic
  Make "Num3 (Random 3 5)
  OUTPUT (AND [GreaterEqual? :num3 3]
              [LessEqual? :num3 5])
end

TO Tests.Random.RandomNumDyadicNegative
  Make "Num3 (Random -5 -3)
  OUTPUT (AND [GreaterEqual? :num3 -5]
              [LessEqual? :num3 -3])
END

TO Tests.Random.RandomNumDyadicBadRange
  CATCH "Error [ (Random 10 5) ]
  LOCALMAKE "err ERROR

  ; Message 4 is "%p doesn't like %s as input"
  ; for parameter checks handled in procedure logic
  OUTPUT (AND [NOT EMPTY? :err]
              [EQUAL? FIRST :err 4])
END
back to top