1
0
mirror of https://github.com/sjwhitworth/golearn.git synced 2025-04-26 13:49:14 +08:00
golearn/trees/isolation_test.go

43 lines
947 B
Go
Raw Normal View History

2020-08-25 09:59:19 +05:30
package trees
import (
"testing"
. "github.com/smartystreets/goconvey/convey"
)
func TestIsolation(t *testing.T) {
Convey("Doing an Isolation Forest Test", t, func() {
var data [][]float64
data = append(data, []float64{8, 9, 8, 3})
data = append(data, []float64{4, 2, 5, 3})
data = append(data, []float64{3, 2, 5, 9})
data = append(data, []float64{2, 1, 5, 9})
featureChosen := selectFeature(data)
So(featureChosen, ShouldNotBeNil)
min, max := minMax(0, data)
So(min, ShouldEqual, 2)
So(max, ShouldEqual, 8)
min, max = minMax(featureChosen, data)
val := selectValue(min, max)
So(val, ShouldBeBetween, min, max)
leftData, rightData := splitData(val, featureChosen, data)
So(len(leftData), ShouldBeGreaterThan, 0)
So(len(rightData), ShouldBeGreaterThan, 0)
checked := checkData(data)
So(checked, ShouldBeTrue)
randomSubset := getRandomData(data, 2)
So(len(randomSubset), ShouldEqual, 2)
})
}