[squeak-dev] The Trunk: KernelTests-nice.203.mcz
commits at source.squeak.org
commits at source.squeak.org
Fri Oct 14 19:51:03 UTC 2011
Nicolas Cellier uploaded a new version of KernelTests to project The Trunk:
http://source.squeak.org/trunk/KernelTests-nice.203.mcz
==================== Summary ====================
Name: KernelTests-nice.203
Author: nice
Time: 14 October 2011, 9:50:43.911 pm
UUID: e0f108e0-cb07-4ab9-a1c1-51e93c09197a
Ancestors: KernelTests-ul.202
Integrate tests Juan made in Cuis for exact/inexact #sqrt and #nthRoot:
=============== Diff against KernelTests-ul.202 ===============
Item was added:
+ ----- Method: FloatTest>>testMaxExactInteger (in category 'testing') -----
+ testMaxExactInteger
+ "
+ FloatTest new testMaxExactInteger
+ "
+
+ self assert: Float maxExactInteger asFloat truncated = Float maxExactInteger.
+ 0 to: 10000 do: [ :j |
+ self assert: (Float maxExactInteger-j) asFloat truncated = (Float maxExactInteger-j) ].
+ self deny: (Float maxExactInteger+1) asFloat truncated = (Float maxExactInteger+1)
+ !
Item was added:
+ ----- Method: FloatTest>>testNthRoot (in category 'tests - mathematical functions') -----
+ testNthRoot
+ "
+ FloatTest new testNthRoot
+ "
+ self should: [ -1.23 nthRoot: 4 ] raise: ArithmeticError!
Item was changed:
+ ----- Method: FloatTest>>testRaisedTo (in category 'tests - mathematical functions') -----
- ----- Method: FloatTest>>testRaisedTo (in category 'testing - arithmetic') -----
testRaisedTo
+ "
+ FloatTest new testRaisedTo
+ "
+ self should: [ -1.23 raisedTo: 1/4 ] raise: ArithmeticError!
- "this is a test related to http://bugs.squeak.org/view.php?id=6781"
-
- self should: [0.0 raisedTo: -1] raise: ZeroDivide.
- self should: [0.0 raisedTo: -1.0] raise: ZeroDivide.!
Item was added:
+ ----- Method: FloatTest>>testZeroRaisedToNegativePower (in category 'testing - arithmetic') -----
+ testZeroRaisedToNegativePower
+ "this is a test related to http://bugs.squeak.org/view.php?id=6781"
+
+ self should: [0.0 raisedTo: -1] raise: ZeroDivide.
+ self should: [0.0 raisedTo: -1.0] raise: ZeroDivide.!
Item was added:
+ ----- Method: FractionTest>>assert:classAndValueEquals: (in category 'private') -----
+ assert: a classAndValueEquals: b
+ self assert: a class = b class.
+ self assert: a = b!
Item was added:
+ ----- Method: FractionTest>>testExactRaisedTo (in category 'tests - mathematical functions') -----
+ testExactRaisedTo
+ "
+ FractionTest new testExactRaisedTo
+ "
+ | f |
+ self assert: (4/9 raisedTo: 1/2) classAndValueEquals: 2/3.
+ self assert: (9/4 raisedTo: 1/2) classAndValueEquals: 3/2.
+ #( 1 5 29 135 1234 567890 123123123 456456456456 98765432109876543210987654321 987123987123987123987123987123987123987123987123) pairsDo: [ :a :b |
+ f := a / b.
+ self assert: (f squared raisedTo: 1/2) classAndValueEquals: f.
+ self assert: (f negated squared raisedTo: 1/2) classAndValueEquals: f.
+ f := b / a.
+ self assert: (f squared raisedTo: 1/2) classAndValueEquals: f.
+ self assert: (f negated squared raisedTo: 1/2) classAndValueEquals: f ].
+
+ self assert: (8/27 raisedTo: 1/3) classAndValueEquals: 2/3.
+ self assert: (27/8 raisedTo: 1/3) classAndValueEquals: 3/2.
+ #( 1 5 29 135 1234 567890 123123123 456456456456 98765432109876543210987654321 987123987123987123987123987123987123987123987123) pairsDo: [ :a :b |
+ f := a / b.
+ self assert: ((f raisedTo: 3) raisedTo: 1/3) classAndValueEquals: f.
+ self assert: ((f negated raisedTo: 3) raisedTo: 1/3) classAndValueEquals: f negated.
+ f := b / a.
+ self assert: ((f raisedTo: 3) raisedTo: 1/3) classAndValueEquals: f.
+ self assert: ((f negated raisedTo: 3) raisedTo: 1/3) classAndValueEquals: f negated ].
+
+ self assert: (4/9 raisedTo: 3/2) classAndValueEquals: 8/27.
+ self assert: (8/27 raisedTo: 2/3) classAndValueEquals: 4/9.
+ #( 1 5 29 135 1234 567890 123123123 456456456456 98765432109876543210987654321 987123987123987123987123987123987123987123987123) pairsDo: [ :a :b |
+ f := a / b.
+ self assert: ((f raisedTo: 3) raisedTo: 2/3) classAndValueEquals: f*f.
+ self assert: ((f raisedTo: 2) raisedTo: 3/2) classAndValueEquals: f*f*f.
+ self assert: ((f negated raisedTo: 3) raisedTo: 2/3) classAndValueEquals: f*f.
+ self assert: ((f negated raisedTo: 2) raisedTo: 3/2) classAndValueEquals: f*f*f.
+ f := b / a.
+ self assert: ((f raisedTo: 3) raisedTo: 2/3) classAndValueEquals: f*f.
+ self assert: ((f raisedTo: 2) raisedTo: 3/2) classAndValueEquals: f*f*f.
+ self assert: ((f negated raisedTo: 3) raisedTo: 2/3) classAndValueEquals: f*f.
+ self assert: ((f negated raisedTo: 2) raisedTo: 3/2) classAndValueEquals: f*f*f ].
+
+ self assert: (32/243 raisedTo: 3/5) classAndValueEquals: 8/27.
+ self assert: (8/27 raisedTo: 5/3) classAndValueEquals: 32/243.
+ #( 1 5 29 135 1234 567890 123123123 456456456456 98765432109876543210987654321 987123987123987123987123987123987123987123987123) pairsDo: [ :a :b |
+ f := a / b.
+ self assert: ((f raisedTo: 5) raisedTo: 3/5) classAndValueEquals: f*f*f.
+ self assert: ((f raisedTo: 3) raisedTo: 5/3) classAndValueEquals: f*f*f*f*f.
+ self assert: ((f negated raisedTo: 5) raisedTo: 3/5) classAndValueEquals: (f*f*f) negated.
+ self assert: ((f negated raisedTo: 3) raisedTo: 5/3) classAndValueEquals: (f*f*f*f*f) negated.
+
+ self assert: ((f raisedTo: -5) raisedTo: 3/5) classAndValueEquals: 1/(f*f*f).
+ self assert: ((f raisedTo: -3) raisedTo: 5/3) classAndValueEquals: 1/(f*f*f*f*f).
+ self assert: ((f negated raisedTo: -5) raisedTo: 3/5) classAndValueEquals: -1/(f*f*f).
+ self assert: ((f negated raisedTo: -3) raisedTo: 5/3) classAndValueEquals: -1/(f*f*f*f*f).
+ self assert: ((f raisedTo: 5) raisedTo: -3/5) classAndValueEquals: 1/(f*f*f).
+ self assert: ((f raisedTo: 3) raisedTo: -5/3) classAndValueEquals: 1/(f*f*f*f*f).
+ self assert: ((f negated raisedTo: 5) raisedTo: -3/5) classAndValueEquals: -1/(f*f*f).
+ self assert: ((f negated raisedTo: 3) raisedTo: -5/3) classAndValueEquals: -1/(f*f*f*f*f).
+
+ "No exact result => Float result"
+ self assert: ((f raisedTo: 3) +1 raisedTo: 5/3) isFloat.
+ self assert: ((f negated raisedTo: 3) -1 raisedTo: 5/3) isFloat.
+
+ f := b / a.
+ self assert: ((f raisedTo: 5) raisedTo: 3/5) classAndValueEquals: f*f*f.
+ self assert: ((f raisedTo: 3) raisedTo: 5/3) classAndValueEquals: f*f*f*f*f.
+ self assert: ((f negated raisedTo: 5) raisedTo: 3/5) classAndValueEquals: (f*f*f) negated.
+ self assert: ((f negated raisedTo: 3) raisedTo: 5/3) classAndValueEquals: (f*f*f*f*f) negated.
+
+ "No exact result => Float result"
+ self assert: ((f raisedTo: 3) +1 raisedTo: 5/3) isFloat.
+ self assert: ((f negated raisedTo: 3) -1 raisedTo: 5/3) isFloat ].!
Item was added:
+ ----- Method: FractionTest>>testExactSqrt (in category 'tests - mathematical functions') -----
+ testExactSqrt
+ "
+ FractionTest new testExactSqrt
+ "
+ | f |
+ self assert: (4/9) sqrt classAndValueEquals: 2/3.
+ #( 1 5 29 135 1234 567890 123123123 456456456456 98765432109876543210987654321 987123987123987123987123987123987123987123987123) pairsDo: [ :i :j |
+ f := i / j.
+ self assert: f squared sqrt classAndValueEquals: f.
+ f := j / i.
+ self assert: f squared sqrt classAndValueEquals: f ]!
Item was added:
+ ----- Method: FractionTest>>testInexactRaisedTo (in category 'tests - mathematical functions') -----
+ testInexactRaisedTo
+ "
+ FractionTest new testInexactRaisedTo
+ "
+ self assert: (((1 << 1024 + 1) / (1 << 1024 + 3)) raisedTo: 1/3) = 1.0.
+ self assert: (((1 << 1024 + 1) / (1 << 1024 + 3)) negated raisedTo: 1/3) = -1.0!
Item was added:
+ ----- Method: FractionTest>>testInexactSqrt (in category 'tests - mathematical functions') -----
+ testInexactSqrt
+ "
+ FractionTest new testInexactSqrt
+ "
+ self assert: ((1 << 1024 + 1) / (1 << 1024 + 3)) sqrt = 1.0!
Item was added:
+ ----- Method: FractionTest>>testRaisedToErrorConditions (in category 'tests - mathematical functions') -----
+ testRaisedToErrorConditions
+ "
+ FractionTest new testRaisedToErrorConditions
+ "
+ self should: [ (-1/16) raisedTo: 1/4 ] raise: ArithmeticError.
+ self should: [ ((1 << 1024 + 1) / (1 << 1024 + 3)) negated raisedTo: 1/4 ] raise: ArithmeticError!
Item was added:
+ ----- Method: FractionTest>>testSqrtErrorConditions (in category 'tests - mathematical functions') -----
+ testSqrtErrorConditions
+ "
+ FractionTest new testSqrtErrorConditions
+ "
+ self should: [ (-1/4) sqrt ] raise: DomainError.
+ self should: [ ((1 << 1024 + 1) / (1 << 1024 + 3)) negated sqrt ] raise: DomainError!
Item was added:
+ ----- Method: IntegerTest>>assert:classAndValueEquals: (in category 'private') -----
+ assert: a classAndValueEquals: b
+ self assert: a class = b class.
+ self assert: a = b!
Item was added:
+ ----- Method: IntegerTest>>testExactRaisedTo (in category 'tests - mathematical functions') -----
+ testExactRaisedTo
+ "
+ IntegerTest new testExactRaisedTo
+ "
+ self assert: (4 raisedTo: 1/2) classAndValueEquals: 2.
+ self assert: (9 raisedTo: 1/2) classAndValueEquals: 3.
+ self assert: (9 raisedTo: -1/2) classAndValueEquals: 1/3.
+ self assert: (-1 raisedTo: 1/3) classAndValueEquals: -1.
+ #( 1 5 29 135 1234 567890 123123123 456456456456 98765432109876543210987654321 987123987123987123987123987123987123987123987123) do: [ :i |
+ self assert: (i squared raisedTo: 1/2) classAndValueEquals: i.
+ self assert: (i negated squared raisedTo: 1/2) classAndValueEquals: i ].
+
+ self assert: (8 raisedTo: 1/3) classAndValueEquals: 2.
+ self assert: (27 raisedTo: 1/3) classAndValueEquals: 3.
+ #( 1 5 29 135 1234 567890 123123123 456456456456 98765432109876543210987654321 987123987123987123987123987123987123987123987123) do: [ :i |
+ self assert: ((i raisedTo: 3) raisedTo: 1/3) classAndValueEquals: i.
+ self assert: ((i negated raisedTo: 3) raisedTo: 1/3) classAndValueEquals: i negated ].
+
+ self assert: (4 raisedTo: 3/2) classAndValueEquals: 8.
+ self assert: (8 raisedTo: 2/3) classAndValueEquals: 4.
+ self assert: (8 raisedTo: -2/3) classAndValueEquals: 1/4.
+ #( 1 5 29 135 1234 567890 123123123 456456456456 98765432109876543210987654321 987123987123987123987123987123987123987123987123) do: [ :i |
+ self assert: ((i raisedTo: 3) raisedTo: 2/3) classAndValueEquals: i*i.
+ self assert: ((i raisedTo: 2) raisedTo: 3/2) classAndValueEquals: i*i*i.
+ self assert: ((i negated raisedTo: 3) raisedTo: 2/3) classAndValueEquals: i*i.
+ self assert: ((i negated raisedTo: 2) raisedTo: 3/2) classAndValueEquals: i*i*i ].
+
+ self assert: (32 raisedTo: 3/5) classAndValueEquals: 8.
+ self assert: (8 raisedTo: 5/3) classAndValueEquals: 32.
+ #( 1 5 29 135 1234 567890 123123123 456456456456 98765432109876543210987654321 987123987123987123987123987123987123987123987123) do: [ :i |
+ self assert: ((i raisedTo: 5) raisedTo: 3/5) classAndValueEquals: i*i*i.
+ self assert: ((i raisedTo: 3) raisedTo: 5/3) classAndValueEquals: i*i*i*i*i.
+ self assert: ((i negated raisedTo: 5) raisedTo: 3/5) classAndValueEquals: (i*i*i) negated.
+ self assert: ((i negated raisedTo: 3) raisedTo: 5/3) classAndValueEquals: (i*i*i*i*i) negated.
+
+ self assert: ((i raisedTo: -5) raisedTo: 3/5) classAndValueEquals: 1/(i*i*i).
+ self assert: ((i raisedTo: -3) raisedTo: 5/3) classAndValueEquals: 1/(i*i*i*i*i).
+ self assert: ((i negated raisedTo: -5) raisedTo: 3/5) classAndValueEquals: -1/(i*i*i).
+ self assert: ((i negated raisedTo: -3) raisedTo: 5/3) classAndValueEquals: -1/(i*i*i*i*i).
+
+ self assert: ((i raisedTo: 5) raisedTo: -3/5) classAndValueEquals: 1/(i*i*i).
+ self assert: ((i raisedTo: 3) raisedTo: -5/3) classAndValueEquals: 1/(i*i*i*i*i).
+ self assert: ((i negated raisedTo: 5) raisedTo: -3/5) classAndValueEquals: -1/(i*i*i).
+ self assert: ((i negated raisedTo: 3) raisedTo: -5/3) classAndValueEquals: -1/(i*i*i*i*i).
+
+ "No exact result => Float result"
+ self assert: ((i raisedTo: 3) +1 raisedTo: 5/3) isFloat.
+ self assert: ((i negated raisedTo: 3) -1 raisedTo: 5/3) isFloat ].!
Item was added:
+ ----- Method: IntegerTest>>testExactSqrt (in category 'tests - mathematical functions') -----
+ testExactSqrt
+ "
+ IntegerTest new testExactSqrt
+ "
+ self assert: 4 sqrt classAndValueEquals: 2.
+ self assert: 9 sqrt classAndValueEquals: 3.
+ self assert: Float maxExactInteger squared sqrt classAndValueEquals: Float maxExactInteger.
+ self assert: (Float maxExactInteger+1) squared sqrt classAndValueEquals: Float maxExactInteger+1.
+ #( 1 5 29 135 1234 567890 123123123 456456456456 98765432109876543210987654321 987123987123987123987123987123987123987123987123) do: [ :i |
+ self assert: i squared sqrt classAndValueEquals: i ]!
Item was added:
+ ----- Method: IntegerTest>>testNthRootErrorConditions (in category 'tests - mathematical functions') -----
+ testNthRootErrorConditions
+ "
+ IntegerTest new testExactRaisedToErrorConditions
+ "
+
+ self should: [ -2 nthRoot: 1/4 ] raise: ArithmeticError.
+ self should: [ -2 nthRoot: 1.24 ] raise: ArithmeticError.!
Item was added:
+ ----- Method: IntegerTest>>testRaisedToErrorConditions (in category 'tests - mathematical functions') -----
+ testRaisedToErrorConditions
+ "
+ IntegerTest new testRaisedToErrorConditions
+ "
+
+ self should: [ -2 raisedTo: 1/4 ] raise: ArithmeticError.
+ self should: [ -2 raisedTo: 1.24 ] raise: ArithmeticError.!
Item was added:
+ ----- Method: IntegerTest>>testRaisedToModulo (in category 'testing - arithmetic') -----
+ testRaisedToModulo
+ #(301 2047) do: [:m |
+ 1 to: m - 1 by: (m // 30) do: [:x |
+ 11 to: m - 1 by: (m // 40) do: [:y |
+ self assert: (x raisedTo: y) \\ m = (x raisedTo: y modulo: m)]]].
+ self assert: (8951195 raisedTo: 7742931 modulo: 15485863) = 15485862.!
Item was added:
+ ----- Method: IntegerTest>>testSqrtErrorConditions (in category 'tests - mathematical functions') -----
+ testSqrtErrorConditions
+ "
+ IntegerTest new testSqrtErrorConditions
+ "
+
+ self should: [ -1 sqrt ] raise: ArithmeticError!
More information about the Squeak-dev
mailing list
|