From 39f003eb3b75a00b63af722ecb009c722bb8a0d9 Mon Sep 17 00:00:00 2001 From: Joshua-Dias-Barreto Date: Mon, 8 May 2023 19:55:18 +0530 Subject: [PATCH] Added countNils and countNonNils methods for the DataSeries class along with tests. --- src/DataFrame-Tests/DataSeriesTest.class.st | 26 +++++++++++++++++++++ src/DataFrame/DataSeries.class.st | 14 +++++++++++ 2 files changed, 40 insertions(+) diff --git a/src/DataFrame-Tests/DataSeriesTest.class.st b/src/DataFrame-Tests/DataSeriesTest.class.st index 9847c149..08eea389 100644 --- a/src/DataFrame-Tests/DataSeriesTest.class.st +++ b/src/DataFrame-Tests/DataSeriesTest.class.st @@ -1058,6 +1058,32 @@ DataSeriesTest >> testCopyChangeDoesNotAffectOriginal [ self assert: original equals: expectedOriginalAfterChange ] +{ #category : #'tests - statistics' } +DataSeriesTest >> testCountNils [ + + | seriesWithNils | + keyArray := #( a b c d e f g h i j k ). + + seriesWithNils := DataSeries + withKeys: keyArray + values: #( 3 7 6 20 nil 9 nil 10 15 13 nil ) + name: 'ExampleSeries'. + self assert: seriesWithNils countNils equals: 3 +] + +{ #category : #'tests - statistics' } +DataSeriesTest >> testCountNonNils [ + + | seriesWithNils | + keyArray := #( a b c d e f g h i j k ). + + seriesWithNils := DataSeries + withKeys: keyArray + values: #( 3 7 6 20 nil 9 nil 10 15 13 nil ) + name: 'ExampleSeries'. + self assert: seriesWithNils countNonNils equals: 8 +] + { #category : #'tests - creation' } DataSeriesTest >> testCreateDataSeriesAsDataSeries [ diff --git a/src/DataFrame/DataSeries.class.st b/src/DataFrame/DataSeries.class.st index 877c255a..3d03c778 100644 --- a/src/DataFrame/DataSeries.class.st +++ b/src/DataFrame/DataSeries.class.st @@ -236,6 +236,20 @@ DataSeries >> correlationWith: otherSeries using: aCorrelationCoefficient [ ^ aCorrelationCoefficient between: self and: otherSeries ] +{ #category : #statistics } +DataSeries >> countNils [ + "Returns the number of nil values in the data series" + + ^ self count: [ :each | each isNil ] +] + +{ #category : #statistics } +DataSeries >> countNonNils [ + "Returns the number of non-nil values in the data series" + + ^ self count: [ :each | each isNotNil ] +] + { #category : #statistics } DataSeries >> crossTabulateWith: aSeries [ "A DataFrame is returned which is useful in quantitatively analyzing the relationship of values in one data series with the values in another data series"