David T. Lewis uploaded a new version of KernelTests to project The Trunk:
http://source.squeak.org/trunk/KernelTests-dtl.281.mcz ==================== Summary ==================== Name: KernelTests-dtl.281 Author: dtl Time: 29 October 2014, 8:00:05.411 pm UUID: 4e5a309c-94d6-4dad-bc92-0dfa1d0ac7a5 Ancestors: KernelTests-nice.280 Fix testCull methods to correspond to current behavior of block closures. Existing test failures were masked by test methods that required recompilation. Reference squeak-dev: Date: Sun, 26 Oct 2014 02:35:23 +0200 (CEST) From: Levente Uzonyi <[hidden email]> To: The general-purpose Squeak developers list <[hidden email]> Subject: Re: [squeak-dev] Why isn't BlockClosureTest>>testCull failing? I think that behavior was changed not too long ago (1-2 years maybe). If you decompile the method you'll see that it's actually self assert: 1 equals: ([:x | x] cull: 1). It's because Squeak used to return the value of the last argument if the block was empty, but had arguments. The code should be self assert: nil equals: ([ :x | ] cull: 1). Levente On Sat, 25 Oct 2014, David T. Lewis wrote: >If we have this: > [ :x | ] value: 1 ==> nil > >And this: > ([ :x | ] cull: 1) ==> nil > >But in BlockClosureTest>>testCull, we have this: > > self assert: 1 equals: ([ :x | ] cull: 1). > >The test passes. How is this possible? =============== Diff against KernelTests-nice.280 =============== Item was changed: ----- Method: BlockClosureTest>>testCull (in category 'tests - evaluating') ----- testCull self assert: nil equals: ([ ] cull: 1). + self assert: nil equals: ([ :x | ] cull: 1). + self assert: 1 equals: ([ :x | x ] cull: 1). - self assert: 1 equals: ([ :x | ] cull: 1). self should: [ [ :x :y | ] cull: 1 ] raise: Error. self should: [ [ :x :y :z | ] cull: 1 ] raise: Error. self should: [ [ :x :y :z :a | ] cull: 1 ] raise: Error. self should: [ [ :x :y :z :a :b | ] cull: 1 ] raise: Error. self assert: ([ 0 ] cull: 1) = 0. self assert: ([ :x | x ] cull: 1) = 1 ! Item was changed: ----- Method: BlockClosureTest>>testCullCull (in category 'tests - evaluating') ----- testCullCull self assert: nil equals: ([ ] cull: 1 cull: 2). + + self assert: nil equals: ([ :x | ] cull: 1 cull: 2). + self assert: 1 equals: ([ :x | x ] cull: 1 cull: 2). + + self assert: nil equals: ([ :x :y | ] cull: 1 cull: 2). + self assert: 1 equals: ([ :x :y | x ] cull: 1 cull: 2). + self assert: 2 equals: ([ :x :y | y ] cull: 1 cull: 2). + - self assert: 1 equals: ([ :x | ] cull: 1 cull: 2). - self assert: 2 equals: ([ :x :y | ] cull: 1 cull: 2). self should: [ [ :x :y :z | ] cull: 1 cull: 2 ] raise: Error. self should: [ [ :x :y :z :a | ] cull: 1 cull: 2 ] raise: Error. self should: [ [ :x :y :z :a :b | ] cull: 1 cull: 2 ] raise: Error. self assert: ([ 0 ] cull: 1 cull: 2) = 0. self assert: ([ :x | x ] cull: 1 cull: 2) = 1. self assert: ([ :x :y | y ] cull: 1 cull: 2) = 2. ! Item was changed: ----- Method: BlockClosureTest>>testCullCullCull (in category 'tests - evaluating') ----- testCullCullCull self assert: nil equals: ([ ] cull: 1 cull: 2 cull: 3). + + self assert: nil equals: ([ :x | ] cull: 1 cull: 2 cull: 3). + self assert: 1 equals: ([ :x | x ] cull: 1 cull: 2 cull: 3). + + self assert: nil equals: ([ :x :y | ] cull: 1 cull: 2 cull: 3). + self assert: 1 equals: ([ :x :y | x ] cull: 1 cull: 2 cull: 3). + self assert: 2 equals: ([ :x :y | y ] cull: 1 cull: 2 cull: 3). + + self assert: nil equals: ([ :x :y :z | ] cull: 1 cull: 2 cull: 3). + self assert: 1 equals: ([ :x :y :z | x ] cull: 1 cull: 2 cull: 3). + self assert: 2 equals: ([ :x :y :z | y ] cull: 1 cull: 2 cull: 3). + self assert: 3 equals: ([ :x :y :z | z ] cull: 1 cull: 2 cull: 3). + - self assert: 1 equals: ([ :x | ] cull: 1 cull: 2 cull: 3). - self assert: 2 equals: ([ :x :y | ] cull: 1 cull: 2 cull: 3). - self assert: 3 equals: ([ :x :y :z | ] cull: 1 cull: 2 cull: 3). self should: [ [ :x :y :z :a | ] cull: 1 cull: 2 cull: 3 ] raise: Error. self should: [ [ :x :y :z :a :b | ] cull: 1 cull: 2 cull: 3 ] raise: Error. self assert: ([ 0 ] cull: 1 cull: 2 cull: 3) = 0. self assert: ([ :x | x ] cull: 1 cull: 2 cull: 3) = 1. self assert: ([ :x :y | y ] cull: 1 cull: 2 cull: 3) = 2. self assert: ([ :x :y :z | z ] cull: 1 cull: 2 cull: 3) = 3. ! Item was changed: ----- Method: BlockClosureTest>>testCullCullCullCull (in category 'tests - evaluating') ----- testCullCullCullCull self assert: nil equals: ([ ] cull: 1 cull: 2 cull: 3 cull: 4). + + self assert: nil equals: ([ :x | ] cull: 1 cull: 2 cull: 3 cull: 4). + self assert: 1 equals: ([ :x | x ] cull: 1 cull: 2 cull: 3 cull: 4). + + self assert: nil equals: ([ :x :y | ] cull: 1 cull: 2 cull: 3 cull: 4). + self assert: 1 equals: ([ :x :y | x ] cull: 1 cull: 2 cull: 3 cull: 4). + self assert: 2 equals: ([ :x :y | y ] cull: 1 cull: 2 cull: 3 cull: 4). + + self assert: nil equals: ([ :x :y :z | ] cull: 1 cull: 2 cull: 3 cull: 4). + self assert: 1 equals: ([ :x :y :z | x ] cull: 1 cull: 2 cull: 3 cull: 4). + self assert: 2 equals: ([ :x :y :z | y ] cull: 1 cull: 2 cull: 3 cull: 4). + self assert: 3 equals: ([ :x :y :z | z ] cull: 1 cull: 2 cull: 3 cull: 4). + + self assert: nil equals: ([ :x :y :z :a | ] cull: 1 cull: 2 cull: 3 cull: 4). + self assert: 1 equals: ([ :x :y :z :a | x ] cull: 1 cull: 2 cull: 3 cull: 4). + self assert: 2 equals: ([ :x :y :z :a | y ] cull: 1 cull: 2 cull: 3 cull: 4). + self assert: 3 equals: ([ :x :y :z :a | z ] cull: 1 cull: 2 cull: 3 cull: 4). + self assert: 4 equals: ([ :x :y :z :a | a ] cull: 1 cull: 2 cull: 3 cull: 4). + - self assert: 1 equals: ([ :x | ] cull: 1 cull: 2 cull: 3 cull: 4). - self assert: 2 equals: ([ :x :y | ] cull: 1 cull: 2 cull: 3 cull: 4). - self assert: 3 equals: ([ :x :y :z | ] cull: 1 cull: 2 cull: 3 cull: 4). - self assert: 4 equals: ([ :x :y :z :a | ] cull: 1 cull: 2 cull: 3 cull: 4). self should: [ [ :x :y :z :a :b | ] cull: 1 cull: 2 cull: 3 cull: 4 ] raise: Error. self assert: ([ 0 ] cull: 1 cull: 2 cull: 3 cull: 4) = 0. self assert: ([ :x | x ] cull: 1 cull: 2 cull: 3 cull: 4) = 1. self assert: ([ :x :y | y ] cull: 1 cull: 2 cull: 3 cull: 4) = 2. self assert: ([ :x :y :z | z ] cull: 1 cull: 2 cull: 3 cull: 4) = 3. self assert: ([ :x :y :z :a | a ] cull: 1 cull: 2 cull: 3 cull: 4) = 4.! |
Free forum by Nabble | Edit this page |