public void TestPostfixPlusPlus_OperandsWithTarget() { //-- Arrange DeriveClassFrom <object>() .DefaultConstructor() .ImplementInterface <AncestorRepository.IOperatorTester>() .Method <InOut, InOut>(intf => intf.Unary).Implement((m, input) => { var output = m.Local(m.New <InOut>()); output.Prop(x => x.ShortValue).Assign(input.Prop(x => x.ShortValue).PostfixPlusPlus()); output.Prop(x => x.IntValue).Assign(input.Prop(x => x.IntValue).PostfixPlusPlus()); output.Prop(x => x.LongValue).Assign(input.Prop(x => x.LongValue).PostfixPlusPlus()); output.Prop(x => x.FloatValue).Assign(input.Prop(x => x.FloatValue).PostfixPlusPlus()); output.Prop(x => x.DecimalValue).Assign(input.Prop(x => x.DecimalValue).PostfixPlusPlus()); output.Prop(x => x.DoubleValue).Assign(input.Prop(x => x.DoubleValue).PostfixPlusPlus()); m.Return(output); }) .AllMethods().Throw <NotImplementedException>(); //-- Act var tester = CreateClassInstanceAs <AncestorRepository.IOperatorTester>().UsingDefaultConstructor(); var testInput = new InOut { ShortValue = 10, IntValue = 20, LongValue = 30, FloatValue = 40, DecimalValue = 50, DoubleValue = 60 }; var result = tester.Unary(testInput); //-- Assert Assert.That(testInput.ShortValue, Is.EqualTo(11)); Assert.That(testInput.IntValue, Is.EqualTo(21)); Assert.That(testInput.LongValue, Is.EqualTo(31)); Assert.That(testInput.FloatValue, Is.EqualTo(41)); Assert.That(testInput.DecimalValue, Is.EqualTo(51)); Assert.That(testInput.DoubleValue, Is.EqualTo(61)); Assert.That(result.ShortValue, Is.EqualTo(10)); Assert.That(result.IntValue, Is.EqualTo(20)); Assert.That(result.LongValue, Is.EqualTo(30)); Assert.That(result.FloatValue, Is.EqualTo(40)); Assert.That(result.DecimalValue, Is.EqualTo(50)); Assert.That(result.DoubleValue, Is.EqualTo(60)); }
public void TestPrefixPlusPlus_OperandsWithoutTarget() { //-- Arrange DeriveClassFrom <object>() .DefaultConstructor() .ImplementInterface <AncestorRepository.IOperatorTester>() .Method <InOut, InOut>(intf => intf.Unary).Implement((m, input) => { var v1 = m.Local(initialValue: input.Prop(x => x.IntValue)); var v2 = m.Local(initialValue: input.Prop(x => x.FloatValue)); var v3 = m.Local(initialValue: input.Prop(x => x.DecimalValue)); var output = m.Local(m.New <InOut>()); output.Prop(x => x.IntValue).Assign(Prefix.PlusPlus(v1)); output.Prop(x => x.FloatValue).Assign(Prefix.PlusPlus(v2)); output.Prop(x => x.DecimalValue).Assign(Prefix.PlusPlus(v3)); input.Prop(x => x.IntValue).Assign(v1); input.Prop(x => x.FloatValue).Assign(v2); input.Prop(x => x.DecimalValue).Assign(v3); m.Return(output); }) .AllMethods().Throw <NotImplementedException>(); //-- Act var tester = CreateClassInstanceAs <AncestorRepository.IOperatorTester>().UsingDefaultConstructor(); var testInput = new InOut { IntValue = 20, FloatValue = 40, DecimalValue = 50 }; var result = tester.Unary(testInput); //-- Assert Assert.That(testInput.IntValue, Is.EqualTo(21)); Assert.That(testInput.FloatValue, Is.EqualTo(41)); Assert.That(testInput.DecimalValue, Is.EqualTo(51)); Assert.That(result.IntValue, Is.EqualTo(21)); Assert.That(result.FloatValue, Is.EqualTo(41)); Assert.That(result.DecimalValue, Is.EqualTo(51)); }
public void TestSubtraction() { //-- Arrange DeriveClassFrom <object>() .DefaultConstructor() .ImplementInterface <AncestorRepository.IOperatorTester>() .Method <InOut, InOut, InOut>(intf => intf.Binary).Implement((m, in1, in2) => { var output = m.Local(m.New <InOut>()); output.Prop(x => x.IntValue).Assign(in1.Prop(x => x.IntValue) - in2.Prop(x => x.IntValue)); output.Prop(x => x.FloatValue).Assign(in1.Prop(x => x.FloatValue) - in2.Prop(x => x.FloatValue)); output.Prop(x => x.DecimalValue).Assign(in1.Prop(x => x.DecimalValue) - in2.Prop(x => x.DecimalValue)); m.Return(output); }) .AllMethods().Throw <NotImplementedException>(); //-- Act var tester = CreateClassInstanceAs <AncestorRepository.IOperatorTester>().UsingDefaultConstructor(); var input1 = new InOut { IntValue = 20, FloatValue = 30, DecimalValue = 40, }; var input2 = new InOut { IntValue = 7, FloatValue = 8, DecimalValue = 9, }; var result = tester.Binary(input1, input2); //-- Assert Assert.That(result.IntValue, Is.EqualTo(13)); Assert.That(result.FloatValue, Is.EqualTo(22)); Assert.That(result.DecimalValue, Is.EqualTo(31)); }