public void EndToEndBagging() { uint numActions = 10; uint numbags = 2; TestRecorder <SimpleContext> recorder = new TestRecorder <SimpleContext>(); TestSimplePolicy[] policies = new TestSimplePolicy[numbags]; for (int i = 0; i < numbags; i++) { policies[i] = new TestSimplePolicy(); } MwtExplorer <SimpleContext> mwtt = new MwtExplorer <SimpleContext>("mwt", recorder); var explorer = new BaggingExplorer <SimpleContext>(policies, numbags, numActions); EndToEnd(mwtt, explorer, recorder); }
public void Bagging() { uint numActions = 10; uint numbags = 2; string uniqueKey = "ManagedTestId"; TestRecorder <TestContext> recorder = new TestRecorder <TestContext>(); TestPolicy[] policies = new TestPolicy[numbags]; for (int i = 0; i < numbags; i++) { policies[i] = new TestPolicy(i * 2); } TestContext testContext1 = new TestContext() { Id = 99 }; TestContext testContext2 = new TestContext() { Id = 100 }; MwtExplorer <TestContext> mwtt = new MwtExplorer <TestContext>("mwt", recorder); var explorer = new BaggingExplorer <TestContext>(policies, numbags, numActions); uint expectedAction = policies[0].ChooseAction(testContext1); uint chosenAction = mwtt.ChooseAction(explorer, uniqueKey, testContext1); Assert.AreEqual(expectedAction, chosenAction); chosenAction = mwtt.ChooseAction(explorer, uniqueKey, testContext2); Assert.AreEqual(expectedAction, chosenAction); var interactions = recorder.GetAllInteractions(); Assert.AreEqual(2, interactions.Count); Assert.AreEqual(testContext1.Id, interactions[0].Context.Id); Assert.AreEqual(testContext2.Id, interactions[1].Context.Id); }