[squeak-dev] The Trunk: KernelTests-fbs.256.mcz
Nicolas Cellier
nicolas.cellier.aka.nice at gmail.com
Tue Nov 5 20:18:35 UTC 2013
Waouh, I don't regret asking
2013/11/5 <commits at source.squeak.org>
> Frank Shearar uploaded a new version of KernelTests to project The Trunk:
> http://source.squeak.org/trunk/KernelTests-fbs.256.mcz
>
> ==================== Summary ====================
>
> Name: KernelTests-fbs.256
> Author: fbs
> Time: 5 November 2013, 7:09:16.145 pm
> UUID: 0bdb93b9-b1b6-574f-98bb-0aefc4fac4b1
> Ancestors: KernelTests-cmm.255
>
> More #shouldnt:raise: Error removals. ClassBuilderTest's
> makeFooSubclassOf: methods now return a thing rather than setting an
> instvar, because really. It's just easier to read, and side effects where
> unnecessary are bad.
>
> =============== Diff against KernelTests-cmm.255 ===============
>
> Item was changed:
> ----- Method: BehaviorTest>>testBehaviorSubclasses (in category 'tests')
> -----
> testBehaviorSubclasses
> "self run: #testBehaviorSubclasses"
>
> | b b2 |
> b := Behavior new.
> b superclass: OrderedCollection.
> b methodDictionary: MethodDictionary new.
> +
> - self shouldnt: [b subclasses ] raise: Error.
> - self shouldnt: [b withAllSubclasses] raise: Error.
> - self shouldnt: [b allSubclasses] raise: Error.
> b2 := Behavior new.
> b2 superclass: b.
> b2 methodDictionary: MethodDictionary new.
> +
> self assert: (b subclasses includes: b2).
> + self deny: (b subclasses includes: b).
> +
> + self assert: (b withAllSubclasses includes: b).
> +
> + self assert: (b allSubclasses includes: b2).!
> - self assert: (b withAllSubclasses includes: b).!
>
> Item was changed:
> ----- Method: BlockClosureTest>>testCull (in category 'tests -
> evaluating') -----
> testCull
> + self assert: nil equals: ([ ] cull: 1).
> + self assert: 1 equals: ([ :x | ] cull: 1).
> -
> - self shouldnt: [ [ ] cull: 1 ] raise: Error.
> - self shouldnt: [ [ :x | ] cull: 1 ] raise: Error.
> 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: 1 equals: ([ :x | ] cull: 1 cull: 2).
> + self assert: 2 equals: ([ :x :y | ] cull: 1 cull: 2).
> -
> - self shouldnt: [ [ ] cull: 1 cull: 2 ] raise: Error.
> - self shouldnt: [ [ :x | ] cull: 1 cull: 2 ] raise: Error.
> - self shouldnt: [ [ :x :y | ] cull: 1 cull: 2 ] raise: Error.
> 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: 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 shouldnt: [ [ ] cull: 1 cull: 2 cull: 3 ] raise: Error.
> - self shouldnt: [ [ :x | ] cull: 1 cull: 2 cull: 3 ] raise: Error.
> - self shouldnt: [ [ :x :y | ] cull: 1 cull: 2 cull: 3 ] raise:
> Error.
> - self shouldnt: [ [ :x :y :z | ] cull: 1 cull: 2 cull: 3 ] raise:
> Error.
> 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: 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 shouldnt: [ [ ] cull: 1 cull: 2 cull: 3 cull: 4 ] raise:
> Error.
> - self shouldnt: [ [ :x | ] cull: 1 cull: 2 cull: 3 cull: 4 ] raise:
> Error.
> - self shouldnt: [ [ :x :y | ] cull: 1 cull: 2 cull: 3 cull: 4 ]
> raise: Error.
> - self shouldnt: [ [ :x :y :z | ] cull: 1 cull: 2 cull: 3 cull: 4 ]
> raise: Error.
> - self shouldnt: [ [ :x :y :z :a | ] cull: 1 cull: 2 cull: 3 cull: 4
> ] raise: Error.
> 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.!
>
> Item was changed:
> ----- Method: ClassBuilderTest>>makeByteVariableSubclassOf: (in category
> 'utilities') -----
> makeByteVariableSubclassOf: aClass
> + ^ aClass variableByteSubclass: self subClassName
> - subClass := aClass variableByteSubclass: self subClassName
> instanceVariableNames: ''
> classVariableNames: ''
> poolDictionaries: ''
> category: self categoryNameForTemporaryClasses!
>
> Item was changed:
> ----- Method: ClassBuilderTest>>makeIVarsSubclassOf: (in category
> 'utilities') -----
> makeIVarsSubclassOf: aClass
> + ^ aClass subclass: self subClassName
> - subClass := aClass subclass: self subClassName
> instanceVariableNames: 'var3 var4'
> classVariableNames: ''
> poolDictionaries: ''
> category: self categoryNameForTemporaryClasses!
>
> Item was changed:
> ----- Method: ClassBuilderTest>>makeNormalSubclassOf: (in category
> 'utilities') -----
> makeNormalSubclassOf: aClass
> + ^ aClass subclass: self subClassName
> - subClass := aClass subclass: self subClassName
> instanceVariableNames: ''
> classVariableNames: ''
> poolDictionaries: ''
> category: self categoryNameForTemporaryClasses!
>
> Item was changed:
> ----- Method: ClassBuilderTest>>makeVariableSubclassOf: (in category
> 'utilities') -----
> makeVariableSubclassOf: aClass
> + ^ aClass variableSubclass: self subClassName
> - subClass := aClass variableSubclass: self subClassName
> instanceVariableNames: ''
> classVariableNames: ''
> poolDictionaries: ''
> category: self categoryNameForTemporaryClasses!
>
> Item was changed:
> ----- Method: ClassBuilderTest>>makeWeakSubclassOf: (in category
> 'utilities') -----
> makeWeakSubclassOf: aClass
> + ^ aClass weakSubclass: self subClassName
> - subClass := aClass weakSubclass: self subClassName
> instanceVariableNames: ''
> classVariableNames: ''
> poolDictionaries: ''
> category: self categoryNameForTemporaryClasses!
>
> Item was changed:
> ----- Method: ClassBuilderTest>>makeWordVariableSubclassOf: (in category
> 'utilities') -----
> makeWordVariableSubclassOf: aClass
> + ^ aClass variableWordSubclass: self subClassName
> - subClass := aClass variableWordSubclass: self subClassName
> instanceVariableNames: ''
> classVariableNames: ''
> poolDictionaries: ''
> category: self categoryNameForTemporaryClasses!
>
> Item was changed:
> ----- Method: ClassBuilderTest>>testByteVariableSubclass (in category
> 'testing - format') -----
> testByteVariableSubclass
> "Ensure that the invariants for superclass/subclass format are
> preserved"
> baseClass := Object variableByteSubclass: self baseClassName
> instanceVariableNames: ''
> classVariableNames: ''
> poolDictionaries: ''
> category: self categoryNameForTemporaryClasses.
> [
>
> + subClass := self makeNormalSubclassOf: baseClass.
> - self shouldnt:[self makeNormalSubclassOf: baseClass] raise: Error.
> self deny: (subClass isPointers).
> self assert: (subClass isVariable).
> self deny: (subClass isWeak).
> self assert: (subClass isBytes).
> subClass removeFromSystem.
>
> "pointer classes"
> self should:[self makeIVarsSubclassOf: baseClass] raise: Error.
> self should:[self makeVariableSubclassOf: baseClass] raise: Error.
> self should:[self makeWeakSubclassOf: baseClass] raise: Error.
>
> "bit classes"
> + subClass := self makeByteVariableSubclassOf: baseClass.
> - self shouldnt:[self makeByteVariableSubclassOf: baseClass] raise:
> Error.
> self deny: (subClass isPointers).
> self assert: (subClass isVariable).
> self deny: (subClass isWeak).
> self assert: (subClass isBytes).
> subClass removeFromSystem.
>
> self should:[self makeWordVariableSubclassOf: baseClass] raise:
> Error.
>
> ] ensure:[self cleanup].!
>
> Item was changed:
> ----- Method: ClassBuilderTest>>testChangeToVariableSubclass (in
> category 'testing - format') -----
> testChangeToVariableSubclass
> "Ensure that the invariants for superclass/subclass format are
> preserved"
> baseClass := Object subclass: self baseClassName
> instanceVariableNames: ''
> classVariableNames: ''
> poolDictionaries: ''
> category: self categoryNameForTemporaryClasses.
> [
> + baseClass := Object variableSubclass: self baseClassName
> - self shouldnt:[baseClass := Object variableSubclass: self
> baseClassName
> instanceVariableNames: ''
> classVariableNames: ''
> poolDictionaries: ''
> + category: self categoryNameForTemporaryClasses.
> - category: self categoryNameForTemporaryClasses]
> raise: Error.
>
> ] ensure:[self cleanup].!
>
> Item was changed:
> ----- Method: ClassBuilderTest>>testDuplicateClassVariableError (in
> category 'testing - reshape') -----
> testDuplicateClassVariableError
> baseClass := Object subclass: self baseClassName
> instanceVariableNames: ''
> classVariableNames: 'TestVar'
> poolDictionaries: ''
> category: self categoryNameForTemporaryClasses.
>
> self should:[
> subClass := baseClass subclass: self subClassName
> instanceVariableNames: ''
> classVariableNames: 'TestVar'
> poolDictionaries: ''
> category: self categoryNameForTemporaryClasses
> ] raise: DuplicateVariableError.
>
> [subClass := baseClass subclass: self subClassName
> instanceVariableNames: ''
> classVariableNames: 'TestVar'
> poolDictionaries: ''
> category: self categoryNameForTemporaryClasses
> ] on: DuplicateVariableError do:[:ex|
> self assert: ex superclass == baseClass.
> self assert: ex variable = 'TestVar'.
> ex resume.
> ].
>
> + baseClass := Object subclass: self baseClassName
> + instanceVariableNames: ''
> + classVariableNames: ''
> + poolDictionaries: ''
> + category: self categoryNameForTemporaryClasses.
> - self shouldnt:[
> - baseClass := Object subclass: self baseClassName
> - instanceVariableNames: ''
> - classVariableNames: ''
> - poolDictionaries: ''
> - category: self categoryNameForTemporaryClasses.
> - ] raise: Error.
>
> self should:[
> baseClass := Object subclass: self baseClassName
> instanceVariableNames: ''
> classVariableNames: 'TestVar'
> poolDictionaries: ''
> category: self categoryNameForTemporaryClasses.
> ] raise: DuplicateVariableError.
>
> [baseClass := Object subclass: self baseClassName
> instanceVariableNames: ''
> classVariableNames: 'TestVar'
> poolDictionaries: ''
> category: self categoryNameForTemporaryClasses.
> ] on: DuplicateVariableError do:[:ex|
> self assert: ex superclass == baseClass.
> self assert: ex variable = 'TestVar'.
> ex resume.
> ].!
>
> Item was changed:
> ----- Method: ClassBuilderTest>>testDuplicateInstanceVariableError (in
> category 'testing - reshape') -----
> testDuplicateInstanceVariableError
> baseClass := Object subclass: self baseClassName
> instanceVariableNames: 'var'
> classVariableNames: ''
> poolDictionaries: ''
> category: self categoryNameForTemporaryClasses.
>
> self should:[
> subClass := baseClass subclass: self subClassName
> instanceVariableNames: 'var'
> classVariableNames: ''
> poolDictionaries: ''
> category: self categoryNameForTemporaryClasses
> ] raise: DuplicateVariableError.
>
> [subClass := baseClass subclass: self subClassName
> instanceVariableNames: 'var'
> classVariableNames: ''
> poolDictionaries: ''
> category: self categoryNameForTemporaryClasses
> ] on: DuplicateVariableError do:[:ex|
> self assert: ex superclass == baseClass.
> self assert: ex variable = 'var'.
> ex resume.
> ].
>
> + baseClass := Object subclass: self baseClassName
> + instanceVariableNames: ''
> + classVariableNames: ''
> + poolDictionaries: ''
> + category: self categoryNameForTemporaryClasses.
> - self shouldnt:[
> - baseClass := Object subclass: self baseClassName
> - instanceVariableNames: ''
> - classVariableNames: ''
> - poolDictionaries: ''
> - category: self categoryNameForTemporaryClasses.
> - ] raise: Error.
>
> self should:[
> baseClass := Object subclass: self baseClassName
> instanceVariableNames: 'var'
> classVariableNames: ''
> poolDictionaries: ''
> category: self categoryNameForTemporaryClasses.
> ] raise: DuplicateVariableError.
>
> [baseClass := Object subclass: self baseClassName
> instanceVariableNames: 'var'
> classVariableNames: ''
> poolDictionaries: ''
> category: self categoryNameForTemporaryClasses.
> ] on: DuplicateVariableError do:[:ex|
> self assert: ex superclass == baseClass.
> self assert: ex variable = 'var'.
> ex resume.
> ].!
>
> Item was changed:
> ----- Method: ClassBuilderTest>>testSubclass (in category 'testing -
> format') -----
> testSubclass
> "Ensure that the invariants for superclass/subclass format are
> preserved"
> baseClass := Object subclass: self baseClassName
> instanceVariableNames: ''
> classVariableNames: ''
> poolDictionaries: ''
> category: self categoryNameForTemporaryClasses.
> [
> + subClass := self makeNormalSubclassOf: baseClass.
> - self shouldnt:[self makeNormalSubclassOf: baseClass] raise: Error.
> self assert: (subClass isPointers).
> self deny: (subClass isVariable).
> self deny: (subClass isWeak).
> self deny: (subClass isBytes).
> subClass removeFromSystem.
>
> "pointer classes"
> + subClass := self makeIVarsSubclassOf: baseClass.
> - self shouldnt:[self makeIVarsSubclassOf: baseClass] raise: Error.
> self assert: (subClass isPointers).
> self deny: (subClass isVariable).
> self deny: (subClass isWeak).
> self deny: (subClass isBytes).
> subClass removeFromSystem.
>
> + subClass := self makeVariableSubclassOf: baseClass.
> - self shouldnt:[self makeVariableSubclassOf: baseClass] raise:
> Error.
> self assert: (subClass isPointers).
> self assert:(subClass isVariable).
> self deny: (subClass isWeak).
> self deny: (subClass isBytes).
> subClass removeFromSystem.
>
> + subClass := self makeWeakSubclassOf: baseClass.
> - self shouldnt:[self makeWeakSubclassOf: baseClass] raise: Error.
> self assert: (subClass isPointers).
> self assert:(subClass isVariable).
> self assert:(subClass isWeak).
> self deny: (subClass isBytes).
> subClass removeFromSystem.
>
> "bit classes"
> + subClass := self makeByteVariableSubclassOf: baseClass.
> - self shouldnt:[self makeByteVariableSubclassOf: baseClass] raise:
> Error.
> self deny: (subClass isPointers).
> self assert: (subClass isVariable).
> self deny: (subClass isWeak).
> self assert: (subClass isBytes).
> subClass removeFromSystem.
>
> + subClass := self makeWordVariableSubclassOf: baseClass.
> - self shouldnt:[self makeWordVariableSubclassOf: baseClass] raise:
> Error.
> self deny: (subClass isPointers).
> self assert: (subClass isVariable).
> self deny: (subClass isWeak).
> self deny: (subClass isBytes).
> subClass removeFromSystem.
> ] ensure:[self cleanup].!
>
> Item was changed:
> ----- Method: ClassBuilderTest>>testSubclassWithInstanceVariables (in
> category 'testing - format') -----
> testSubclassWithInstanceVariables
> "Ensure that the invariants for superclass/subclass format are
> preserved"
> baseClass := Object subclass: self baseClassName
> instanceVariableNames: 'var1 var2'
> classVariableNames: ''
> poolDictionaries: ''
> category: self categoryNameForTemporaryClasses.
> [
> + subClass := self makeNormalSubclassOf: baseClass.
> - self shouldnt:[self makeNormalSubclassOf: baseClass] raise: Error.
> self assert: (subClass isPointers).
> self deny: (subClass isVariable).
> self deny: (subClass isWeak).
> self deny: (subClass isBytes).
> subClass removeFromSystem.
>
> "pointer classes"
> + subClass := self makeIVarsSubclassOf: baseClass.
> - self shouldnt:[self makeIVarsSubclassOf: baseClass] raise: Error.
> self assert: (subClass isPointers).
> self deny: (subClass isVariable).
> self deny: (subClass isWeak).
> self deny: (subClass isBytes).
> subClass removeFromSystem.
>
> + subClass := self makeVariableSubclassOf: baseClass.
> - self shouldnt:[self makeVariableSubclassOf: baseClass] raise:
> Error.
> self assert: (subClass isPointers).
> self assert: (subClass isVariable).
> self deny: (subClass isWeak).
> self deny: (subClass isBytes).
> subClass removeFromSystem.
>
> + subClass := self makeWeakSubclassOf: baseClass.
> - self shouldnt:[self makeWeakSubclassOf: baseClass] raise: Error.
> self assert: (subClass isPointers).
> self assert: (subClass isVariable).
> self assert: (subClass isWeak).
> self deny: (subClass isBytes).
> subClass removeFromSystem.
>
> "bit classes"
> self should:[self makeByteVariableSubclassOf: baseClass] raise:
> Error.
> self should:[self makeWordVariableSubclassOf: baseClass] raise:
> Error.
> ] ensure:[self cleanup].!
>
> Item was changed:
> ----- Method: ClassBuilderTest>>testVariableSubclass (in category
> 'testing - format') -----
> testVariableSubclass
> "Ensure that the invariants for superclass/subclass format are
> preserved"
> baseClass := Object variableSubclass: self baseClassName
> instanceVariableNames: ''
> classVariableNames: ''
> poolDictionaries: ''
> category: self categoryNameForTemporaryClasses.
> [
> "pointer classes"
> + subClass := self makeNormalSubclassOf: baseClass.
> - self shouldnt:[self makeNormalSubclassOf: baseClass] raise: Error.
> self assert: (subClass isPointers).
> self assert: (subClass isVariable).
> self deny: (subClass isWeak).
> self deny: (subClass isBytes).
> subClass removeFromSystem.
>
> + subClass := self makeIVarsSubclassOf: baseClass.
> - self shouldnt:[self makeIVarsSubclassOf: baseClass] raise: Error.
> self assert: (subClass isPointers).
> self assert: (subClass isVariable).
> self deny: (subClass isWeak).
> self deny: (subClass isBytes).
> subClass removeFromSystem.
>
> + subClass := self makeVariableSubclassOf: baseClass.
> - self shouldnt:[self makeVariableSubclassOf: baseClass] raise:
> Error.
> self assert: (subClass isPointers).
> self assert: (subClass isVariable).
> self deny: (subClass isWeak).
> self deny: (subClass isBytes).
> subClass removeFromSystem.
>
> + subClass := self makeWeakSubclassOf: baseClass.
> - self shouldnt:[self makeWeakSubclassOf: baseClass] raise: Error.
> self assert: (subClass isPointers).
> self assert: (subClass isVariable).
> self assert: (subClass isWeak).
> self deny: (subClass isBytes).
> subClass removeFromSystem.
>
> "bit classes"
> self should:[self makeByteVariableSubclassOf: baseClass] raise:
> Error.
> self should:[self makeWordVariableSubclassOf: baseClass] raise:
> Error.
> ] ensure:[self cleanup].!
>
> Item was changed:
> ----- Method: ClassBuilderTest>>testWeakSubclass (in category 'testing -
> format') -----
> testWeakSubclass
> "Ensure that the invariants for superclass/subclass format are
> preserved"
> baseClass := Object weakSubclass: self baseClassName
> instanceVariableNames: ''
> classVariableNames: ''
> poolDictionaries: ''
> category: self categoryNameForTemporaryClasses.
> [
> "pointer classes"
> + subClass := self makeNormalSubclassOf: baseClass.
> - self shouldnt:[self makeNormalSubclassOf: baseClass] raise: Error.
> self assert: (subClass isPointers).
> self assert: (subClass isVariable).
> self assert: (subClass isWeak).
> self deny: (subClass isBytes).
> subClass removeFromSystem.
>
> + subClass := self makeIVarsSubclassOf: baseClass.
> - self shouldnt:[self makeIVarsSubclassOf: baseClass] raise: Error.
> self assert: (subClass isPointers).
> self assert: (subClass isVariable).
> self assert: (subClass isWeak).
> self deny: (subClass isBytes).
> subClass removeFromSystem.
>
> + subClass := self makeVariableSubclassOf: baseClass.
> - self shouldnt:[self makeVariableSubclassOf: baseClass] raise:
> Error.
> self assert: (subClass isPointers).
> self assert: (subClass isVariable).
> self deny: (subClass isWeak).
> self deny: (subClass isBytes).
> subClass removeFromSystem.
>
> + subClass := self makeWeakSubclassOf: baseClass.
> - self shouldnt:[self makeWeakSubclassOf: baseClass] raise: Error.
> self assert: (subClass isPointers).
> self assert: (subClass isVariable).
> self assert: (subClass isWeak).
> self deny: (subClass isBytes).
> subClass removeFromSystem.
>
> "bit classes"
> self should:[self makeByteVariableSubclassOf: baseClass] raise:
> Error.
> self should:[self makeWordVariableSubclassOf: baseClass] raise:
> Error.
> ] ensure:[self cleanup].!
>
> Item was changed:
> ----- Method: ClassBuilderTest>>testWordVariableSubclass (in category
> 'testing - format') -----
> testWordVariableSubclass
> "Ensure that the invariants for superclass/subclass format are
> preserved"
> baseClass := Object variableWordSubclass: self baseClassName
> instanceVariableNames: ''
> classVariableNames: ''
> poolDictionaries: ''
> category: self categoryNameForTemporaryClasses.
> [
> + subClass := self makeNormalSubclassOf: baseClass.
> - self shouldnt:[self makeNormalSubclassOf: baseClass] raise: Error.
> self deny: (subClass isPointers).
> self assert: (subClass isVariable).
> self deny: (subClass isWeak).
> self deny: (subClass isBytes).
> subClass removeFromSystem.
>
> "pointer classes"
> self should:[self makeIVarsSubclassOf: baseClass] raise: Error.
> self should:[self makeVariableSubclassOf: baseClass] raise: Error.
> self should:[self makeWeakSubclassOf: baseClass] raise: Error.
>
> "bit classes"
> self should:[self makeByteVariableSubclassOf: baseClass] raise:
> Error.
> + subClass := self makeWordVariableSubclassOf: baseClass.
> - self shouldnt:[self makeWordVariableSubclassOf: baseClass] raise:
> Error.
> self deny: (subClass isPointers).
> self assert: (subClass isVariable).
> self deny: (subClass isWeak).
> self deny: (subClass isBytes).
> subClass removeFromSystem.
> -
> ] ensure:[self cleanup].!
>
> Item was changed:
> ----- Method: ClassTest>>testCompileAll (in category 'testing -
> compiling') -----
> testCompileAll
> + "We expect this to succeed."
> + ClassTest compileAll.!
> -
> - self shouldnt: [ClassTest compileAll] raise: Error.!
>
> Item was changed:
> ----- Method: DateAndTimeTest>>testErrorWhenDayIsAfterMonthEnd (in
> category 'Tests') -----
> testErrorWhenDayIsAfterMonthEnd
>
> self
> should:
> [DateAndTime
> year: 2004
> month: 2
> day: 30]
> + raise: Error.!
> - raise: Error.
> -
> - self
> - shouldnt:
> - [DateAndTime
> - year: 2004
> - month: 2
> - day: 29]
> - raise: Error.
> - !
>
> Item was changed:
> ----- Method: DateAndTimeTest>>testErrorWhenDayIsBeforeMonthStart (in
> category 'Tests') -----
> testErrorWhenDayIsBeforeMonthStart
>
> self
> should:
> [DateAndTime
> year: 2004
> month: 2
> day: -1]
> raise: Error.
>
> self
> should:
> [DateAndTime
> year: 2004
> month: 2
> day: 0]
> + raise: Error.!
> - raise: Error.
> -
> - self
> - shouldnt:
> - [DateAndTime
> - year: 2004
> - month: 2
> - day: 1]
> - raise: Error.
> - !
>
> Item was changed:
> ----- Method: DelayTest>>testBounds (in category 'testing-limits') -----
> testBounds
> "self run: #testBounds"
>
> self should: [Delay forMilliseconds: -1] raise: Error.
> +
> + "We expect these to succeed."
> + Delay forMilliseconds: SmallInteger maxVal + 1.
> + (Delay forMilliseconds: Float pi) wait. "Wait 3ms"
> - self shouldnt: [Delay forMilliseconds: SmallInteger maxVal + 1]
> raise: Error.
> - self shouldnt: [(Delay forMilliseconds: Float pi) wait] raise:
> Error. "Wait 3ms"
> !
>
> Item was changed:
> ----- Method: DurationTest>>testAgo (in category 'testing') -----
> testAgo
> -
> - self shouldnt: [10 hours ago] raise: Error.
> - self shouldnt: [0 seconds ago] raise: Error.
> - self shouldnt: [-5 days ago] raise: Error.
> self assert: ((10 minutes ago) isMemberOf: DateAndTime).
> self assert: ((10 weeks ago) < DateAndTime now).
> + self assert: ((-50 seconds ago) > DateAndTime now).
> + self assert: ((10 hours ago) < DateAndTime now).
> + self assert: (0 seconds ago - DateAndTime now < 1 second).!
> - self assert: ((-50 seconds ago) > DateAndTime now).!
>
> Item was changed:
> ----- Method: DurationTest>>testFromNow (in category 'testing') -----
> testFromNow
>
> + self assert: ((10 seconds fromNow) > DateAndTime now).
> + self assert: ((0 days fromNow - DateAndTime now) < 1 second).
> + self assert: ((-1 weeks fromNow) < DateAndTime now).
> - self shouldnt: [10 seconds fromNow] raise: Error.
> - self shouldnt: [0 days fromNow] raise: Error.
> - self shouldnt: [-1 weeks fromNow] raise: Error.
> self assert: ((1000 milliSeconds fromNow) isMemberOf: DateAndTime).
> self assert: ((250 hours fromNow) > DateAndTime now).
> self assert: ((-50 minutes fromNow) < DateAndTime now).!
>
> Item was changed:
> ----- Method: FloatTest>>testDegreeCos (in category 'tests -
> mathematical functions') -----
> testDegreeCos
> - self shouldnt: [ 45.0 degreeCos] raise: Error.
> "Following tests use approximate equality, because cosine are
> generally evaluated using inexact Floating point arithmetic"
> self assert: (45.0 degreeCos squared - 0.5) abs <= Float epsilon.
> self assert: (60.0 degreeCos - 0.5) abs <= Float epsilon.
> self assert: (120.0 degreeCos + 0.5) abs <= Float epsilon.
> -360.0 to: 360.0 do: [:i |
> self assert: (i degreeCos closeTo: i degreesToRadians
> cos)].
>
> "Following tests use strict equality which is a requested property
> of degreeCos"
> -10.0 to: 10.0 do: [:k |
> self assert: (k*360 + 90) degreeCos = 0.
> self assert: (k*360 - 90) degreeCos = 0.
> self assert: (k*360 + 180) degreeCos + 1 = 0.
> self assert: (k*360) degreeCos - 1 = 0.].!
>
> Item was changed:
> ----- Method: FloatTest>>testDegreeSin (in category 'tests -
> mathematical functions') -----
> testDegreeSin
> - self shouldnt: [ 45.0 degreeSin] raise: Error.
> "Following tests use approximate equality, because sine are
> generally evaluated using inexact Floating point arithmetic"
> self assert: (45.0 degreeSin squared - 0.5) abs <= Float epsilon.
> self assert: (30.0 degreeSin - 0.5) abs <= Float epsilon.
> self assert: (-30.0 degreeSin + 0.5) abs <= Float epsilon.
> -360.0 to: 360.0 do: [:i |
> self assert: (i degreeSin closeTo: i degreesToRadians
> sin)].
>
> "Following tests use strict equality which is a requested property
> of degreeSin"
> -10.0 to: 10.0 do: [:k |
> self assert: (k*360 + 90) degreeSin - 1 = 0.
> self assert: (k*360 - 90) degreeSin + 1= 0.
> self assert: (k*360 + 180) degreeSin = 0.
> self assert: (k*360) degreeSin = 0.].!
>
> Item was changed:
> ----- Method: FractionTest>>testDegreeCos (in category 'tests -
> mathematical functions') -----
> testDegreeCos
> "self run: #testDegreeCos"
>
> - self shouldnt: [ (4/3) degreeCos] raise: Error.
> -361/3 to: 359/3 do: [:i |
> self assert: (i degreeCos closeTo: i degreesToRadians
> cos)].!
>
> Item was changed:
> ----- Method: FractionTest>>testDegreeSin (in category 'tests -
> mathematical functions') -----
> testDegreeSin
> "self run: #testDegreeSin"
> +
> -
> - self shouldnt: [ (4/3) degreeSin] raise: Error.
> -361/3 to: 359/3 do: [:i |
> self assert: (i degreeSin closeTo: i degreesToRadians
> sin)].!
>
> Item was changed:
> ----- Method: InstVarRefLocatorTest>>testInstructions (in category
> 'tests') -----
> testInstructions
> -
> -
> -
> Object methodDict do: [:method | | scanner printer end |
> scanner := InstructionStream on: method.
> printer := InstVarRefLocator new.
> end := scanner method endPC.
>
> [scanner pc <= end] whileTrue: [
> + printer interpretNextInstructionUsing: scanner.
> - self shouldnt: [printer
> interpretNextInstructionUsing: scanner] raise: Error.
> ].
> ].!
>
> Item was changed:
> ----- Method: InstructionClientTest>>testInstructions (in category
> 'tests') -----
> testInstructions
> "just interpret all of methods of Object"
>
> | client |
> client := InstructionClient new.
> Object methodDict do: [:method |
> + | scanner |
> + scanner := (InstructionStream on: method).
> + [scanner pc <= method endPC] whileTrue: [
> + scanner interpretNextInstructionFor: client]].
> - | scanner |
> - scanner := (InstructionStream on: method).
> - [scanner pc <= method endPC] whileTrue: [
> - self shouldnt: [scanner
> interpretNextInstructionFor: client] raise: Error.
> - ].
> - ].
> !
>
> Item was changed:
> ----- Method: InstructionPrinterTest>>testInstructions (in category
> 'tests') -----
> testInstructions
> "just print all of methods of Object and see if no error accours"
>
> | printer |
> printer := InstructionPrinter.
> Object methodDict do: [:method |
> + String streamContents: [:stream |
> + (printer on: method) printInstructionsOn: stream]].
> - self shouldnt: [
> - String streamContents:
> [:stream |
> - (printer on:
> method) printInstructionsOn: stream]] raise: Error.
> - ].
> !
>
> Item was changed:
> ----- Method: IntegerTest>>testDegreeCos (in category 'tests -
> mathematical functions') -----
> testDegreeCos
> "self run: #testDegreeCos"
>
> - self shouldnt: [ 45 degreeCos] raise: Error.
> "Following tests use approximate equality, because cosine are
> generally evaluated using inexact Floating point arithmetic"
> self assert: (45 degreeCos squared - (1/2)) abs <= Float epsilon.
> self assert: (60 degreeCos - (1/2)) abs <= Float epsilon.
> self assert: (120 degreeCos + (1/2)) abs <= Float epsilon.
> -360 to: 360 do: [:i |
> self assert: (i degreeCos closeTo: i degreesToRadians
> cos)].
>
> "Following tests use strict equality which is a requested property
> of degreeCos"
> -10 to: 10 do: [:k |
> self assert: (k*360 + 90) degreeCos = 0.
> self assert: (k*360 - 90) degreeCos = 0.
> self assert: (k*360 + 180) degreeCos + 1 = 0.
> self assert: (k*360) degreeCos - 1 = 0.].!
>
> Item was changed:
> ----- Method: IntegerTest>>testDegreeSin (in category 'tests -
> mathematical functions') -----
> testDegreeSin
> "self run: #testDegreeSin"
>
> - self shouldnt: [ 45 degreeSin] raise: Error.
> -
> "Following tests use approximate equality, because sine are
> generally evaluated using inexact Floating point arithmetic"
> self assert: (45 degreeSin squared - (1/2)) abs <= Float epsilon.
> self assert: (30 degreeSin - (1/2)) abs <= Float epsilon.
> self assert: (-30 degreeSin + (1/2)) abs <= Float epsilon.
> -360 to: 360 do: [:i |
> self assert: (i degreeSin closeTo: i degreesToRadians
> sin)].
>
> "Following tests use strict equality which is a requested property
> of degreeSin"
> -10 to: 10 do: [:k |
> self assert: (k*360 + 90) degreeSin - 1 = 0.
> self assert: (k*360 - 90) degreeSin + 1= 0.
> self assert: (k*360 + 180) degreeSin = 0.
> self assert: (k*360) degreeSin = 0].!
>
> Item was changed:
> ----- Method: MethodPragmaTest>>testReformat (in category
> 'testing-printing-reformating') -----
> testReformat
> -
> -
> self assert: (DisplayScreen class compiledMethodAt:
> #actualScreenDepth) getSource string = 'actualScreenDepth
> <primitive: ''primitiveScreenDepth''>
> ^ Display depth'.
> -
>
> - self shouldnt: [ DisplayScreen class reformatMethodAt:
> #actualScreenDepth] raise: Error.
> -
> self assert: (DisplayScreen class compiledMethodAt:
> #actualScreenDepth) getSource string = 'actualScreenDepth
> <primitive: ''primitiveScreenDepth''>
> ^ Display depth'.
> !
>
> Item was changed:
> ----- Method: NumberTest>>testPrintShowingDecimalPlaces2 (in category
> 'tests') -----
> testPrintShowingDecimalPlaces2
> "This tests problems related to Float>>rounded and Float>>roundTo::
> - Float>>#rounded is inexact
> - Float>>#roundTo: might overflow"
>
> "5000000000000001.0 asTrueFraction = 5000000000000001.
> 5000000000000001 highBit = 53.
> This number is represented exactly asFloat, it should print
> exactly"
> self assert: (5000000000000001.0 printShowingDecimalPlaces: 0) =
> '5000000000000001'.
>
> "50000000000001.25 asTrueFraction = (200000000000005/4).
> 200000000000005 highBit = 48, 4 isPowerOfTwo,
> So this number is also represented exactly as Float, it should
> print exactly.
> Beware: (50000000000001.25 / 0.01) rounded exhibit the same
> problem as above."
> self assert: (50000000000001.25 printShowingDecimalPlaces: 2) =
> '50000000000001.25'.
>
> "This number is close to maximum float value"
> + self assert:
> '1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.000'
> equals: (1.0e306 printShowingDecimalPlaces: 3).!
> - self shouldnt: [1.0e306 printShowingDecimalPlaces: 3] raise:
> Error.!
>
> Item was changed:
> ----- Method: ObjectTest>>testAssert (in category 'tests - debugging')
> -----
> testAssert
> + Object assert: [true].
> + Object assert: true.
> -
> - self shouldnt: [Object assert: [true]] raise: Error.
> - self shouldnt: [Object assert: true] raise: Error.
> self should: [Object assert: [false]] raise: AssertionFailure.
> self should: [Object assert: false] raise: AssertionFailure.!
>
> Item was changed:
> ----- Method: ObjectTest>>testHaltIf (in category 'tests - testing')
> -----
> testHaltIf
>
> self should: [self haltIf: true] raise: Halt.
> + self haltIf: false.
> - self shouldnt: [self haltIf: false] raise: Halt.
>
> self should: [self haltIf: [true]] raise: Halt.
> + self haltIf: [false].
> - self shouldnt: [self haltIf: [false]] raise: Halt.
>
> self should: [self haltIf: #testHaltIf.] raise: Halt.
> + self haltIf: #teadfasdfltIf.
> - self shouldnt: [self haltIf: #teadfasdfltIf.] raise: Halt.
>
> self should: [self a] raise: Halt.
> + self a1.
> - self shouldnt: [self a1] raise: Halt.
>
> self should: [self haltIf: [:o | o class = self class]] raise:
> Halt.
> + self haltIf: [:o | o class ~= self class].
> - self shouldnt: [self haltIf: [:o | o class ~= self class]] raise:
> Halt.
> !
>
> Item was changed:
> ----- Method: ProcessTest>>testAtomicSuspend (in category 'tests') -----
> testAtomicSuspend
> "Test atomic suspend of foreign processes"
>
> | list p sema |
> sema := Semaphore new.
> p := [sema wait] fork.
> Processor yield.
> + list := p suspendPrimitivelyOrFail.
> - self shouldnt: [list := p suspendPrimitivelyOrFail] raise: Error.
> self assert: list == sema.
> !
>
> Item was changed:
> ----- Method: ProtoObjectTest>>testFlag (in category 'tests - testing')
> -----
> testFlag
> + "This should never throw an exception."
> + ProtoObject new flag: #hallo.!
> -
> - self shouldnt: [ProtoObject new flag: #hallo] raise: Error.!
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20131105/f2ea43cb/attachment-0001.htm
More information about the Squeak-dev
mailing list
|