BeforeEach(func() { inputSet = il.InputLog{ {}, {"0", "1", "3"}, {"1", "3"}, {"0", "3"}, {"0", "1", "2", "3"}, {"0", "1", "3"}, {"0", "1"}, {"0", "2", "4"}, {"2", "4"}, {"4", "1"}, {"0", "4", "2"}, } myForest = pf.New() myForest.Train(il.Interface(inputSet)) }) Describe("Making a prediction", func() { It("adds a key that should be there", func() { Expect(myForest.Predict([]string{"0", "1"})).To(Equal([]string{"0", "1", "3"})) }) It("removes a key that doesn't belong", func() { Expect(myForest.Predict([]string{"0", "1", "2", "3"})).To(Equal([]string{"0", "1", "3"})) }) It("finds keys associated with a key", func() { Expect(myForest.Predict([]string{"4"})).To(Equal([]string{"0", "1", "2"})) })
{"1", "2"}, {"0", "1", "2"}, {}, {"0"}, } }) It("Builds a map of decision trees targeted at each input", func() { gomock.InOrder( mockDecisionTree.EXPECT().Train(gomock.Any(), gomock.Any()), mockDecisionTree.EXPECT().Train(gomock.Any(), gomock.Any()), mockDecisionTree.EXPECT().Train(gomock.Any(), gomock.Any()), mockDecisionTree.EXPECT().Train(gomock.Any(), gomock.Any()), ) myForest = pf.New().(*pf.PredictionForest) myForest.Train(predictionForestInputSet) }) }) Describe("Predict", func() { var ( mockHelloTree, mockWorldTree *mdt.MockInterface ) BeforeEach(func() { mockHelloTree = mdt.NewMockInterface(mockCtrl) mockWorldTree = mdt.NewMockInterface(mockCtrl) myForest = pf.New().(*pf.PredictionForest) myForest.Trees["hello"] = mockHelloTree