@@ -9,43 +9,108 @@ sub is-smr-map($arg) {
99
1010my $dsData = ML::SparseMatrixRecommender::Utilities::get-titanic-dataset();
1111
12+ plan *;
13+
14+ #==========================================================
1215## 1
16+ #==========================================================
1317is $dsData ~~ (Array:D | List:D) && $dsData.all ~~ Map:D, True, 'expected data shape';
1418
19+ #==========================================================
1520## 2
16- ok
17- ML::SparseMatrixRecommender.new.create-from-wide-form($dsData, item-column-name => 'id', tag-types => Whatever, :!add-tag-types-to-column-name),
18- 'ok creation from wide form';
19-
20- my $smr =
21- ML::SparseMatrixRecommender
22- .new
23- .create-from-wide-form(
24- $dsData,
21+ #==========================================================
22+ subtest {
23+ ## 1
24+ ok
25+ ML::SparseMatrixRecommender
26+ .new
27+ .create-from-wide-form(
28+ $dsData,
29+ item-column-name => 'id',
30+ tag-types => Whatever,
31+ :!add-tag-types-to-column-name,
32+ :!native),
33+ 'ok creation from wide form';
34+
35+ my $smr =
36+ ML::SparseMatrixRecommender
37+ .new
38+ .create-from-wide-form(
39+ $dsData,
40+ item-column-name => 'id',
41+ tag-types => Whatever,
42+ :!add-tag-types-to-column-names
43+ )
44+ .apply-term-weight-functions(
45+ global-weight-func => "IDF",
46+ local-weight-func => "None",
47+ normalizer-func => "Cosine"
48+ );
49+
50+ ## 3
51+ ok ML::SparseMatrixRecommender.new($smr.take-matrices);
52+
53+ ## 4
54+ my $smr-new = ML::SparseMatrixRecommender.new($smr.take-matrices);
55+
56+ is
57+ $smr-new.take-matrices ~~ Map:D && $smr-new.take-matrices.values.all ~~ Math::SparseMatrix:D,
58+ True,
59+ "smr-new has valid matricss";
60+
61+ ## 5
62+ is $smr-new.take-M eqv $smr.take-M, True, "M matrices are equal";
63+ }, 'wide form, not native';
64+
65+ #==========================================================
66+ ## 3
67+ #==========================================================
68+ subtest {
69+ ## 1
70+ ok
71+ ML::SparseMatrixRecommender
72+ .new
73+ .create-from-wide-form(
74+ $dsData,
75+ item-column-name => 'id',
76+ tag-types => Whatever,
77+ :!add-tag-types-to-column-name,
78+ :native),
79+ 'ok creation from wide form';
80+
81+ my $smr =
82+ ML::SparseMatrixRecommender
83+ .new
84+ .create-from-wide-form(
85+ $dsData,
2586 item-column-name => 'id',
2687 tag-types => Whatever,
2788 :!add-tag-types-to-column-names
28- )
29- .apply-term-weight-functions(
89+ )
90+ .apply-term-weight-functions(
3091 global-weight-func => "IDF",
3192 local-weight-func => "None",
3293 normalizer-func => "Cosine"
33- );
94+ );
3495
35- ## 3
36- ok ML::SparseMatrixRecommender.new($smr.take-matrices);
96+ ## 3
97+ ok ML::SparseMatrixRecommender.new($smr.take-matrices);
3798
38- ## 4
39- my $smr-new = ML::SparseMatrixRecommender.new($smr.take-matrices);
99+ ## 4
100+ my $smr-new = ML::SparseMatrixRecommender.new($smr.take-matrices);
40101
41- is
42- $smr-new.take-matrices ~~ Map:D && $smr-new.take-matrices.values.all ~~ Math::SparseMatrix:D,
43- True,
44- "smr-new has valid matricss";
102+ is
103+ $smr-new.take-matrices ~~ Map:D && $smr-new.take-matrices.values.all ~~ Math::SparseMatrix:D,
104+ True,
105+ "smr-new has valid matricss";
45106
46- ## 5
47- is $smr-new.take-M eqv $smr.take-M, True, "M matrices are equal";
107+ ## 5
108+ is $smr-new.take-M eqv $smr.take-M, True, "M matrices are equal";
109+ }, 'wide form, native';
48110
111+ #==========================================================
112+ ## 4
113+ #==========================================================
49114subtest {
50115 my @long =
51116 <passengerAge passengerClass passengerSex passengerSurvival>
0 commit comments