public void ExecuteTests(TestTraceOutput output, Component originalComponent, Component transformedComponent,
								 MethodInfo originalMethod, MethodInfo transformedMethod)
		{
			var parameters = originalMethod.GetParameters();
			var originalArguments = new object[parameters.Length];
			var transformedArguments = new object[parameters.Length];
			var valueFactories = new Func<object>[parameters.Length];

			for (var i = 0; i < parameters.Length; ++i)
			{
				if (parameters[i].ParameterType == typeof(int) || parameters[i].ParameterType == typeof(int).MakeByRefType())
					valueFactories[i] = RandomInt32;
				else if (parameters[i].ParameterType == typeof(double) || parameters[i].ParameterType == typeof(double).MakeByRefType())
					valueFactories[i] = RandomDouble;
				else if (parameters[i].ParameterType == typeof(bool) || parameters[i].ParameterType == typeof(bool).MakeByRefType())
					valueFactories[i] = RandomBoolean;
				else
					Assert.NotReached("Unknown parameter type '{0}'.", parameters[i].ParameterType);
			}

			output.Log("Testing '{0}'", originalMethod);
			for (var i = 0; i < _testCount * 2; ++i)
			{
				output.Trace("----- Inputs -----");
				for (var j = 0; j < originalArguments.Length; ++j)
				{
					originalArguments[j] = valueFactories[j]();
					transformedArguments[j] = originalArguments[j];

					output.Trace("{0} = {1}", parameters[j].Name, originalArguments[j]);
				}

				var originalResult = originalMethod.Invoke(originalComponent, originalArguments);
				var transformedResult = transformedMethod.Invoke(transformedComponent, transformedArguments);

				if (originalResult != null && originalResult.GetType().IsEnum)
				{
					originalResult = ((IConvertible)originalResult).ToInt32(CultureInfo.InvariantCulture);
					transformedResult = ((IConvertible)transformedResult).ToInt32(CultureInfo.InvariantCulture);
				}

				transformedResult.ShouldBe(originalResult);
				transformedArguments.ShouldBe(originalArguments);

				for (var j = 0; j < originalComponent.Metadata.Fields.Length; ++j)
				{
					var originalField = originalComponent.Metadata.Fields[j];
					output.Trace("Comparing field '{0}'", originalField.FieldInfo);

					var transformedField = transformedComponent.Metadata.Fields.Single(f => f.Name == originalField.Name);
					transformedField.FieldInfo.GetValue(transformedComponent).ShouldBe(originalField.FieldInfo.GetValue(originalComponent));
				}
			}
		}
Exemple #2
0
        public MemoryBufferTests(ITestOutputHelper output)
        {
            Output = new TestTraceOutput(output);

            _memoryBuffer.Resize(NumberOfElements * sizeof(int), zeroMemory: false);
            _memoryPointer = (int *)_memoryBuffer.Pointer;
        }
Exemple #3
0
		/// <summary>
		///   Executes the tests of the object.
		/// </summary>
		/// <param name="output">The output that should be used to write test output.</param>
		/// <param name="args">The arguments passed to the test object.</param>
		public void Test(TestTraceOutput output, object[] args)
		{
			Output = output;
			Arguments = args;

			Check();
		}
Exemple #4
0
        /// <summary>
        ///   Executes the tests of the object.
        /// </summary>
        /// <param name="output">The output that should be used to write test output.</param>
        /// <param name="args">The arguments passed to the test object.</param>
        public void Test(TestTraceOutput output, object[] args)
        {
            Output    = output;
            Arguments = args;

            Check();
        }
Exemple #5
0
        public LtmdpToNmdpTests(ITestOutputHelper output)
        {
            Output = new TestTraceOutput(output);

            _transitionBuffer.Resize(TransitionCapacity * sizeof(LtmdpTransition), zeroMemory: false);
            _transitions = (LtmdpTransition *)_transitionBuffer.Pointer;

            _stepGraph      = new LtmdpStepGraph();
            _choiceResolver = new LtmdpChoiceResolver(_stepGraph);
        }
Exemple #6
0
 public LtmdpBuilderDuringTraversalTests(ITestOutputHelper output)
 {
     Output = new TestTraceOutput(output);
 }
Exemple #7
0
 public LtmdpChoiceResolverTests(ITestOutputHelper output)
 {
     Output          = new TestTraceOutput(output);
     _stepGraph      = new LtmdpStepGraph();
     _choiceResolver = new LtmdpChoiceResolver(_stepGraph);
 }
 public LabeledTransitionMarkovChainToStringTests(ITestOutputHelper output)
 {
     Output = new TestTraceOutput(output);
 }
Exemple #9
0
 public ExternalMdpModelCheckerPrismTests(ITestOutputHelper output)
 {
     Output = new TestTraceOutput(output);
 }
 public BuiltinNmdpModelCheckerTests(ITestOutputHelper output)
 {
     Output = new TestTraceOutput(output);
 }
 public DoubleVectorTests(ITestOutputHelper output)
 {
     Output = new TestTraceOutput(output);
 }
 public FormulaManagerTests(ITestOutputHelper output)
 {
     Output = new TestTraceOutput(output);
 }
 public MarkovDecisionProcessToStringTests(ITestOutputHelper output)
 {
     Output = new TestTraceOutput(output);
 }
 public OnceFormulaTests(ITestOutputHelper output)
 {
     Output = new TestTraceOutput(output);
 }
Exemple #15
0
 public ConsolidateTransitionsModifierTests(ITestOutputHelper output)
 {
     Output = new TestTraceOutput(output);
 }
 public NmdpToMdpByFlatteningTests(ITestOutputHelper output)
 {
     Output = new TestTraceOutput(output);
 }
 public LtmcBuilderTests(ITestOutputHelper output)
 {
     Output = new TestTraceOutput(output);
 }
Exemple #18
0
 protected AnalysisTest(ITestOutputHelper output = null)
 {
     Output = new TestTraceOutput(output);
 }
Exemple #19
0
 public NmdpToMdpByNewStatesWithConstantDistanceTests(ITestOutputHelper output)
 {
     Output = new TestTraceOutput(output);
 }
 public ExternalDtmcModelCheckerMrmcTests(ITestOutputHelper output)
 {
     Output = new TestTraceOutput(output);
 }
Exemple #21
0
 public BidirectionalGraphTests(ITestOutputHelper output)
 {
     Output = new TestTraceOutput(output);
 }
Exemple #22
0
 public LustreModelCheckingTests(ITestOutputHelper output)
 {
     Output = new TestTraceOutput(output);
     Program.outputTextWriter = Output.TextWriterAdapter();
 }
 public SparseDoubleMatrixTests(ITestOutputHelper output)
 {
     Output = new TestTraceOutput(output);
 }
 public LtmdpContinuationDistributionMapperTests(ITestOutputHelper output)
 {
     Output = new TestTraceOutput(output);
 }
 public NmdpToMdpTests(ITestOutputHelper output)
 {
     Output = new TestTraceOutput(output);
 }
Exemple #26
0
 public MarkovChainFromMarkovChainTests(ITestOutputHelper output)
 {
     Output = new TestTraceOutput(output);
 }
Exemple #27
0
 public MarkovChainToStringTests(ITestOutputHelper output)
 {
     Output = new TestTraceOutput(output);
 }
 public MultipleChainsInSingleArrayTests(ITestOutputHelper output)
 {
     Output = new TestTraceOutput(output);
 }