From 7a5ef1ccbc7ca9e846353e6f5a468001275205c7 Mon Sep 17 00:00:00 2001 From: Mariano Saura Date: Mon, 7 Aug 2023 20:02:19 -0300 Subject: [PATCH 01/26] Number and subclasses extensions moved to math extensions package --- .../BuoyNumberExtensionsTest.class.st | 2 +- source/Buoy-Math-Extensions-Tests/package.st | 1 + .../Fraction.extension.st | 2 +- .../Integer.extension.st | 2 +- .../Number.extension.st | 10 +++++----- source/Buoy-Math-Extensions/package.st | 1 + 6 files changed, 10 insertions(+), 8 deletions(-) rename source/{Buoy-Math-Tests => Buoy-Math-Extensions-Tests}/BuoyNumberExtensionsTest.class.st (96%) create mode 100644 source/Buoy-Math-Extensions-Tests/package.st rename source/{Buoy-Math => Buoy-Math-Extensions}/Fraction.extension.st (76%) rename source/{Buoy-Math => Buoy-Math-Extensions}/Integer.extension.st (76%) rename source/{Buoy-Math => Buoy-Math-Extensions}/Number.extension.st (76%) create mode 100644 source/Buoy-Math-Extensions/package.st diff --git a/source/Buoy-Math-Tests/BuoyNumberExtensionsTest.class.st b/source/Buoy-Math-Extensions-Tests/BuoyNumberExtensionsTest.class.st similarity index 96% rename from source/Buoy-Math-Tests/BuoyNumberExtensionsTest.class.st rename to source/Buoy-Math-Extensions-Tests/BuoyNumberExtensionsTest.class.st index 80230da..c3012dc 100644 --- a/source/Buoy-Math-Tests/BuoyNumberExtensionsTest.class.st +++ b/source/Buoy-Math-Extensions-Tests/BuoyNumberExtensionsTest.class.st @@ -4,7 +4,7 @@ I'm a Test Case for the extensions defined in this package to Number. Class { #name : #BuoyNumberExtensionsTest, #superclass : #TestCase, - #category : 'Buoy-Math-Tests' + #category : #'Buoy-Math-Extensions-Tests' } { #category : #tests } diff --git a/source/Buoy-Math-Extensions-Tests/package.st b/source/Buoy-Math-Extensions-Tests/package.st new file mode 100644 index 0000000..6acd3bf --- /dev/null +++ b/source/Buoy-Math-Extensions-Tests/package.st @@ -0,0 +1 @@ +Package { #name : #'Buoy-Math-Extensions-Tests' } diff --git a/source/Buoy-Math/Fraction.extension.st b/source/Buoy-Math-Extensions/Fraction.extension.st similarity index 76% rename from source/Buoy-Math/Fraction.extension.st rename to source/Buoy-Math-Extensions/Fraction.extension.st index b488487..4388e74 100644 --- a/source/Buoy-Math/Fraction.extension.st +++ b/source/Buoy-Math-Extensions/Fraction.extension.st @@ -1,6 +1,6 @@ Extension { #name : #Fraction } -{ #category : #'*Buoy-Math' } +{ #category : #'*Buoy-Math-Extensions' } Fraction >> adaptToFraction: aFraction andSend: selector [ ^self perform: selector with: aFraction diff --git a/source/Buoy-Math/Integer.extension.st b/source/Buoy-Math-Extensions/Integer.extension.st similarity index 76% rename from source/Buoy-Math/Integer.extension.st rename to source/Buoy-Math-Extensions/Integer.extension.st index bc6584a..f299a9d 100644 --- a/source/Buoy-Math/Integer.extension.st +++ b/source/Buoy-Math-Extensions/Integer.extension.st @@ -1,6 +1,6 @@ Extension { #name : #Integer } -{ #category : #'*Buoy-Math' } +{ #category : #'*Buoy-Math-Extensions' } Integer >> adaptToInteger: anInteger andSend: selector [ ^ self perform: selector with: anInteger diff --git a/source/Buoy-Math/Number.extension.st b/source/Buoy-Math-Extensions/Number.extension.st similarity index 76% rename from source/Buoy-Math/Number.extension.st rename to source/Buoy-Math-Extensions/Number.extension.st index b4bd740..77d63b3 100644 --- a/source/Buoy-Math/Number.extension.st +++ b/source/Buoy-Math-Extensions/Number.extension.st @@ -1,6 +1,6 @@ Extension { #name : #Number } -{ #category : #'*Buoy-Math' } +{ #category : #'*Buoy-Math-Extensions' } Number >> decreasedBy: aPercentage [ AssertionChecker @@ -11,7 +11,7 @@ Number >> decreasedBy: aPercentage [ ^ self * (Percentage oneHundred - aPercentage) ] -{ #category : #'*Buoy-Math' } +{ #category : #'*Buoy-Math-Extensions' } Number >> increasedBy: aPercentage [ AssertionChecker @@ -22,19 +22,19 @@ Number >> increasedBy: aPercentage [ ^ self * (Percentage oneHundred + aPercentage) ] -{ #category : #'*Buoy-Math' } +{ #category : #'*Buoy-Math-Extensions' } Number >> isPercentage [ ^false ] -{ #category : #'*Buoy-Math' } +{ #category : #'*Buoy-Math-Extensions' } Number >> perMille [ ^ PerMille of: self ] -{ #category : #'*Buoy-Math' } +{ #category : #'*Buoy-Math-Extensions' } Number >> percent [ ^ Percentage of: self diff --git a/source/Buoy-Math-Extensions/package.st b/source/Buoy-Math-Extensions/package.st new file mode 100644 index 0000000..b77a988 --- /dev/null +++ b/source/Buoy-Math-Extensions/package.st @@ -0,0 +1 @@ +Package { #name : #'Buoy-Math-Extensions' } From fea532be7b736d5a20192472344ad0bcd702d05a Mon Sep 17 00:00:00 2001 From: Gabriel Omar Cotelli Date: Tue, 8 Aug 2023 14:10:12 -0300 Subject: [PATCH 02/26] Move test to test package --- source/Buoy-Math-Extensions-Tests/package.st | 1 - .../BuoyNumberExtensionsTest.class.st | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) delete mode 100644 source/Buoy-Math-Extensions-Tests/package.st rename source/{Buoy-Math-Extensions-Tests => Buoy-Math-Tests}/BuoyNumberExtensionsTest.class.st (96%) diff --git a/source/Buoy-Math-Extensions-Tests/package.st b/source/Buoy-Math-Extensions-Tests/package.st deleted file mode 100644 index 6acd3bf..0000000 --- a/source/Buoy-Math-Extensions-Tests/package.st +++ /dev/null @@ -1 +0,0 @@ -Package { #name : #'Buoy-Math-Extensions-Tests' } diff --git a/source/Buoy-Math-Extensions-Tests/BuoyNumberExtensionsTest.class.st b/source/Buoy-Math-Tests/BuoyNumberExtensionsTest.class.st similarity index 96% rename from source/Buoy-Math-Extensions-Tests/BuoyNumberExtensionsTest.class.st rename to source/Buoy-Math-Tests/BuoyNumberExtensionsTest.class.st index c3012dc..4487f09 100644 --- a/source/Buoy-Math-Extensions-Tests/BuoyNumberExtensionsTest.class.st +++ b/source/Buoy-Math-Tests/BuoyNumberExtensionsTest.class.st @@ -4,7 +4,7 @@ I'm a Test Case for the extensions defined in this package to Number. Class { #name : #BuoyNumberExtensionsTest, #superclass : #TestCase, - #category : #'Buoy-Math-Extensions-Tests' + #category : #'Buoy-Math-Tests' } { #category : #tests } From 925a95a2fa68ed3830d9d20da3e17992af0acb3e Mon Sep 17 00:00:00 2001 From: Mariano Saura Date: Tue, 8 Aug 2023 15:23:48 -0300 Subject: [PATCH 03/26] Updated Pharo baseline --- source/BaselineOfBuoy/BaselineOfBuoy.class.st | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/BaselineOfBuoy/BaselineOfBuoy.class.st b/source/BaselineOfBuoy/BaselineOfBuoy.class.st index ec7394d..ba216ae 100644 --- a/source/BaselineOfBuoy/BaselineOfBuoy.class.st +++ b/source/BaselineOfBuoy/BaselineOfBuoy.class.st @@ -131,6 +131,8 @@ BaselineOfBuoy >> baselineMath: spec [ spec package: 'Buoy-Math' with: [ spec requires: 'Buoy-Assertions' ]; group: 'Deployment' with: 'Buoy-Math'; + package: 'Buoy-Math-Extensions' with: [ spec requires: 'Buoy-Math' ]; + group: 'Deployment' with: 'Buoy-Math-Extensions'; package: 'Buoy-Math-Tests' with: [ spec requires: #('Buoy-Math' 'Dependent-SUnit-Extensions') ]; group: 'Tests' with: 'Buoy-Math-Tests' ] From 77b81629e8a891d7b47875083e97a704f6fee0be Mon Sep 17 00:00:00 2001 From: Mariano Saura Date: Tue, 8 Aug 2023 15:32:35 -0300 Subject: [PATCH 04/26] Fixed baseline tests package loading --- source/BaselineOfBuoy/BaselineOfBuoy.class.st | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/BaselineOfBuoy/BaselineOfBuoy.class.st b/source/BaselineOfBuoy/BaselineOfBuoy.class.st index ba216ae..8c51ec6 100644 --- a/source/BaselineOfBuoy/BaselineOfBuoy.class.st +++ b/source/BaselineOfBuoy/BaselineOfBuoy.class.st @@ -133,7 +133,7 @@ BaselineOfBuoy >> baselineMath: spec [ group: 'Deployment' with: 'Buoy-Math'; package: 'Buoy-Math-Extensions' with: [ spec requires: 'Buoy-Math' ]; group: 'Deployment' with: 'Buoy-Math-Extensions'; - package: 'Buoy-Math-Tests' with: [ spec requires: #('Buoy-Math' 'Dependent-SUnit-Extensions') ]; + package: 'Buoy-Math-Tests' with: [ spec requires: #('Buoy-Math-Extensions' 'Dependent-SUnit-Extensions') ]; group: 'Tests' with: 'Buoy-Math-Tests' ] From 6f54a624d30aadf25c7779e15003a06a4d15fee1 Mon Sep 17 00:00:00 2001 From: Mariano Saura Date: Tue, 8 Aug 2023 15:43:49 -0300 Subject: [PATCH 05/26] Rowan specs update --- rowan/components/Deployment.ston | 5 +++++ rowan/components/Tests.ston | 1 + 2 files changed, 6 insertions(+) diff --git a/rowan/components/Deployment.ston b/rowan/components/Deployment.ston index 21689e5..9f8e26e 100644 --- a/rowan/components/Deployment.ston +++ b/rowan/components/Deployment.ston @@ -15,6 +15,8 @@ RwSimpleProjectLoadComponentV2 { 'Buoy-Conditions-Extensions', 'Buoy-Dynamic-Binding', 'Buoy-Exception-Handling-Extensions', + 'Buoy-Math', + 'Buoy-Math-Extensions', 'Buoy-Math-GS64-Extensions', 'Buoy-Metaprogramming', 'Buoy-Metaprogramming-Extensions', @@ -42,6 +44,9 @@ RwSimpleProjectLoadComponentV2 { 'Buoy-Exception-Handling-Extensions' : { 'symbolDictName' : 'Globals' }, + 'Buoy-Math-Extensions' : { + 'symbolDictName' : 'Globals' + }, 'Buoy-Math-GS64-Extensions' : { 'symbolDictName' : 'Globals' }, diff --git a/rowan/components/Tests.ston b/rowan/components/Tests.ston index 4b2b2f9..f8c6e68 100644 --- a/rowan/components/Tests.ston +++ b/rowan/components/Tests.ston @@ -13,6 +13,7 @@ RwSimpleProjectLoadComponentV2 { 'Buoy-Conditions-Tests', 'Buoy-Dynamic-Binding-Tests', 'Buoy-Exception-Handling-Tests', + 'Buoy-Math-Tests', 'Buoy-Metaprogramming-Tests', 'Buoy-SUnit-Tests' ], From 2189ee1535931dfe6bfb5d45f53cbcb5e515b287 Mon Sep 17 00:00:00 2001 From: Mariano Saura Date: Tue, 8 Aug 2023 16:05:04 -0300 Subject: [PATCH 06/26] Added alias for ArithmeticError in preload doit script --- rowan/components/scripts/defineExceptionAliases.st | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rowan/components/scripts/defineExceptionAliases.st b/rowan/components/scripts/defineExceptionAliases.st index cdebe8a..edc369a 100644 --- a/rowan/components/scripts/defineExceptionAliases.st +++ b/rowan/components/scripts/defineExceptionAliases.st @@ -1,10 +1,10 @@ | symbolDictionary | symbolDictionary := Rowan image - symbolDictNamed:'Buoy' + symbolDictNamed: 'Buoy' ifAbsent: [ Rowan image symbolList createDictionaryNamed: 'Buoy' at: 1. - Rowan image symbolDictNamed:'Buoy' + Rowan image symbolDictNamed: 'Buoy' ]. symbolDictionary at: #SubscriptOutOfBounds put: OffsetError. symbolDictionary at: #NotFound put: LookupError. - +symbolDictionary at: #ArithmeticError put: NumericError. From c683fa7b828a9fa76c8e6a7c76ac45104db4a599 Mon Sep 17 00:00:00 2001 From: Gabriel Omar Cotelli Date: Tue, 8 Aug 2023 17:29:11 -0300 Subject: [PATCH 07/26] Fix some tests in GS64 --- source/Buoy-Math-GS64-Extensions/Number.extension.st | 6 ++++++ source/Buoy-Math/PartsPerFraction.class.st | 12 ++++++++++++ source/Buoy-Math/PerMille.class.st | 7 +++++++ source/Buoy-Math/Percentage.class.st | 7 +++++++ 4 files changed, 32 insertions(+) diff --git a/source/Buoy-Math-GS64-Extensions/Number.extension.st b/source/Buoy-Math-GS64-Extensions/Number.extension.st index 9d889c9..6cf9003 100644 --- a/source/Buoy-Math-GS64-Extensions/Number.extension.st +++ b/source/Buoy-Math-GS64-Extensions/Number.extension.st @@ -11,3 +11,9 @@ Number >> isZero [ ^ self = 0 ] + +{ #category : #'*Buoy-Math-GS64-Extensions' } +Number >> storeOn: aStream [ + + self printOn: aStream +] diff --git a/source/Buoy-Math/PartsPerFraction.class.st b/source/Buoy-Math/PartsPerFraction.class.st index b2b2ffa..eb7286d 100644 --- a/source/Buoy-Math/PartsPerFraction.class.st +++ b/source/Buoy-Math/PartsPerFraction.class.st @@ -128,6 +128,18 @@ PartsPerFraction >> nthRoot: aPositiveInteger [ ^ ratio nthRoot: aPositiveInteger ] +{ #category : #printing } +PartsPerFraction >> printOn: stream [ + + self value printOn: stream +] + +{ #category : #printing } +PartsPerFraction >> printString [ + + ^ String streamContents: [ :stream | self printOn: stream ] +] + { #category : #arithmetic } PartsPerFraction >> reciprocal [ diff --git a/source/Buoy-Math/PerMille.class.st b/source/Buoy-Math/PerMille.class.st index 9234c58..2a56108 100644 --- a/source/Buoy-Math/PerMille.class.st +++ b/source/Buoy-Math/PerMille.class.st @@ -13,6 +13,13 @@ PerMille class >> fraction [ ^ 1000 ] +{ #category : #printing } +PerMille >> printOn: stream [ + + super printOn: stream. + stream nextPut: $‰ +] + { #category : #printing } PerMille >> printOn: aStream base: anInteger [ diff --git a/source/Buoy-Math/Percentage.class.st b/source/Buoy-Math/Percentage.class.st index c71d4e5..d8ccde3 100644 --- a/source/Buoy-Math/Percentage.class.st +++ b/source/Buoy-Math/Percentage.class.st @@ -48,6 +48,13 @@ Percentage >> isWellKnown [ ^ #( 0 1 ) includes: ratio ] +{ #category : #printing } +Percentage >> printOn: stream [ + + super printOn: stream. + stream nextPut: $% +] + { #category : #printing } Percentage >> printOn: aStream base: anInteger [ From 03639ca84d3b659fa9ae69cad1ff6bd8238c03a7 Mon Sep 17 00:00:00 2001 From: Gabriel Omar Cotelli Date: Wed, 9 Aug 2023 12:36:24 -0300 Subject: [PATCH 08/26] Fix Percentage tests on GS64 --- .../Number.extension.st | 6 ++++ source/Buoy-Math/PartsPerFraction.class.st | 32 +++++++++++++------ 2 files changed, 28 insertions(+), 10 deletions(-) diff --git a/source/Buoy-Math-GS64-Extensions/Number.extension.st b/source/Buoy-Math-GS64-Extensions/Number.extension.st index 6cf9003..7ee8c69 100644 --- a/source/Buoy-Math-GS64-Extensions/Number.extension.st +++ b/source/Buoy-Math-GS64-Extensions/Number.extension.st @@ -1,5 +1,11 @@ Extension { #name : #Number } +{ #category : #'*Buoy-Math-GS64-Extensions' } +Number >> asNumber [ + + ^ self +] + { #category : #'*Buoy-Math-GS64-Extensions' } Number >> isInteger [ diff --git a/source/Buoy-Math/PartsPerFraction.class.st b/source/Buoy-Math/PartsPerFraction.class.st index eb7286d..84ba5d0 100644 --- a/source/Buoy-Math/PartsPerFraction.class.st +++ b/source/Buoy-Math/PartsPerFraction.class.st @@ -37,35 +37,35 @@ PartsPerFraction class >> ratio: aRatio [ { #category : #arithmetic } PartsPerFraction >> * aNumber [ - ^ratio * aNumber + ^ ratio * aNumber asNumber ] { #category : #arithmetic } PartsPerFraction >> + aNumber [ ^ (aNumber isA: self class) - ifTrue: [ self class ratio: ratio + aNumber ] - ifFalse: [ ratio + aNumber ] + ifTrue: [ self class ratio: ratio + aNumber asNumber ] + ifFalse: [ ratio + aNumber ] ] { #category : #arithmetic } PartsPerFraction >> - aNumber [ ^ (aNumber isA: self class) - ifTrue: [ self class ratio: ratio - aNumber ] - ifFalse: [ ratio - aNumber ] + ifTrue: [ self class ratio: ratio - aNumber asNumber ] + ifFalse: [ ratio - aNumber ] ] { #category : #arithmetic } -PartsPerFraction >> / aNumber [ +PartsPerFraction >> / aNumber [ - ^ratio / aNumber + ^ ratio / aNumber asNumber ] { #category : #comparing } -PartsPerFraction >> < aNumber [ - - ^ratio < aNumber +PartsPerFraction >> < aNumber [ + + ^ ratio < aNumber asNumber ] { #category : #comparing } @@ -74,6 +74,18 @@ PartsPerFraction >> = aNumber [ ^ aNumber isNumber and: [ self asNumber = aNumber asNumber ] ] +{ #category : #'as yet unclassified' } +PartsPerFraction >> _coerce: aNumber [ + + ^self class ratio: (ratio _coerce: aNumber) +] + +{ #category : #'as yet unclassified' } +PartsPerFraction >> _generality [ + + ^ ratio _generality + 1 +] + { #category : #converting } PartsPerFraction >> adaptToFraction: aFraction andSend: selector [ From 3855a39acbbb4b95aa5f4fc66cccbdf4a7e35881 Mon Sep 17 00:00:00 2001 From: Gabriel Omar Cotelli Date: Wed, 9 Aug 2023 13:21:09 -0300 Subject: [PATCH 09/26] Fix rounding tests in GS64 --- source/Buoy-Math-GS64-Extensions/Number.extension.st | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/source/Buoy-Math-GS64-Extensions/Number.extension.st b/source/Buoy-Math-GS64-Extensions/Number.extension.st index 7ee8c69..4a2fa9d 100644 --- a/source/Buoy-Math-GS64-Extensions/Number.extension.st +++ b/source/Buoy-Math-GS64-Extensions/Number.extension.st @@ -18,6 +18,12 @@ Number >> isZero [ ^ self = 0 ] +{ #category : #'*Buoy-Math-GS64-Extensions' } +Number >> round: numberOfWishedDecimal [ + + ^ self roundTo: (10 raisedTo: numberOfWishedDecimal negated) +] + { #category : #'*Buoy-Math-GS64-Extensions' } Number >> storeOn: aStream [ From 23453b0da7e2f22556a886cf8928a064c0e605a8 Mon Sep 17 00:00:00 2001 From: Gabriel Omar Cotelli Date: Wed, 9 Aug 2023 13:57:09 -0300 Subject: [PATCH 10/26] Move GS64 extensions to its own package --- source/BaselineOfBuoy/BaselineOfBuoy.class.st | 11 +++++-- .../Integer.extension.st | 4 +-- .../Number.extension.st | 10 +++---- .../Buoy-Math-GS64-Base-Extensions/package.st | 1 + .../PartsPerFraction.extension.st | 19 ++++++++++++ .../PartsPerFraction.extension.st | 13 ++++++++ source/Buoy-Math-Pharo-Extensions/package.st | 1 + source/Buoy-Math/PartsPerFraction.class.st | 30 ------------------- 8 files changed, 50 insertions(+), 39 deletions(-) rename source/{Buoy-Math-GS64-Extensions => Buoy-Math-GS64-Base-Extensions}/Integer.extension.st (64%) rename source/{Buoy-Math-GS64-Extensions => Buoy-Math-GS64-Base-Extensions}/Number.extension.st (53%) create mode 100644 source/Buoy-Math-GS64-Base-Extensions/package.st create mode 100644 source/Buoy-Math-GS64-Extensions/PartsPerFraction.extension.st create mode 100644 source/Buoy-Math-Pharo-Extensions/PartsPerFraction.extension.st create mode 100644 source/Buoy-Math-Pharo-Extensions/package.st diff --git a/source/BaselineOfBuoy/BaselineOfBuoy.class.st b/source/BaselineOfBuoy/BaselineOfBuoy.class.st index 8c51ec6..614b100 100644 --- a/source/BaselineOfBuoy/BaselineOfBuoy.class.st +++ b/source/BaselineOfBuoy/BaselineOfBuoy.class.st @@ -131,9 +131,16 @@ BaselineOfBuoy >> baselineMath: spec [ spec package: 'Buoy-Math' with: [ spec requires: 'Buoy-Assertions' ]; group: 'Deployment' with: 'Buoy-Math'; - package: 'Buoy-Math-Extensions' with: [ spec requires: 'Buoy-Math' ]; + package: 'Buoy-Math-Extensions' + with: [ spec requires: 'Buoy-Math' ]; group: 'Deployment' with: 'Buoy-Math-Extensions'; - package: 'Buoy-Math-Tests' with: [ spec requires: #('Buoy-Math-Extensions' 'Dependent-SUnit-Extensions') ]; + package: 'Buoy-Math-Pharo-Extensions' + with: [ spec requires: 'Buoy-Math' ]; + group: 'Deployment' with: 'Buoy-Math-Pharo-Extensions'; + package: 'Buoy-Math-Tests' with: [ + spec requires: + #( 'Buoy-Math-Extensions' 'Buoy-Math-Pharo-Extensions' + 'Dependent-SUnit-Extensions' ) ]; group: 'Tests' with: 'Buoy-Math-Tests' ] diff --git a/source/Buoy-Math-GS64-Extensions/Integer.extension.st b/source/Buoy-Math-GS64-Base-Extensions/Integer.extension.st similarity index 64% rename from source/Buoy-Math-GS64-Extensions/Integer.extension.st rename to source/Buoy-Math-GS64-Base-Extensions/Integer.extension.st index 21a9fa4..c771109 100644 --- a/source/Buoy-Math-GS64-Extensions/Integer.extension.st +++ b/source/Buoy-Math-GS64-Base-Extensions/Integer.extension.st @@ -1,13 +1,13 @@ Extension { #name : #Integer } -{ #category : #'*Buoy-Math-GS64-Extensions' } +{ #category : #'*Buoy-Math-GS64-Base-Extensions' } Integer >> hashMultiply [ "No need to do something special in GS64" ^ self ] -{ #category : #'*Buoy-Math-GS64-Extensions' } +{ #category : #'*Buoy-Math-GS64-Base-Extensions' } Integer >> isInteger [ "True for all subclasses of Integer." diff --git a/source/Buoy-Math-GS64-Extensions/Number.extension.st b/source/Buoy-Math-GS64-Base-Extensions/Number.extension.st similarity index 53% rename from source/Buoy-Math-GS64-Extensions/Number.extension.st rename to source/Buoy-Math-GS64-Base-Extensions/Number.extension.st index 4a2fa9d..f8629d4 100644 --- a/source/Buoy-Math-GS64-Extensions/Number.extension.st +++ b/source/Buoy-Math-GS64-Base-Extensions/Number.extension.st @@ -1,30 +1,30 @@ Extension { #name : #Number } -{ #category : #'*Buoy-Math-GS64-Extensions' } +{ #category : #'*Buoy-Math-GS64-Base-Extensions' } Number >> asNumber [ ^ self ] -{ #category : #'*Buoy-Math-GS64-Extensions' } +{ #category : #'*Buoy-Math-GS64-Base-Extensions' } Number >> isInteger [ ^ false ] -{ #category : #'*Buoy-Math-GS64-Extensions' } +{ #category : #'*Buoy-Math-GS64-Base-Extensions' } Number >> isZero [ ^ self = 0 ] -{ #category : #'*Buoy-Math-GS64-Extensions' } +{ #category : #'*Buoy-Math-GS64-Base-Extensions' } Number >> round: numberOfWishedDecimal [ ^ self roundTo: (10 raisedTo: numberOfWishedDecimal negated) ] -{ #category : #'*Buoy-Math-GS64-Extensions' } +{ #category : #'*Buoy-Math-GS64-Base-Extensions' } Number >> storeOn: aStream [ self printOn: aStream diff --git a/source/Buoy-Math-GS64-Base-Extensions/package.st b/source/Buoy-Math-GS64-Base-Extensions/package.st new file mode 100644 index 0000000..682fb82 --- /dev/null +++ b/source/Buoy-Math-GS64-Base-Extensions/package.st @@ -0,0 +1 @@ +Package { #name : #'Buoy-Math-GS64-Base-Extensions' } diff --git a/source/Buoy-Math-GS64-Extensions/PartsPerFraction.extension.st b/source/Buoy-Math-GS64-Extensions/PartsPerFraction.extension.st new file mode 100644 index 0000000..64fab27 --- /dev/null +++ b/source/Buoy-Math-GS64-Extensions/PartsPerFraction.extension.st @@ -0,0 +1,19 @@ +Extension { #name : #PartsPerFraction } + +{ #category : #'*Buoy-Math-GS64-Extensions' } +PartsPerFraction >> _coerce: aNumber [ + + ^self class ratio: (ratio _coerce: aNumber) +] + +{ #category : #'*Buoy-Math-GS64-Extensions' } +PartsPerFraction >> _generality [ + + ^ ratio _generality + 1 +] + +{ #category : #'*Buoy-Math-GS64-Extensions' } +PartsPerFraction >> printString [ + + ^ String streamContents: [ :stream | self printOn: stream ] +] diff --git a/source/Buoy-Math-Pharo-Extensions/PartsPerFraction.extension.st b/source/Buoy-Math-Pharo-Extensions/PartsPerFraction.extension.st new file mode 100644 index 0000000..c346749 --- /dev/null +++ b/source/Buoy-Math-Pharo-Extensions/PartsPerFraction.extension.st @@ -0,0 +1,13 @@ +Extension { #name : #PartsPerFraction } + +{ #category : #'*Buoy-Math-Pharo-Extensions' } +PartsPerFraction >> adaptToFraction: aFraction andSend: selector [ + + ^ aFraction adaptToFraction: ratio andSend: selector +] + +{ #category : #'*Buoy-Math-Pharo-Extensions' } +PartsPerFraction >> adaptToInteger: anInteger andSend: aSymbol [ + + ^anInteger adaptToInteger: ratio andSend: aSymbol +] diff --git a/source/Buoy-Math-Pharo-Extensions/package.st b/source/Buoy-Math-Pharo-Extensions/package.st new file mode 100644 index 0000000..6baf5f2 --- /dev/null +++ b/source/Buoy-Math-Pharo-Extensions/package.st @@ -0,0 +1 @@ +Package { #name : #'Buoy-Math-Pharo-Extensions' } diff --git a/source/Buoy-Math/PartsPerFraction.class.st b/source/Buoy-Math/PartsPerFraction.class.st index 84ba5d0..41e4009 100644 --- a/source/Buoy-Math/PartsPerFraction.class.st +++ b/source/Buoy-Math/PartsPerFraction.class.st @@ -74,30 +74,6 @@ PartsPerFraction >> = aNumber [ ^ aNumber isNumber and: [ self asNumber = aNumber asNumber ] ] -{ #category : #'as yet unclassified' } -PartsPerFraction >> _coerce: aNumber [ - - ^self class ratio: (ratio _coerce: aNumber) -] - -{ #category : #'as yet unclassified' } -PartsPerFraction >> _generality [ - - ^ ratio _generality + 1 -] - -{ #category : #converting } -PartsPerFraction >> adaptToFraction: aFraction andSend: selector [ - - ^ aFraction adaptToFraction: ratio andSend: selector -] - -{ #category : #converting } -PartsPerFraction >> adaptToInteger: anInteger andSend: aSymbol [ - - ^anInteger adaptToInteger: ratio andSend: aSymbol -] - { #category : #converting } PartsPerFraction >> asFloat [ @@ -146,12 +122,6 @@ PartsPerFraction >> printOn: stream [ self value printOn: stream ] -{ #category : #printing } -PartsPerFraction >> printString [ - - ^ String streamContents: [ :stream | self printOn: stream ] -] - { #category : #arithmetic } PartsPerFraction >> reciprocal [ From 981ac18d932b9d06fab4dbc2a980386e3adf94bb Mon Sep 17 00:00:00 2001 From: Gabriel Omar Cotelli Date: Wed, 9 Aug 2023 13:58:31 -0300 Subject: [PATCH 11/26] Update deployemnt component --- rowan/components/Deployment.ston | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rowan/components/Deployment.ston b/rowan/components/Deployment.ston index 9f8e26e..967eab1 100644 --- a/rowan/components/Deployment.ston +++ b/rowan/components/Deployment.ston @@ -17,6 +17,7 @@ RwSimpleProjectLoadComponentV2 { 'Buoy-Exception-Handling-Extensions', 'Buoy-Math', 'Buoy-Math-Extensions', + 'Buoy-Math-GS64-Base-Extensions', 'Buoy-Math-GS64-Extensions', 'Buoy-Metaprogramming', 'Buoy-Metaprogramming-Extensions', @@ -47,7 +48,7 @@ RwSimpleProjectLoadComponentV2 { 'Buoy-Math-Extensions' : { 'symbolDictName' : 'Globals' }, - 'Buoy-Math-GS64-Extensions' : { + 'Buoy-Math-GS64-Base-Extensions' : { 'symbolDictName' : 'Globals' }, 'Buoy-Metaprogramming-Extensions' : { From c9044c08d2e04c15b6e7a9b46f98bfa4fcbbfdb7 Mon Sep 17 00:00:00 2001 From: Gabriel Omar Cotelli Date: Wed, 9 Aug 2023 14:04:47 -0300 Subject: [PATCH 12/26] Move extensions only needed in GS64 --- .../PartsPerFraction.extension.st | 6 ++++++ source/Buoy-Math-GS64-Extensions/PerMille.extension.st | 8 ++++++++ source/Buoy-Math-GS64-Extensions/Percentage.extension.st | 8 ++++++++ source/Buoy-Math/PartsPerFraction.class.st | 6 ------ source/Buoy-Math/PerMille.class.st | 7 ------- source/Buoy-Math/Percentage.class.st | 7 ------- 6 files changed, 22 insertions(+), 20 deletions(-) create mode 100644 source/Buoy-Math-GS64-Extensions/PerMille.extension.st create mode 100644 source/Buoy-Math-GS64-Extensions/Percentage.extension.st diff --git a/source/Buoy-Math-GS64-Extensions/PartsPerFraction.extension.st b/source/Buoy-Math-GS64-Extensions/PartsPerFraction.extension.st index 64fab27..73eafa7 100644 --- a/source/Buoy-Math-GS64-Extensions/PartsPerFraction.extension.st +++ b/source/Buoy-Math-GS64-Extensions/PartsPerFraction.extension.st @@ -12,6 +12,12 @@ PartsPerFraction >> _generality [ ^ ratio _generality + 1 ] +{ #category : #'*Buoy-Math-GS64-Extensions' } +PartsPerFraction >> printOn: stream [ + + self value printOn: stream +] + { #category : #'*Buoy-Math-GS64-Extensions' } PartsPerFraction >> printString [ diff --git a/source/Buoy-Math-GS64-Extensions/PerMille.extension.st b/source/Buoy-Math-GS64-Extensions/PerMille.extension.st new file mode 100644 index 0000000..79fc713 --- /dev/null +++ b/source/Buoy-Math-GS64-Extensions/PerMille.extension.st @@ -0,0 +1,8 @@ +Extension { #name : #PerMille } + +{ #category : #'*Buoy-Math-GS64-Extensions' } +PerMille >> printOn: stream [ + + super printOn: stream. + stream nextPut: $‰ +] diff --git a/source/Buoy-Math-GS64-Extensions/Percentage.extension.st b/source/Buoy-Math-GS64-Extensions/Percentage.extension.st new file mode 100644 index 0000000..76406d8 --- /dev/null +++ b/source/Buoy-Math-GS64-Extensions/Percentage.extension.st @@ -0,0 +1,8 @@ +Extension { #name : #Percentage } + +{ #category : #'*Buoy-Math-GS64-Extensions' } +Percentage >> printOn: stream [ + + super printOn: stream. + stream nextPut: $% +] diff --git a/source/Buoy-Math/PartsPerFraction.class.st b/source/Buoy-Math/PartsPerFraction.class.st index 41e4009..3a05223 100644 --- a/source/Buoy-Math/PartsPerFraction.class.st +++ b/source/Buoy-Math/PartsPerFraction.class.st @@ -116,12 +116,6 @@ PartsPerFraction >> nthRoot: aPositiveInteger [ ^ ratio nthRoot: aPositiveInteger ] -{ #category : #printing } -PartsPerFraction >> printOn: stream [ - - self value printOn: stream -] - { #category : #arithmetic } PartsPerFraction >> reciprocal [ diff --git a/source/Buoy-Math/PerMille.class.st b/source/Buoy-Math/PerMille.class.st index 2a56108..9234c58 100644 --- a/source/Buoy-Math/PerMille.class.st +++ b/source/Buoy-Math/PerMille.class.st @@ -13,13 +13,6 @@ PerMille class >> fraction [ ^ 1000 ] -{ #category : #printing } -PerMille >> printOn: stream [ - - super printOn: stream. - stream nextPut: $‰ -] - { #category : #printing } PerMille >> printOn: aStream base: anInteger [ diff --git a/source/Buoy-Math/Percentage.class.st b/source/Buoy-Math/Percentage.class.st index d8ccde3..c71d4e5 100644 --- a/source/Buoy-Math/Percentage.class.st +++ b/source/Buoy-Math/Percentage.class.st @@ -48,13 +48,6 @@ Percentage >> isWellKnown [ ^ #( 0 1 ) includes: ratio ] -{ #category : #printing } -Percentage >> printOn: stream [ - - super printOn: stream. - stream nextPut: $% -] - { #category : #printing } Percentage >> printOn: aStream base: anInteger [ From a47c903770ace3e056dc6a56f87371635ae9f27b Mon Sep 17 00:00:00 2001 From: Gabriel Omar Cotelli Date: Wed, 9 Aug 2023 14:36:06 -0300 Subject: [PATCH 13/26] Add method to compatibility package --- source/Buoy-GS64-Compatibility/Collection.extension.st | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 source/Buoy-GS64-Compatibility/Collection.extension.st diff --git a/source/Buoy-GS64-Compatibility/Collection.extension.st b/source/Buoy-GS64-Compatibility/Collection.extension.st new file mode 100644 index 0000000..6d9e0a1 --- /dev/null +++ b/source/Buoy-GS64-Compatibility/Collection.extension.st @@ -0,0 +1,10 @@ +Extension { #name : #Collection } + +{ #category : #'*Buoy-GS64-Compatibility' } +Collection >> any [ + + "Answer a representative sample of the receiver. It raises an error when the collection is empty. This method can be helpful when needing to preinfer the nature of the contents of semi-homogeneous collections." + + self emptyCheck. + self do: [ :each | ^ each ] +] From 8bb5f550ae0e6466e63120581395a2a7d60d5863 Mon Sep 17 00:00:00 2001 From: Gabriel Omar Cotelli Date: Wed, 9 Aug 2023 14:55:51 -0300 Subject: [PATCH 14/26] Add Number>>#nthRoot: to GS package --- source/Buoy-Math-GS64-Base-Extensions/Number.extension.st | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/source/Buoy-Math-GS64-Base-Extensions/Number.extension.st b/source/Buoy-Math-GS64-Base-Extensions/Number.extension.st index f8629d4..9c1d9d7 100644 --- a/source/Buoy-Math-GS64-Base-Extensions/Number.extension.st +++ b/source/Buoy-Math-GS64-Base-Extensions/Number.extension.st @@ -18,6 +18,12 @@ Number >> isZero [ ^ self = 0 ] +{ #category : #'*Buoy-Math-GS64-Base-Extensions' } +Number >> nthRoot: aPositiveInteger [ + + ^ self raisedTo: aPositiveInteger reciprocal +] + { #category : #'*Buoy-Math-GS64-Base-Extensions' } Number >> round: numberOfWishedDecimal [ From bc3137ab9cec8c51b302e10dcf95ecddeb570f73 Mon Sep 17 00:00:00 2001 From: Mariano Saura Date: Wed, 9 Aug 2023 15:29:36 -0300 Subject: [PATCH 15/26] Move storeOn:base: to pharo specific package --- source/BaselineOfBuoy/BaselineOfBuoy.class.st | 5 ++++- .../PerMilleTest.extension.st | 10 +++++++++ .../PercentageTest.extension.st | 10 +++++++++ .../package.st | 1 + .../PerMille.extension.st | 17 ++++++++++++++ .../Percentage.extension.st | 22 +++++++++++++++++++ source/Buoy-Math-Tests/PerMilleTest.class.st | 9 -------- .../Buoy-Math-Tests/PercentageTest.class.st | 9 -------- source/Buoy-Math/PerMille.class.st | 16 -------------- source/Buoy-Math/Percentage.class.st | 21 ------------------ 10 files changed, 64 insertions(+), 56 deletions(-) create mode 100644 source/Buoy-Math-Pharo-Extensions-Tests/PerMilleTest.extension.st create mode 100644 source/Buoy-Math-Pharo-Extensions-Tests/PercentageTest.extension.st create mode 100644 source/Buoy-Math-Pharo-Extensions-Tests/package.st create mode 100644 source/Buoy-Math-Pharo-Extensions/PerMille.extension.st create mode 100644 source/Buoy-Math-Pharo-Extensions/Percentage.extension.st diff --git a/source/BaselineOfBuoy/BaselineOfBuoy.class.st b/source/BaselineOfBuoy/BaselineOfBuoy.class.st index 614b100..9f6777b 100644 --- a/source/BaselineOfBuoy/BaselineOfBuoy.class.st +++ b/source/BaselineOfBuoy/BaselineOfBuoy.class.st @@ -141,7 +141,10 @@ BaselineOfBuoy >> baselineMath: spec [ spec requires: #( 'Buoy-Math-Extensions' 'Buoy-Math-Pharo-Extensions' 'Dependent-SUnit-Extensions' ) ]; - group: 'Tests' with: 'Buoy-Math-Tests' + group: 'Tests' with: 'Buoy-Math-Tests'; + package: 'Buoy-Math-Pharo-Extensions-Tests' with: [ + spec requires: 'Buoy-Math-Tests' ]; + group: 'Tests' with: 'Buoy-Math-Pharo-Extensions-Tests' ] { #category : #baselines } diff --git a/source/Buoy-Math-Pharo-Extensions-Tests/PerMilleTest.extension.st b/source/Buoy-Math-Pharo-Extensions-Tests/PerMilleTest.extension.st new file mode 100644 index 0000000..ff92be4 --- /dev/null +++ b/source/Buoy-Math-Pharo-Extensions-Tests/PerMilleTest.extension.st @@ -0,0 +1,10 @@ +Extension { #name : #PerMilleTest } + +{ #category : #'*Buoy-Math-Pharo-Extensions-Tests' } +PerMilleTest >> testStoreOnBase [ + + self + assert: ( 0 perMille storeStringBase: 16 ) equals: '16r0 perMille'; + assert: ( 1000 perMille storeStringBase: 16 ) equals: '16r3E8 perMille'; + assert: ( ( PerMille of: 12 ) storeStringBase: 16 ) equals: '16rC perMille' +] diff --git a/source/Buoy-Math-Pharo-Extensions-Tests/PercentageTest.extension.st b/source/Buoy-Math-Pharo-Extensions-Tests/PercentageTest.extension.st new file mode 100644 index 0000000..0fcf268 --- /dev/null +++ b/source/Buoy-Math-Pharo-Extensions-Tests/PercentageTest.extension.st @@ -0,0 +1,10 @@ +Extension { #name : #PercentageTest } + +{ #category : #'*Buoy-Math-Pharo-Extensions-Tests' } +PercentageTest >> testStoreOnBase [ + + self + assert: ( Percentage zero storeStringBase: 16 ) equals: 'Percentage zero'; + assert: ( Percentage oneHundred storeStringBase: 16 ) equals: 'Percentage oneHundred'; + assert: ( ( Percentage of: 12 ) storeStringBase: 16 ) equals: 'Percentage of: 16rC' +] diff --git a/source/Buoy-Math-Pharo-Extensions-Tests/package.st b/source/Buoy-Math-Pharo-Extensions-Tests/package.st new file mode 100644 index 0000000..7ec367d --- /dev/null +++ b/source/Buoy-Math-Pharo-Extensions-Tests/package.st @@ -0,0 +1 @@ +Package { #name : #'Buoy-Math-Pharo-Extensions-Tests' } diff --git a/source/Buoy-Math-Pharo-Extensions/PerMille.extension.st b/source/Buoy-Math-Pharo-Extensions/PerMille.extension.st new file mode 100644 index 0000000..d4bd8b2 --- /dev/null +++ b/source/Buoy-Math-Pharo-Extensions/PerMille.extension.st @@ -0,0 +1,17 @@ +Extension { #name : #PerMille } + +{ #category : #'*Buoy-Math-Pharo-Extensions' } +PerMille >> printOn: aStream base: anInteger [ + + self value printOn: aStream base: anInteger. + aStream nextPut: $‰ +] + +{ #category : #'*Buoy-Math-Pharo-Extensions' } +PerMille >> storeOn: aStream base: base [ + + self value storeOn: aStream base: base. + aStream + space; + nextPutAll: 'perMille' +] diff --git a/source/Buoy-Math-Pharo-Extensions/Percentage.extension.st b/source/Buoy-Math-Pharo-Extensions/Percentage.extension.st new file mode 100644 index 0000000..9644564 --- /dev/null +++ b/source/Buoy-Math-Pharo-Extensions/Percentage.extension.st @@ -0,0 +1,22 @@ +Extension { #name : #Percentage } + +{ #category : #'*Buoy-Math-Pharo-Extensions' } +Percentage >> printOn: aStream base: anInteger [ + + self value printOn: aStream base: anInteger. + aStream nextPut: $% +] + +{ #category : #'*Buoy-Math-Pharo-Extensions' } +Percentage >> storeOn: aStream base: base [ + + self isWellKnown ifTrue: [ self storeOn: aStream ] + ifFalse: [ + aStream + nextPutAll: self class name asString; + space; + nextPutAll: 'of:'; + space. + self value storeOn: aStream base: base + ] +] diff --git a/source/Buoy-Math-Tests/PerMilleTest.class.st b/source/Buoy-Math-Tests/PerMilleTest.class.st index 0508628..933dce6 100644 --- a/source/Buoy-Math-Tests/PerMilleTest.class.st +++ b/source/Buoy-Math-Tests/PerMilleTest.class.st @@ -387,15 +387,6 @@ PerMilleTest >> testStoreOn [ assert: (PerMille of: 12) storeString equals: '12 perMille' ] -{ #category : #'tests - printing' } -PerMilleTest >> testStoreOnBase [ - - self - assert: ( 0 perMille storeStringBase: 16 ) equals: '16r0 perMille'; - assert: ( 1000 perMille storeStringBase: 16 ) equals: '16r3E8 perMille'; - assert: ( ( PerMille of: 12 ) storeStringBase: 16 ) equals: '16rC perMille' -] - { #category : #'tests - testing' } PerMilleTest >> testStrictlyPositive [ diff --git a/source/Buoy-Math-Tests/PercentageTest.class.st b/source/Buoy-Math-Tests/PercentageTest.class.st index 4226bf0..f8eee69 100644 --- a/source/Buoy-Math-Tests/PercentageTest.class.st +++ b/source/Buoy-Math-Tests/PercentageTest.class.st @@ -387,15 +387,6 @@ PercentageTest >> testStoreOn [ assert: (Percentage of: 12) storeString equals: 'Percentage of: 12' ] -{ #category : #'tests - printing' } -PercentageTest >> testStoreOnBase [ - - self - assert: ( Percentage zero storeStringBase: 16 ) equals: 'Percentage zero'; - assert: ( Percentage oneHundred storeStringBase: 16 ) equals: 'Percentage oneHundred'; - assert: ( ( Percentage of: 12 ) storeStringBase: 16 ) equals: 'Percentage of: 16rC' -] - { #category : #'tests - testing' } PercentageTest >> testStrictlyPositive [ diff --git a/source/Buoy-Math/PerMille.class.st b/source/Buoy-Math/PerMille.class.st index 9234c58..c67dfae 100644 --- a/source/Buoy-Math/PerMille.class.st +++ b/source/Buoy-Math/PerMille.class.st @@ -13,13 +13,6 @@ PerMille class >> fraction [ ^ 1000 ] -{ #category : #printing } -PerMille >> printOn: aStream base: anInteger [ - - self value printOn: aStream base: anInteger. - aStream nextPut: $‰ -] - { #category : #printing } PerMille >> storeOn: aStream [ @@ -28,12 +21,3 @@ PerMille >> storeOn: aStream [ space; nextPutAll: 'perMille' ] - -{ #category : #printing } -PerMille >> storeOn: aStream base: base [ - - self value storeOn: aStream base: base. - aStream - space; - nextPutAll: 'perMille' -] diff --git a/source/Buoy-Math/Percentage.class.st b/source/Buoy-Math/Percentage.class.st index c71d4e5..a6eb903 100644 --- a/source/Buoy-Math/Percentage.class.st +++ b/source/Buoy-Math/Percentage.class.st @@ -48,13 +48,6 @@ Percentage >> isWellKnown [ ^ #( 0 1 ) includes: ratio ] -{ #category : #printing } -Percentage >> printOn: aStream base: anInteger [ - - self value printOn: aStream base: anInteger. - aStream nextPut: $% -] - { #category : #printing } Percentage >> storeOn: aStream [ @@ -75,17 +68,3 @@ Percentage >> storeOn: aStream [ space. self value storeOn: aStream ] - -{ #category : #printing } -Percentage >> storeOn: aStream base: base [ - - self isWellKnown ifTrue: [ self storeOn: aStream ] - ifFalse: [ - aStream - nextPutAll: self class name asString; - space; - nextPutAll: 'of:'; - space. - self value storeOn: aStream base: base - ] -] From 06091753f287492d7fc274c89302fa7930649dbd Mon Sep 17 00:00:00 2001 From: Mariano Saura Date: Wed, 9 Aug 2023 15:46:17 -0300 Subject: [PATCH 16/26] Add conditional block evaluation methods for GS64 --- .../TestCase.extension.st | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 source/Buoy-SUnit-GS64-Extensions/TestCase.extension.st diff --git a/source/Buoy-SUnit-GS64-Extensions/TestCase.extension.st b/source/Buoy-SUnit-GS64-Extensions/TestCase.extension.st new file mode 100644 index 0000000..64436fa --- /dev/null +++ b/source/Buoy-SUnit-GS64-Extensions/TestCase.extension.st @@ -0,0 +1,17 @@ +Extension { #name : #TestCase } + +{ #category : #'*Buoy-SUnit-GS64-Extensions' } +TestCase >> runOnlyInGemStone64: aBlock [ + + aBlock value +] + +{ #category : #'*Buoy-SUnit-GS64-Extensions' } +TestCase >> runOnlyInPharo: aBlock [ + +] + +{ #category : #'*Buoy-SUnit-GS64-Extensions' } +TestCase >> runOnlyInVAST: aBlock [ + +] From 9611fbb4eff2e5e7df8cbda5fcb7b4fb3c7a93b1 Mon Sep 17 00:00:00 2001 From: Mariano Saura Date: Wed, 9 Aug 2023 15:52:52 -0300 Subject: [PATCH 17/26] Add conditional block evaluation for Pharo --- source/BaselineOfBuoy/BaselineOfBuoy.class.st | 2 ++ .../TestCase.extension.st | 17 +++++++++++++++++ source/Buoy-SUnit-Pharo-Extensions/package.st | 1 + 3 files changed, 20 insertions(+) create mode 100644 source/Buoy-SUnit-Pharo-Extensions/TestCase.extension.st create mode 100644 source/Buoy-SUnit-Pharo-Extensions/package.st diff --git a/source/BaselineOfBuoy/BaselineOfBuoy.class.st b/source/BaselineOfBuoy/BaselineOfBuoy.class.st index 9f6777b..11fde2f 100644 --- a/source/BaselineOfBuoy/BaselineOfBuoy.class.st +++ b/source/BaselineOfBuoy/BaselineOfBuoy.class.st @@ -171,6 +171,8 @@ BaselineOfBuoy >> baselineSUnit: spec [ spec package: 'Buoy-SUnit-Model'; group: 'Dependent-SUnit-Extensions' with: 'Buoy-SUnit-Model'; + package: 'Buoy-SUnit-Pharo-Extensions'; + group: 'Dependent-SUnit-Extensions' with: 'Buoy-SUnit-Pharo-Extensions'; package: 'Buoy-SUnit-Tests' with: [ spec requires: 'Dependent-SUnit-Extensions' ]; group: 'Tests' with: 'Buoy-SUnit-Tests' ] diff --git a/source/Buoy-SUnit-Pharo-Extensions/TestCase.extension.st b/source/Buoy-SUnit-Pharo-Extensions/TestCase.extension.st new file mode 100644 index 0000000..30b6f96 --- /dev/null +++ b/source/Buoy-SUnit-Pharo-Extensions/TestCase.extension.st @@ -0,0 +1,17 @@ +Extension { #name : #TestCase } + +{ #category : #'*Buoy-SUnit-Pharo-Extensions' } +TestCase >> runOnlyInGemStone64: aBlock [ + +] + +{ #category : #'*Buoy-SUnit-Pharo-Extensions' } +TestCase >> runOnlyInPharo: aBlock [ + + aBlock value +] + +{ #category : #'*Buoy-SUnit-Pharo-Extensions' } +TestCase >> runOnlyInVAST: aBlock [ + +] diff --git a/source/Buoy-SUnit-Pharo-Extensions/package.st b/source/Buoy-SUnit-Pharo-Extensions/package.st new file mode 100644 index 0000000..d14887d --- /dev/null +++ b/source/Buoy-SUnit-Pharo-Extensions/package.st @@ -0,0 +1 @@ +Package { #name : #'Buoy-SUnit-Pharo-Extensions' } From 124a62030574f88b6d3df6f1f14e19b324b8c568 Mon Sep 17 00:00:00 2001 From: Mariano Saura Date: Wed, 9 Aug 2023 16:09:55 -0300 Subject: [PATCH 18/26] Platform conditional asserts on Percentage / PerMille tests --- source/Buoy-GS64-Compatibility/BinaryFloat.class.st | 5 +++++ .../BinaryFloat.extension.st | 7 +++++++ source/Buoy-Math-Tests/PerMilleTest.class.st | 5 ++++- source/Buoy-Math-Tests/PercentageTest.class.st | 5 ++++- 4 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 source/Buoy-GS64-Compatibility/BinaryFloat.class.st create mode 100644 source/Buoy-Math-GS64-Base-Extensions/BinaryFloat.extension.st diff --git a/source/Buoy-GS64-Compatibility/BinaryFloat.class.st b/source/Buoy-GS64-Compatibility/BinaryFloat.class.st new file mode 100644 index 0000000..a843540 --- /dev/null +++ b/source/Buoy-GS64-Compatibility/BinaryFloat.class.st @@ -0,0 +1,5 @@ +Class { + #name : #BinaryFloat, + #superclass : #Number, + #category : #'Buoy-GS64-Compatibility' +} diff --git a/source/Buoy-Math-GS64-Base-Extensions/BinaryFloat.extension.st b/source/Buoy-Math-GS64-Base-Extensions/BinaryFloat.extension.st new file mode 100644 index 0000000..60046e5 --- /dev/null +++ b/source/Buoy-Math-GS64-Base-Extensions/BinaryFloat.extension.st @@ -0,0 +1,7 @@ +Extension { #name : #BinaryFloat } + +{ #category : #'*Buoy-Math-GS64-Base-Extensions' } +BinaryFloat >> isInfinite [ + + ^ self kind = #infinity +] diff --git a/source/Buoy-Math-Tests/PerMilleTest.class.st b/source/Buoy-Math-Tests/PerMilleTest.class.st index 933dce6..c930301 100644 --- a/source/Buoy-Math-Tests/PerMilleTest.class.st +++ b/source/Buoy-Math-Tests/PerMilleTest.class.st @@ -74,7 +74,10 @@ PerMilleTest >> testDivisionWithFloats [ self assert: 0 perMille / 100.0 equals: 0.0; - should: [ 100.0 / 0 perMille ] raise: ZeroDivide; + runOnlyInPharo: [ + self should: [ 100.0 / 0 perMille ] raise: ZeroDivide ]; + runOnlyInGemStone64: [ + self assert: (100.0 / 0 perMille) isInfinite ]; assert: 1000 perMille / 5.0 equals: 0.2; assert: 5.0 / 1000 perMille equals: 5.0; assert: (PerMille of: 500) / 5.0 equals: 0.1; diff --git a/source/Buoy-Math-Tests/PercentageTest.class.st b/source/Buoy-Math-Tests/PercentageTest.class.st index f8eee69..bb29fa1 100644 --- a/source/Buoy-Math-Tests/PercentageTest.class.st +++ b/source/Buoy-Math-Tests/PercentageTest.class.st @@ -74,7 +74,10 @@ PercentageTest >> testDivisionWithFloats [ self assert: Percentage zero / 100.0 equals: 0.0; - should: [ 100.0 / Percentage zero ] raise: ZeroDivide; + runOnlyInPharo: [ + self should: [ 100.0 / Percentage zero ] raise: ZeroDivide ]; + runOnlyInGemStone64: [ + self assert: (100.0 / Percentage zero) isInfinite ]; assert: Percentage oneHundred / 5.0 equals: 0.2; assert: 5.0 / Percentage oneHundred equals: 5.0; assert: (Percentage of: 50) / 5.0 equals: 0.1; From 8bee1f8ac3fd289e1934768c45eccdf12a08ba3e Mon Sep 17 00:00:00 2001 From: Mariano Saura Date: Wed, 9 Aug 2023 16:21:45 -0300 Subject: [PATCH 19/26] Conditional assertions in tests to get 100% pass on Pharo/GS64 --- source/Buoy-Math-Tests/PerMilleTest.class.st | 13 +++++++++++-- source/Buoy-Math-Tests/PercentageTest.class.st | 13 +++++++++++-- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/source/Buoy-Math-Tests/PerMilleTest.class.st b/source/Buoy-Math-Tests/PerMilleTest.class.st index c930301..63b159d 100644 --- a/source/Buoy-Math-Tests/PerMilleTest.class.st +++ b/source/Buoy-Math-Tests/PerMilleTest.class.st @@ -63,9 +63,18 @@ PerMilleTest >> testCreationShortcut [ assert: 50 perMille equals: 1 / 20; assert: 5.0 perMille printString equals: '5.0‰'; assert: 50.0 perMille equals: 0.05; - assert: 5.0s2 perMille printString equals: '5.00s2‰'; + runOnlyInPharo: [ + self assert: 5.0s2 perMille printString equals: '5.00s2‰' ]; + runOnlyInGemStone64: [ "Scaled decimals printString ommit scale (bug in GS)" + self + should: [ + self assert: 5.0s2 perMille printString equals: '5.00s2‰' ] + raise: TestFailure ]; assert: 50.0s2 perMille equals: 0.05s2; - assert: (1 / 2) perMille printString equals: '(1/2)‰'; + runOnlyInPharo: [ + self assert: (1 / 2) perMille printString equals: '(1/2)‰' ]; + runOnlyInGemStone64: [ + self assert: (1 / 2) perMille printString equals: '1/2‰' ]; assert: (1 / 2) perMille equals: 1 / 2000 ] diff --git a/source/Buoy-Math-Tests/PercentageTest.class.st b/source/Buoy-Math-Tests/PercentageTest.class.st index bb29fa1..50e5bff 100644 --- a/source/Buoy-Math-Tests/PercentageTest.class.st +++ b/source/Buoy-Math-Tests/PercentageTest.class.st @@ -63,9 +63,18 @@ PercentageTest >> testCreationShortcut [ assert: 5 percent equals: 1 / 20; assert: 5.0 percent printString equals: '5.0%'; assert: 5.0 percent equals: 0.05; - assert: 5.0s2 percent printString equals: '5.00s2%'; + runOnlyInPharo: [ + self assert: 5.0s2 percent printString equals: '5.00s2%' ]; + runOnlyInGemStone64: [ "Scaled decimals printString ommit scale (bug in GS)" + self + should: [ + self assert: 5.0s2 percent printString equals: '5.00s2%' ] + raise: TestFailure ]; assert: 5.0s2 percent equals: 0.05s2; - assert: (1 / 2) percent printString equals: '(1/2)%'; + runOnlyInPharo: [ + self assert: (1 / 2) percent printString equals: '(1/2)%' ]; + runOnlyInGemStone64: [ + self assert: (1 / 2) percent printString equals: '1/2%' ]; assert: (1 / 2) percent equals: 1 / 200 ] From 644ee8d184378266b9f5e5e8bf2f56081399bc34 Mon Sep 17 00:00:00 2001 From: Gabriel Omar Cotelli Date: Wed, 9 Aug 2023 16:48:57 -0300 Subject: [PATCH 20/26] Update storeOn: implementation on PartsPerFraction --- .../Number.extension.st | 6 ----- .../PartsPerFraction.extension.st | 6 +++++ .../Buoy-Math-Tests/PercentageTest.class.st | 2 +- source/Buoy-Math/PerMille.class.st | 2 +- source/Buoy-Math/Percentage.class.st | 26 +++++++++---------- 5 files changed, 20 insertions(+), 22 deletions(-) diff --git a/source/Buoy-Math-GS64-Base-Extensions/Number.extension.st b/source/Buoy-Math-GS64-Base-Extensions/Number.extension.st index 9c1d9d7..16dd462 100644 --- a/source/Buoy-Math-GS64-Base-Extensions/Number.extension.st +++ b/source/Buoy-Math-GS64-Base-Extensions/Number.extension.st @@ -29,9 +29,3 @@ Number >> round: numberOfWishedDecimal [ ^ self roundTo: (10 raisedTo: numberOfWishedDecimal negated) ] - -{ #category : #'*Buoy-Math-GS64-Base-Extensions' } -Number >> storeOn: aStream [ - - self printOn: aStream -] diff --git a/source/Buoy-Math-Pharo-Extensions/PartsPerFraction.extension.st b/source/Buoy-Math-Pharo-Extensions/PartsPerFraction.extension.st index c346749..d5a5e1e 100644 --- a/source/Buoy-Math-Pharo-Extensions/PartsPerFraction.extension.st +++ b/source/Buoy-Math-Pharo-Extensions/PartsPerFraction.extension.st @@ -11,3 +11,9 @@ PartsPerFraction >> adaptToInteger: anInteger andSend: aSymbol [ ^anInteger adaptToInteger: ratio andSend: aSymbol ] + +{ #category : #'*Buoy-Math-Pharo-Extensions' } +PartsPerFraction >> storeValueOn: aStream [ + + self value storeOn: aStream +] diff --git a/source/Buoy-Math-Tests/PercentageTest.class.st b/source/Buoy-Math-Tests/PercentageTest.class.st index 50e5bff..223ebae 100644 --- a/source/Buoy-Math-Tests/PercentageTest.class.st +++ b/source/Buoy-Math-Tests/PercentageTest.class.st @@ -396,7 +396,7 @@ PercentageTest >> testStoreOn [ self assert: Percentage zero storeString equals: 'Percentage zero'; assert: Percentage oneHundred storeString equals: 'Percentage oneHundred'; - assert: (Percentage of: 12) storeString equals: 'Percentage of: 12' + assert: (Percentage of: 12) storeString equals: '12 percent' ] { #category : #'tests - testing' } diff --git a/source/Buoy-Math/PerMille.class.st b/source/Buoy-Math/PerMille.class.st index c67dfae..914e933 100644 --- a/source/Buoy-Math/PerMille.class.st +++ b/source/Buoy-Math/PerMille.class.st @@ -16,7 +16,7 @@ PerMille class >> fraction [ { #category : #printing } PerMille >> storeOn: aStream [ - self value storeOn: aStream. + self storeValueOn: aStream. aStream space; nextPutAll: 'perMille' diff --git a/source/Buoy-Math/Percentage.class.st b/source/Buoy-Math/Percentage.class.st index a6eb903..f017eaa 100644 --- a/source/Buoy-Math/Percentage.class.st +++ b/source/Buoy-Math/Percentage.class.st @@ -51,20 +51,18 @@ Percentage >> isWellKnown [ { #category : #printing } Percentage >> storeOn: aStream [ - ratio isZero - ifTrue: [ ^ aStream - nextPutAll: self class name asString; - space; - nextPutAll: 'zero' ]. - ratio = 1 - ifTrue: [ ^ aStream - nextPutAll: self class name asString; - space; - nextPutAll: 'oneHundred' ]. + ratio isZero ifTrue: [ + ^ aStream + nextPutAll: self class name asString; + space; + nextPutAll: 'zero' ]. + ratio = 1 ifTrue: [ + ^ aStream + nextPutAll: self class name asString; + space; + nextPutAll: 'oneHundred' ]. + self storeValueOn: aStream. aStream - nextPutAll: self class name asString; space; - nextPutAll: 'of:'; - space. - self value storeOn: aStream + nextPutAll: 'percent' ] From 535583acdb0184b45aa3efbc96325c0e634b1341 Mon Sep 17 00:00:00 2001 From: Gabriel Omar Cotelli Date: Wed, 9 Aug 2023 16:49:55 -0300 Subject: [PATCH 21/26] Update GS64 implementation for storeValueOn: --- .../Buoy-Math-GS64-Extensions/PartsPerFraction.extension.st | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/source/Buoy-Math-GS64-Extensions/PartsPerFraction.extension.st b/source/Buoy-Math-GS64-Extensions/PartsPerFraction.extension.st index 73eafa7..00ef472 100644 --- a/source/Buoy-Math-GS64-Extensions/PartsPerFraction.extension.st +++ b/source/Buoy-Math-GS64-Extensions/PartsPerFraction.extension.st @@ -23,3 +23,9 @@ PartsPerFraction >> printString [ ^ String streamContents: [ :stream | self printOn: stream ] ] + +{ #category : #'*Buoy-Math-GS64-Extensions' } +PartsPerFraction >> storeValueOn: aStream [ + + self value printOn: aStream +] From 6da57fe5a3c01104984b33a8a2d06eac1ddc4d5d Mon Sep 17 00:00:00 2001 From: Gabriel Omar Cotelli Date: Wed, 9 Aug 2023 16:51:45 -0300 Subject: [PATCH 22/26] Fix storeValueOn: --- .../Buoy-Math-GS64-Extensions/PartsPerFraction.extension.st | 6 ------ .../PartsPerFraction.extension.st | 6 ------ source/Buoy-Math/PartsPerFraction.class.st | 6 ++++++ 3 files changed, 6 insertions(+), 12 deletions(-) diff --git a/source/Buoy-Math-GS64-Extensions/PartsPerFraction.extension.st b/source/Buoy-Math-GS64-Extensions/PartsPerFraction.extension.st index 00ef472..73eafa7 100644 --- a/source/Buoy-Math-GS64-Extensions/PartsPerFraction.extension.st +++ b/source/Buoy-Math-GS64-Extensions/PartsPerFraction.extension.st @@ -23,9 +23,3 @@ PartsPerFraction >> printString [ ^ String streamContents: [ :stream | self printOn: stream ] ] - -{ #category : #'*Buoy-Math-GS64-Extensions' } -PartsPerFraction >> storeValueOn: aStream [ - - self value printOn: aStream -] diff --git a/source/Buoy-Math-Pharo-Extensions/PartsPerFraction.extension.st b/source/Buoy-Math-Pharo-Extensions/PartsPerFraction.extension.st index d5a5e1e..c346749 100644 --- a/source/Buoy-Math-Pharo-Extensions/PartsPerFraction.extension.st +++ b/source/Buoy-Math-Pharo-Extensions/PartsPerFraction.extension.st @@ -11,9 +11,3 @@ PartsPerFraction >> adaptToInteger: anInteger andSend: aSymbol [ ^anInteger adaptToInteger: ratio andSend: aSymbol ] - -{ #category : #'*Buoy-Math-Pharo-Extensions' } -PartsPerFraction >> storeValueOn: aStream [ - - self value storeOn: aStream -] diff --git a/source/Buoy-Math/PartsPerFraction.class.st b/source/Buoy-Math/PartsPerFraction.class.st index 3a05223..192cea1 100644 --- a/source/Buoy-Math/PartsPerFraction.class.st +++ b/source/Buoy-Math/PartsPerFraction.class.st @@ -134,6 +134,12 @@ PartsPerFraction >> sqrt [ ^ ratio sqrt ] +{ #category : #private } +PartsPerFraction >> storeValueOn: aStream [ + + self value printOn: aStream +] + { #category : #evaluating } PartsPerFraction >> value [ From 00085798ebe8f2503954dafe1519086070aefcf6 Mon Sep 17 00:00:00 2001 From: Gabriel Omar Cotelli Date: Wed, 9 Aug 2023 16:54:33 -0300 Subject: [PATCH 23/26] Update testCreationShortcut --- source/Buoy-Math-Tests/PerMilleTest.class.st | 7 ++----- source/Buoy-Math-Tests/PercentageTest.class.st | 7 ++----- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/source/Buoy-Math-Tests/PerMilleTest.class.st b/source/Buoy-Math-Tests/PerMilleTest.class.st index 63b159d..d9d03dc 100644 --- a/source/Buoy-Math-Tests/PerMilleTest.class.st +++ b/source/Buoy-Math-Tests/PerMilleTest.class.st @@ -65,11 +65,8 @@ PerMilleTest >> testCreationShortcut [ assert: 50.0 perMille equals: 0.05; runOnlyInPharo: [ self assert: 5.0s2 perMille printString equals: '5.00s2‰' ]; - runOnlyInGemStone64: [ "Scaled decimals printString ommit scale (bug in GS)" - self - should: [ - self assert: 5.0s2 perMille printString equals: '5.00s2‰' ] - raise: TestFailure ]; + runOnlyInGemStone64: [ + self assert: 5.0s2 perMille printString equals: '5.00‰' ]; assert: 50.0s2 perMille equals: 0.05s2; runOnlyInPharo: [ self assert: (1 / 2) perMille printString equals: '(1/2)‰' ]; diff --git a/source/Buoy-Math-Tests/PercentageTest.class.st b/source/Buoy-Math-Tests/PercentageTest.class.st index 223ebae..bfbddb0 100644 --- a/source/Buoy-Math-Tests/PercentageTest.class.st +++ b/source/Buoy-Math-Tests/PercentageTest.class.st @@ -65,11 +65,8 @@ PercentageTest >> testCreationShortcut [ assert: 5.0 percent equals: 0.05; runOnlyInPharo: [ self assert: 5.0s2 percent printString equals: '5.00s2%' ]; - runOnlyInGemStone64: [ "Scaled decimals printString ommit scale (bug in GS)" - self - should: [ - self assert: 5.0s2 percent printString equals: '5.00s2%' ] - raise: TestFailure ]; + runOnlyInGemStone64: [ + self assert: 5.0s2 percent printString equals: '5.00%' ]; assert: 5.0s2 percent equals: 0.05s2; runOnlyInPharo: [ self assert: (1 / 2) percent printString equals: '(1/2)%' ]; From e1a60052be01219c5d17346d975fb6d261827153 Mon Sep 17 00:00:00 2001 From: Gabriel Omar Cotelli Date: Wed, 9 Aug 2023 16:59:23 -0300 Subject: [PATCH 24/26] Use per-mille symbol as string --- source/Buoy-Math-GS64-Extensions/PerMille.extension.st | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/Buoy-Math-GS64-Extensions/PerMille.extension.st b/source/Buoy-Math-GS64-Extensions/PerMille.extension.st index 79fc713..d3cfdf0 100644 --- a/source/Buoy-Math-GS64-Extensions/PerMille.extension.st +++ b/source/Buoy-Math-GS64-Extensions/PerMille.extension.st @@ -4,5 +4,5 @@ Extension { #name : #PerMille } PerMille >> printOn: stream [ super printOn: stream. - stream nextPut: $‰ + stream nextPutAll: '‰' ] From ca4aa1277a100a0047f4788cfbd73dcd496564b7 Mon Sep 17 00:00:00 2001 From: Gabriel Omar Cotelli Date: Wed, 9 Aug 2023 17:12:01 -0300 Subject: [PATCH 25/26] Improve precision of PerMilleTest>>#testCreationShortcut --- source/Buoy-Math-Tests/PerMilleTest.class.st | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/Buoy-Math-Tests/PerMilleTest.class.st b/source/Buoy-Math-Tests/PerMilleTest.class.st index d9d03dc..43bd2f0 100644 --- a/source/Buoy-Math-Tests/PerMilleTest.class.st +++ b/source/Buoy-Math-Tests/PerMilleTest.class.st @@ -61,12 +61,12 @@ PerMilleTest >> testCreationShortcut [ self assert: 5 perMille printString equals: '5‰'; assert: 50 perMille equals: 1 / 20; - assert: 5.0 perMille printString equals: '5.0‰'; + assert: 50.0 perMille printString equals: '50.0‰'; assert: 50.0 perMille equals: 0.05; runOnlyInPharo: [ - self assert: 5.0s2 perMille printString equals: '5.00s2‰' ]; + self assert: 50.0s2 perMille printString equals: '50.00s2‰' ]; runOnlyInGemStone64: [ - self assert: 5.0s2 perMille printString equals: '5.00‰' ]; + self assert: 50.0s2 perMille printString equals: '50.00‰' ]; assert: 50.0s2 perMille equals: 0.05s2; runOnlyInPharo: [ self assert: (1 / 2) perMille printString equals: '(1/2)‰' ]; From b4c909fe49aa4cf16e5b5c36ee581b2e211520ca Mon Sep 17 00:00:00 2001 From: Gabriel Omar Cotelli Date: Wed, 9 Aug 2023 17:21:44 -0300 Subject: [PATCH 26/26] Improve comments for GS64 class placeholders --- source/Buoy-GS64-Compatibility/BinaryFloat.class.st | 6 ++++++ source/Buoy-GS64-Compatibility/ClassOrganizer.class.st | 8 +++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/source/Buoy-GS64-Compatibility/BinaryFloat.class.st b/source/Buoy-GS64-Compatibility/BinaryFloat.class.st index a843540..cb9b41b 100644 --- a/source/Buoy-GS64-Compatibility/BinaryFloat.class.st +++ b/source/Buoy-GS64-Compatibility/BinaryFloat.class.st @@ -1,3 +1,9 @@ +" +BinaryFloat is an abstract class in GS64, the superclass of different implementations of Binary +floating point. +This version is just a placeholder so we can easily create extensions methods to load in GS64 specific +packages. +" Class { #name : #BinaryFloat, #superclass : #Number, diff --git a/source/Buoy-GS64-Compatibility/ClassOrganizer.class.st b/source/Buoy-GS64-Compatibility/ClassOrganizer.class.st index 6b4afc5..f3b5f71 100644 --- a/source/Buoy-GS64-Compatibility/ClassOrganizer.class.st +++ b/source/Buoy-GS64-Compatibility/ClassOrganizer.class.st @@ -1,7 +1,9 @@ " -In GS64, a `ClassOrganizer` can answer queries about classes in the image, provides - tools and reports on information on classes and methods and can perform - cross-referencing and fileout. +In GS64, a `ClassOrganizer` can answer queries about classes in the image, provides tools and reports +on information on classes and methods and can perform cross-referencing and fileout. + +This version is just a placeholder so we can easily create extension methods referencing this class +in GS64 specific packages. " Class { #name : #ClassOrganizer,