@@ -32,33 +32,58 @@ DataFrameStatsTest >> testAverage [
3232 self assert: actual closeTo: expected
3333]
3434
35+ { #category : #tests }
36+ DataFrameStatsTest >> testAverageWithNils [
37+
38+ | expected actual |
39+ df := DataFrame withRows: #( #( 1 1 ) #( 2 nil ) #( nil 3 ) #( 4 4 ) ).
40+ df columnNames: #( dogs cats ) .
41+
42+ expected := {
43+ (7 / 3 ).
44+ (8 / 3 ) } asDataSeries.
45+ expected name: #average .
46+ expected keys: df columnNames.
47+
48+ actual := df average.
49+ self assert: actual closeTo: expected
50+ ]
51+
3552{ #category : #tests }
3653DataFrameStatsTest >> testCorrelationMatrix [
3754
3855 | expectedCorrelationMatrix actualCorrelationMatrix |
3956 expectedCorrelationMatrix := DataFrame withRows:
40- #( #( 1 0.311398 0.538922 0.454601 )
41- #( 0.311398 1 -0.321281 -0.308023 )
42- #( 0.538922 -0.321281 1 0.982956 )
43- #( 0.454601 -0.308023 0.982956
44- 1 ) ).
45- expectedCorrelationMatrix columnNames:
46- #( sepalLength sepalWidth petalLength petalWidth ) .
47- expectedCorrelationMatrix rowNames:
48- #( sepalLength sepalWidth petalLength petalWidth ) .
57+ #( #( 1 0.311398 0.538922 0.454601 ) #( 0.311398 1 -0.321281 -0.308023 ) #( 0.538922 -0.321281 1 0.982956 )
58+ #( 0.454601 -0.308023 0.982956 1 ) ).
59+ expectedCorrelationMatrix columnNames: #( sepalLength sepalWidth petalLength petalWidth ) .
60+ expectedCorrelationMatrix rowNames: #( sepalLength sepalWidth petalLength petalWidth ) .
4961 actualCorrelationMatrix := df correlationMatrix.
50- self
51- assert: actualCorrelationMatrix rowNames
52- equals: expectedCorrelationMatrix rowNames.
53- self
54- assert: actualCorrelationMatrix columnNames
55- equals: expectedCorrelationMatrix columnNames.
62+ self assert: actualCorrelationMatrix rowNames equals: expectedCorrelationMatrix rowNames.
63+ self assert: actualCorrelationMatrix columnNames equals: expectedCorrelationMatrix columnNames.
64+
65+ 1 to: actualCorrelationMatrix numberOfColumns do: [ :j |
66+ 1 to: actualCorrelationMatrix numberOfRows do: [ :i | self assert: (actualCorrelationMatrix at: i at: j) closeTo: (expectedCorrelationMatrix at: i at: j) ] ]
67+ ]
68+
69+ { #category : #tests }
70+ DataFrameStatsTest >> testCorrelationMatrixWithNils [
71+
72+ | expectedCorrelationMatrix actualCorrelationMatrix |
73+ df := DataFrame withRows: #( #( 1 1 ) #( 2 nil ) #( nil 3 ) #( 4 4 ) ).
74+ df columnNames: #( dogs cats ) .
75+
76+ expectedCorrelationMatrix := DataFrame withRows: #( #( 1 0.4174555390689118 ) #( 0.4174555390689118 1 ) ).
77+ expectedCorrelationMatrix columnNames: #( dogs cats ) .
78+ expectedCorrelationMatrix rowNames: #( dogs cats ) .
79+
80+ actualCorrelationMatrix := df correlationMatrix.
81+
82+ self assert: actualCorrelationMatrix rowNames equals: expectedCorrelationMatrix rowNames.
83+ self assert: actualCorrelationMatrix columnNames equals: expectedCorrelationMatrix columnNames.
5684
5785 1 to: actualCorrelationMatrix numberOfColumns do: [ :j |
58- 1 to: actualCorrelationMatrix numberOfRows do: [ :i |
59- self
60- assert: (actualCorrelationMatrix at: i at: j)
61- closeTo: (expectedCorrelationMatrix at: i at: j) ] ]
86+ 1 to: actualCorrelationMatrix numberOfRows do: [ :i | self assert: (actualCorrelationMatrix at: i at: j) closeTo: (expectedCorrelationMatrix at: i at: j) ] ]
6287]
6388
6489{ #category : #tests }
0 commit comments