Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Has been cancelled
90 lines
3.4 KiB
Smalltalk
90 lines
3.4 KiB
Smalltalk
"Pharo Kernel-Tests slice — small subset of the canonical Pharo unit
|
|
tests for SmallInteger, Float, String, Symbol, Boolean, Character.
|
|
Runs through the SUnit framework defined in lib/smalltalk/sunit.sx."
|
|
|
|
TestCase subclass: #IntegerTest
|
|
instanceVariableNames: ''!
|
|
|
|
!IntegerTest methodsFor: 'arithmetic'!
|
|
testAddition self assert: 2 + 3 equals: 5!
|
|
testSubtraction self assert: 10 - 4 equals: 6!
|
|
testMultiplication self assert: 6 * 7 equals: 42!
|
|
testDivisionExact self assert: 10 / 2 equals: 5!
|
|
testNegation self assert: 7 negated equals: -7!
|
|
testAbs self assert: -5 abs equals: 5!
|
|
testZero self assert: 0 + 0 equals: 0!
|
|
testIdentity self assert: 42 == 42! !
|
|
|
|
!IntegerTest methodsFor: 'comparison'!
|
|
testLessThan self assert: 1 < 2!
|
|
testLessOrEqual self assert: 5 <= 5!
|
|
testGreater self assert: 10 > 3!
|
|
testEqualSelf self assert: 7 = 7!
|
|
testNotEqual self assert: (3 ~= 5)!
|
|
testBetween self assert: (5 between: 1 and: 10)! !
|
|
|
|
!IntegerTest methodsFor: 'predicates'!
|
|
testEvenTrue self assert: 4 even!
|
|
testEvenFalse self deny: 5 even!
|
|
testOdd self assert: 3 odd!
|
|
testIsInteger self assert: 0 isInteger!
|
|
testIsNumber self assert: 1 isNumber!
|
|
testIsZero self assert: 0 isZero!
|
|
testIsNotZero self deny: 1 isZero! !
|
|
|
|
!IntegerTest methodsFor: 'powers and roots'!
|
|
testFactorialZero self assert: 0 factorial equals: 1!
|
|
testFactorialFive self assert: 5 factorial equals: 120!
|
|
testRaisedTo self assert: (2 raisedTo: 8) equals: 256!
|
|
testSquared self assert: 9 squared equals: 81!
|
|
testSqrtPerfect self assert: 16 sqrt equals: 4!
|
|
testGcd self assert: (24 gcd: 18) equals: 6!
|
|
testLcm self assert: (4 lcm: 6) equals: 12! !
|
|
|
|
!IntegerTest methodsFor: 'rounding'!
|
|
testFloor self assert: 3.7 floor equals: 3!
|
|
testCeiling self assert: 3.2 ceiling equals: 4!
|
|
testTruncated self assert: -3.7 truncated equals: -3!
|
|
testRounded self assert: 3.5 rounded equals: 4! !
|
|
|
|
TestCase subclass: #StringTest
|
|
instanceVariableNames: ''!
|
|
|
|
!StringTest methodsFor: 'access'!
|
|
testSize self assert: 'hello' size equals: 5!
|
|
testEmpty self assert: '' isEmpty!
|
|
testNotEmpty self assert: 'a' notEmpty!
|
|
testAtFirst self assert: ('hello' at: 1) equals: 'h'!
|
|
testAtLast self assert: ('hello' at: 5) equals: 'o'!
|
|
testFirst self assert: 'world' first equals: 'w'!
|
|
testLast self assert: 'world' last equals: 'd'! !
|
|
|
|
!StringTest methodsFor: 'concatenation'!
|
|
testCommaConcat self assert: 'hello, ' , 'world' equals: 'hello, world'!
|
|
testEmptyConcat self assert: '' , 'x' equals: 'x'!
|
|
testSelfConcat self assert: 'ab' , 'ab' equals: 'abab'! !
|
|
|
|
!StringTest methodsFor: 'comparisons'!
|
|
testEqual self assert: 'a' = 'a'!
|
|
testNotEqual self deny: 'a' = 'b'!
|
|
testIncludes self assert: ('banana' includes: $a)!
|
|
testIncludesNot self deny: ('banana' includes: $z)!
|
|
testIndexOf self assert: ('abcde' indexOf: $c) equals: 3! !
|
|
|
|
!StringTest methodsFor: 'transforms'!
|
|
testCopyFromTo self assert: ('helloworld' copyFrom: 6 to: 10) equals: 'world'!
|
|
testFormat self assert: ('Hello, {1}!' format: #('World')) equals: 'Hello, World!'! !
|
|
|
|
TestCase subclass: #BooleanTest
|
|
instanceVariableNames: ''!
|
|
|
|
!BooleanTest methodsFor: 'logic'!
|
|
testNotTrue self deny: true not!
|
|
testNotFalse self assert: false not!
|
|
testAnd self assert: (true & true)!
|
|
testOr self assert: (true | false)!
|
|
testIfTrueTaken self assert: (true ifTrue: [1] ifFalse: [2]) equals: 1!
|
|
testIfFalseTaken self assert: (false ifTrue: [1] ifFalse: [2]) equals: 2!
|
|
testAndShortCircuit self assert: (false and: [1/0]) equals: false!
|
|
testOrShortCircuit self assert: (true or: [1/0]) equals: true! !
|