public LearningTestResult(NeuralNetworkTest test, NeuralNetworkTestResult result)
        {
            Contract.Requires(test != null);
            Contract.Requires(result != null);
            Contract.Requires(test.TestValueUnits.Length == result.Count);

            Test = test;
            Result = result;
        }
 protected override double ComputeMSE()
 {
     Debug.Assert(strategy.CurrentTest != null);
     lock (strategy.Network.SyncRoot)
     {
         items.Apply();
         LastResult = strategy.CurrentTest.Test(strategy.Network);
         return LastResult.MSE;
     }
 }
 NeuralNetworkTestResult IParallelLearningStrategy.DoIteration(NeuralNetworkTest test)
 {
     CurrentTest = test;
     bool improved = process.Step();
     if (last == null || improved)
     {
         last = process.LastResult;
     }
     return last;
 }
 protected internal override void InitializeNewRun()
 {
     if (process == null) process = new Process(this); else process.Reset();
     CurrentTest = null;
     last = null;
 }
 protected override double ComputeMSE()
 {
     LastResult = strategy.CurrentTest.Test(strategy.Network);
     return LastResult.MSE;
 }
 protected override double ComputeMSE()
 {
     LastResult = owner.CurrentTest.Test(owner.Network);
     return LastResult.MSE;
 }