public void TestIsValidComponentsAreMissing() { ClimberConfiguration <TestIntegerEvaluableState, int> config = ClimberConfiguration <TestIntegerEvaluableState, int> .Create(); Assert.IsNotNull(config); Assert.IsFalse(config.IsValid()); }
public void TestCreateFromConfigurationWithDefinedDirection() { ClimberConfiguration <TestIntegerEvaluableState, int> config = ClimberConfiguration <TestIntegerEvaluableState, int> .Create() .GeneratesSuccessorsWith(generator) .ClimbsInDirection(ClimberDirection.Maximize); Assert.IsNotNull(config); Assert.IsTrue(config.IsValid()); }
public void TestCreateFromConfigurationWithCustomComparer() { IComparer <TestIntegerEvaluableState> comparer = new MinimizingComparer <TestIntegerEvaluableState>(); ClimberConfiguration <TestIntegerEvaluableState, int> config = ClimberConfiguration <TestIntegerEvaluableState, int> .Create() .GeneratesSuccessorsWith(generator) .ComparesUsing(comparer); Assert.IsNotNull(config); Assert.IsTrue(config.IsValid()); }
public void TestCreateFromConfigurationWithDefaults() { ClimberConfiguration <TestIntegerEvaluableState, int> config = ClimberConfiguration <TestIntegerEvaluableState, int> .Create() .GeneratesSuccessorsWith(generator); IComparer <TestIntegerEvaluableState> expectedComparer = new MaximizingComparer <TestIntegerEvaluableState>(); Assert.IsNotNull(config); Assert.IsTrue(config.IsValid()); }
public void TestRandomRestartHillClimberIncrementingRestartPoint() { comparer = new MaximizingComparer <TestIntegerEvaluableState>(); generator = new TestExponentialIntegerSuccessorGenerator(); var climberConfiguration = new ClimberConfiguration <TestIntegerEvaluableState, int>() .ComparesUsing(comparer) .GeneratesSuccessorsWith((c) => generator.GetSuccessors(c)); randomizer = new TestIntegerRandomizerSimulator(); climber = new RandomRestartHillClimber <TestIntegerEvaluableState, int>(5, randomizer, climberConfiguration); RunTest(climber, 1, 10000); }
public void TestRandomRestartHillClimberSameRestartPointEachTime() { comparer = new MaximizingComparer <TestIntegerEvaluableState>(); generator = new TestLinearIntegerSuccessorGenerator(); randomizer = new TestIntegerEvaluableStateNonRandomizer(); var climberConfiguration = new ClimberConfiguration <TestIntegerEvaluableState, int>() .ComparesUsing(comparer) .GeneratesSuccessorsWith((c) => generator.GetSuccessors(c)); randomizer = new TestIntegerEvaluableStateNonRandomizer(); climber = new RandomRestartHillClimber <TestIntegerEvaluableState, int>(5, randomizer, climberConfiguration); RunTest(climber, 2, 100); }
public void TestBuildCreatesClimberWhenValid() { IComparer <TestIntegerEvaluableState> comparer = new MinimizingComparer <TestIntegerEvaluableState>(); ClimberConfiguration <TestIntegerEvaluableState, int> config = ClimberConfiguration <TestIntegerEvaluableState, int> .Create() .GeneratesSuccessorsWith(generator) .ComparesUsing(comparer); IHillClimber <TestIntegerEvaluableState, int> climber = null; try { climber = config.Build(); } catch { Assert.Fail("Build threw an exception"); } Assert.IsNotNull(climber); }
public void TestBuildThrowsCorrectExceptionWhenInvalid() { IComparer <TestIntegerEvaluableState> comparer = new MinimizingComparer <TestIntegerEvaluableState>(); ClimberConfiguration <TestIntegerEvaluableState, int> config = ClimberConfiguration <TestIntegerEvaluableState, int> .Create(); IHillClimber <TestIntegerEvaluableState, int> climber = null; bool caught = false; try { climber = config.Build(); } catch (ConfigurationException) { caught = true; } Assert.IsTrue(caught); Assert.IsNull(climber); }