Skip to content

Commit d1b7f3a

Browse files
authored
added regression tests for invert-categorical-map (#415)
1 parent 295f98c commit d1b7f3a

File tree

4 files changed

+116
-1
lines changed

4 files changed

+116
-1
lines changed

.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,4 +32,6 @@ __pycache__
3232
repro
3333
java_test/test.parquet
3434
java_test/test.arrow
35-
java_test/simulation*
35+
java_test/simulation*
36+
.idea
37+
.calva

.vscode/settings.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"java.compile.nullAnalysis.mode": "disabled"
3+
}

java_test/java/jtest/ConfigTest.java

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package jtest;
2+
3+
import com.oracle.labs.mlrg.olcut.config.Configurable;
4+
import com.oracle.labs.mlrg.olcut.config.ConfigurationData;
5+
import com.oracle.labs.mlrg.olcut.config.ConfigurationManager;
6+
import com.oracle.labs.mlrg.olcut.config.DescribeConfigurable;
7+
import com.oracle.labs.mlrg.olcut.config.property.Property;
8+
import com.oracle.labs.mlrg.olcut.config.property.SimpleProperty;
9+
import org.tribuo.classification.dtree.CARTClassificationTrainer;
10+
import org.tribuo.classification.dtree.impurity.Entropy;
11+
import org.tribuo.classification.dtree.impurity.GiniIndex;
12+
import org.tribuo.classification.dtree.impurity.LabelImpurity;
13+
14+
import java.util.HashMap;
15+
import java.util.Map;
16+
import java.util.SortedMap;
17+
18+
public class ConfigTest {
19+
20+
public static final void describe () {
21+
22+
}
23+
public static void main(String[] args) {
24+
25+
Class clazz = CARTClassificationTrainer.class;
26+
27+
SortedMap<String, DescribeConfigurable.FieldInfo> generateFieldInfos = DescribeConfigurable.generateFieldInfo(clazz);
28+
29+
30+
//System.out.println("DescribeConfigurable.generateFieldInfo(CARTClassificationTrainer.class) = " + generateFieldInfo);
31+
ConfigurationManager cm = new ConfigurationManager();
32+
DescribeConfigurable dc = new DescribeConfigurable();
33+
34+
35+
36+
Map<String, Property> properties = Map.of(
37+
"maxDepth", new SimpleProperty("20"),
38+
"minImpurityDecrease",new SimpleProperty("0.5"),
39+
"impurity",new SimpleProperty("entropy")
40+
);
41+
ConfigurationData configData0 = new ConfigurationData("entropy", Entropy.class.getName());
42+
cm.addConfiguration(configData0);
43+
ConfigurationData configData1 = new ConfigurationData(CARTClassificationTrainer.class.getName(), clazz.getName(),properties);
44+
45+
cm.addConfiguration(configData1);
46+
Configurable lookup = cm.lookup(clazz.getName());
47+
System.out.println(lookup);
48+
49+
50+
}
51+
}

test/tech/v3/dataset/categorical_test.clj

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,3 +87,62 @@
8787
(get :y)
8888
distinct
8989
set))))
90+
91+
92+
(defn- =-invert-cat [target-1 target-2
93+
lookup-one lookup-two
94+
result-datatype
95+
expected-result
96+
]
97+
(let [ds (ds/->dataset {:target [target-1 target-2]})
98+
inverted
99+
(ds-cat/invert-categorical-map ds
100+
{:lookup-table {:one lookup-one
101+
:two lookup-two},
102+
:src-column :target,
103+
:result-datatype result-datatype})
104+
inverted-target (-> inverted :target)]
105+
(= expected-result inverted-target)))
106+
;(format "expected %s, found: %s" expected-result) (seq inverted-target)))
107+
108+
(deftest invert-cat--works
109+
(is
110+
(=-invert-cat 1 2
111+
1 2
112+
:int
113+
[:one :two]))
114+
; TODO - should pass ?
115+
(is (=-invert-cat 1.0 2.0
116+
1 2
117+
:int
118+
[:one :two]))
119+
120+
; TODO - should pass ?
121+
(is (=-invert-cat 1.99999 2.99999
122+
1 2
123+
:int
124+
[:one :two]))
125+
126+
; TODO - should pass ?
127+
(is (=-invert-cat 1.2 1.3
128+
1 2
129+
:int
130+
[:one :one])))
131+
132+
(deftest invert-cat--throws
133+
(is (thrown? Exception
134+
(=-invert-cat 1 2
135+
4 5
136+
:int
137+
[:one :two])))
138+
;; => Execution error at tech.v3.dataset.categorical/invert-categorical-map$fn (categorical.clj:177).
139+
;; Unable to find src value for numeric value 1
140+
141+
(is (thrown? Exception
142+
(=-invert-cat 1 2
143+
1.0 2.0
144+
:int
145+
[:one :two]))))
146+
;; => Execution error at tech.v3.dataset.categorical/invert-categorical-map$fn (categorical.clj:177).
147+
;; Unable to find src value for numeric value 1
148+

0 commit comments

Comments
 (0)