-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMyID3Test.java
More file actions
131 lines (115 loc) · 4.83 KB
/
MyID3Test.java
File metadata and controls
131 lines (115 loc) · 4.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
package decisiontree;
import org.junit.Test;
import support.decisiontree.Attribute;
import support.decisiontree.DataReader;
import support.decisiontree.DecisionTreeData;
import static org.junit.Assert.assertTrue;
import java.util.ArrayList;
/**
* This class can be used to test the functionality of your MyID3 implementation.
* Use the Heap stencil and your heap tests as a guide!
*
*/
public class MyID3Test {
/**
* A test that just makes sure that there are no errors in getting a filepath for data
*/
@Test
public void simpleTest() {
MyID3 id3 = new MyID3();
// This creates a DecisionTreeData object that you can use for testing.
//DecisionTreeData shortData = DataReader.readFile("/course/cs0160/lib/decisiontree-data/short-data-training.csv");
DecisionTreeData shortData = DataReader.readFile("/Users/Arvind/Desktop/cs16/src/decisiontree/decisiontree-data/short-data-training.csv");
}
/**
* Tests whether the calculateMaxInfoAttribute method works as intended
*/
@Test
public void checkMaxAttribute(){
MyID3 id3 = new MyID3();
DecisionTreeData shortData = DataReader.readFile("/Users/Arvind/Desktop/cs16/src/decisiontree/decisiontree-data/short-data-training.csv");
ArrayList<Attribute> shortDataList = shortData.getAttributeList();
assertTrue(id3.calculateMaxInfoAttribute(shortData, shortDataList).getName().equals(" Pat"));
}
/**
* Tests whether the findMostFrequentClassification method works as intended
*/
@Test
public void checkMostFrequentClassification(){
MyID3 id3 = new MyID3();
DecisionTreeData shortData = DataReader.readFile("/Users/Arvind/Desktop/cs16/src/decisiontree/decisiontree-data/short-data-training.csv");
assertTrue(id3.findMostFrequentClassification(shortData).equals(" true"));
}
/**
* Tests whether the checkDataEmpty method works as intended
*/
@Test
public void checkDataEmpty(){
MyID3 id3 = new MyID3();
DecisionTreeData shortData = DataReader.readFile("/Users/Arvind/Desktop/cs16/src/decisiontree/decisiontree-data/short-data-training.csv");
assertTrue(id3.checkDataEmpty(shortData) == false);
}
/**
* Tests whether the checkAttibutesEmpty method works as intended
*/
@Test
public void checkAttributesEmpty(){
MyID3 id3 = new MyID3();
DecisionTreeData shortData = DataReader.readFile("/Users/Arvind/Desktop/cs16/src/decisiontree/decisiontree-data/short-data-training.csv");
ArrayList<Attribute> shortDataList = shortData.getAttributeList();
assertTrue(id3.checkAttributesEmpty(shortDataList) == false);
}
/**
* Tests whether the sameClassificationCheck method works as intended
*/
@Test
public void checkSameClassification(){
MyID3 id3 = new MyID3();
DecisionTreeData shortData = DataReader.readFile("/Users/Arvind/Desktop/cs16/src/decisiontree/decisiontree-data/short-data-training.csv");
assertTrue(id3.sameClassificationCheck(shortData) == false);
}
/**
* Tests whether the entropy calculation method works as intended
*/
@Test
public void checkEntropy(){
MyID3 id3 = new MyID3();
DecisionTreeData shortData = DataReader.readFile("/Users/Arvind/Desktop/cs16/src/decisiontree/decisiontree-data/short-data-training.csv");
assertTrue(id3.calculateEntropy(shortData) == 0.9544340029249649);
}
/**
* Tests whether the information calculation method works as intended
*/
@Test
public void checkInformation(){
MyID3 id3 = new MyID3();
DecisionTreeData shortData = DataReader.readFile("/Users/Arvind/Desktop/cs16/src/decisiontree/decisiontree-data/short-data-training.csv");
ArrayList<Attribute> shortDataList = shortData.getAttributeList();
Attribute pat = id3.calculateMaxInfoAttribute(shortData, shortDataList);
assertTrue(id3.calculateRemainder(shortData, pat) == 0.5);
}
/**
* Tests whether new data is properly initialized in the newDataInitializer method
*/
@Test
public void checkNewDataInitializer(){
MyID3 id3 = new MyID3();
DecisionTreeData shortData = DataReader.readFile("/Users/Arvind/Desktop/cs16/src/decisiontree/decisiontree-data/short-data-training.csv");
ArrayList<Attribute> shortDataList = shortData.getAttributeList();
Attribute pat = id3.calculateMaxInfoAttribute(shortData, shortDataList);
DecisionTreeData testData = id3.newDataInitializer(shortData, pat, " None", shortDataList);
assertTrue(testData.getExamples().length == 1);
DecisionTreeData newTestData = id3.newDataInitializer(shortData, pat, " Full", shortDataList);
assertTrue(newTestData.getExamples().length == 4);
}
/**
* Tests whether the maxInfoAttributeIndex method works as intended
*/
@Test
public void testMaxInfoAttributeIndex(){
MyID3 id3 = new MyID3();
DecisionTreeData shortData = DataReader.readFile("/Users/Arvind/Desktop/cs16/src/decisiontree/decisiontree-data/short-data-training.csv");
ArrayList<Attribute> shortDataList = shortData.getAttributeList();
assertTrue(id3.maxInfoAttributeIndex(shortData, shortDataList) == 4);
}
}