https://github.com/jrincayc/ucblogo-code
Tip revision: 1da9cc2eb6b14a636c407a9262dcb36711682ed2 authored by Barak A. Pearlmutter on 31 March 2023, 13:44:18 UTC
log changes
log changes
Tip revision: 1da9cc2
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