M
mariotto
10. Составить описание класса для представления комплексных чисел. Обеспечить выполнение операций сложения, вычитания и умножения комплексных чисел. На-писать программу, демонстрирующую работу с этим классом. Программа должна содержать меню, позволяющее осуществить проверку всех методов класса.
Вообщем началось все с того что написал программу на с++, но VS 2010 не захотело создавать тесты, тогда я переписал под шарп, но автоматически созданные тесты не сработали. Объясните пожалуйста принцип Unit Test-ов. И помогите их создать. Вот код самой программы:
Вот что создалась автоматически для тестирования переопределенных методов, я туда не лез
Насколько я понимаю надо здесь самому задавать тестовые наборы типа:
Для вычитания. Но решил посоветоваться т.к. выдает ошибку:
Вообщем началось все с того что написал программу на с++, но VS 2010 не захотело создавать тесты, тогда я переписал под шарп, но автоматически созданные тесты не сработали. Объясните пожалуйста принцип Unit Test-ов. И помогите их создать. Вот код самой программы:
C++:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ComplexDigit
{
class MyComplexDigit
{
public double A { get; set; }//a
public double B { get; private set; }//b
public MyComplexDigit() { }//конструктор по умолчанию
public MyComplexDigit(double a, double b)//конструктор с параметрами
{
this.A = a;
this.B = b;
}
public override string ToString()//переопределение ToString
{
if (this.A == 0 && this.B == 0)
{
return String.Format("0");
}
else
{
return String.Format("{0} + {1} i", this.A, this.B);
}
}
public static MyComplexDigit operator +(MyComplexDigit temp, MyComplexDigit temp1)
{
double i, j;
i = temp.A + temp1.A;
j = temp.B + temp1.B;
return new MyComplexDigit(i, j);
}
public static MyComplexDigit operator *(MyComplexDigit temp, MyComplexDigit temp1)
{
double i, j;
i = temp.A * temp1.A - temp.B * temp1.B;
j = temp.A * temp1.B + temp1.A * temp.B;
return new MyComplexDigit(i, j);
}
public static MyComplexDigit operator -(MyComplexDigit temp, MyComplexDigit temp1)
{
double i, j;
i = temp.A - temp1.A;
j = temp.B - temp1.B;
return new MyComplexDigit(i, j);
}
}
}
namespace ComplexDigit
{
class Program
{
static void Main(string[] args)
{
MyComplexDigit z = new MyComplexDigit(8, 2);
MyComplexDigit z2 = new MyComplexDigit(5, 7);
MyComplexDigit z1 = z -z2;
Console.WriteLine("Z1 = {0}",z1);
Console.Read();
}
}
}
C++:
using ComplexDigit;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
namespace TestProject1
{
/// <summary>
///Это класс теста для MyComplexDigitTest, в котором должны
///находиться все модульные тесты MyComplexDigitTest
///</summary>
[TestClass()]
public class MyComplexDigitTest
{
private TestContext testContextInstance;
/// <summary>
///Получает или устанавливает контекст теста, в котором предоставляются
///сведения о текущем тестовом запуске и обеспечивается его функциональность.
///</summary>
public TestContext TestContext
{
get
{
return testContextInstance;
}
set
{
testContextInstance = value;
}
}
/// <summary>
///Тест для ToString
///</summary>
[TestMethod()]
public void ToStringTest()
{
MyComplexDigit target = new MyComplexDigit(); // TODO: инициализация подходящего значения
string expected = string.Empty; // TODO: инициализация подходящего значения
string actual;
actual = target.ToString();
Assert.AreEqual(expected, actual);
Assert.Inconclusive("Проверьте правильность этого метода теста.");
}
/// <summary>
///Тест для op_Addition
///</summary>
[TestMethod()]
public void op_AdditionTest()
{
MyComplexDigit temp = null; // TODO: инициализация подходящего значения
MyComplexDigit temp1 = null; // TODO: инициализация подходящего значения
MyComplexDigit expected = null; // TODO: инициализация подходящего значения
MyComplexDigit actual;
actual = (temp + temp1);
Assert.AreEqual(expected, actual);
Assert.Inconclusive("Проверьте правильность этого метода теста.");
}
/// <summary>
///Тест для op_Multiply
///</summary>
[TestMethod()]
public void op_MultiplyTest()
{
MyComplexDigit temp = null; // TODO: инициализация подходящего значения
MyComplexDigit temp1 = null; // TODO: инициализация подходящего значения
MyComplexDigit expected = null; // TODO: инициализация подходящего значения
MyComplexDigit actual;
actual = (temp * temp1);
Assert.AreEqual(expected, actual);
Assert.Inconclusive("Проверьте правильность этого метода теста.");
}
/// <summary>
///Тест для op_Subtraction
///</summary>
[TestMethod()]
public void op_SubtractionTest()
{
MyComplexDigit temp = null; // TODO: инициализация подходящего значения
MyComplexDigit temp1 = null; // TODO: инициализация подходящего значения
MyComplexDigit expected = null; // TODO: инициализация подходящего значения
MyComplexDigit actual;
actual = (temp - temp1);
Assert.AreEqual(expected, actual);
Assert.Inconclusive("Проверьте правильность этого метода теста.");
}
}
}
C++:
MyComplexDigit temp = new MyComplexDigit(8, 2); // TODO: инициализация подходящего значения
MyComplexDigit temp1 = new MyComplexDigit(5, 7); // TODO: инициализация подходящего значения
MyComplexDigit expected =new MyComplexDigit(3, -5); // TODO: инициализация подходящего значения
Код:
Непройденный op_SubtractionTest TestProject1 Ошибка в Assert.AreEqual. Ожидается: <3 + -5 i>. Фактически: <3 + -5 i>.