Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 旋转点测试失败。为什么?_C#_Visual Studio_Unit Testing - Fatal编程技术网

C# 旋转点测试失败。为什么?

C# 旋转点测试失败。为什么?,c#,visual-studio,unit-testing,C#,Visual Studio,Unit Testing,这是失败的Point.cs文件 // Rotates the point counter-clockwise by deg degrees. For example, applying // a 90 degree rotation to (1, 0) should give (0, 1). public void rotate(double deg) { double rotCos = Math.Cos(deg * Math.PI / 180); double rotSin

这是失败的Point.cs文件

// Rotates the point counter-clockwise by deg degrees.  For example, applying
// a 90 degree rotation to (1, 0) should give (0, 1).
public void rotate(double deg)
{
    double rotCos = Math.Cos(deg * Math.PI / 180);
    double rotSin = Math.Sin(deg * Math.PI / 180);
    double oldX = x;
    double oldY = y;
    x = oldX * rotCos - oldY * rotSin;
    y = oldX * rotSin + oldY * rotCos;
    Point point = new Point(x, y);
}
我运行此测试并得到结果:

“消息:Assert.AreEqual失败。应为:。实际:。”


双倍不是精确的数字。如果不指定两者之间的可接受差异,则不应对其进行平等性比较

试一试


双倍不是精确的数字。如果不指定两者之间的可接受差异,则不应对其进行平等性比较

试一试


你如何处理你的
点=新点(x,y)?它会立即被删除,因为您没有将其分配给任何对象…我假设它是最终产品。实际上,我所需要的只是x,y点。@JayT,提供一个可以用来重现问题的方法。@FCin我删除了那行代码,但仍然得到了相同的结果。@Nkosi我不知道你在说什么……你如何处理你的
点=新点(x,y)?它会立即被删除,因为您没有将其分配给任何对象…我假设它是最终产品。实际上,我所需要的只是x,y点。@JayT,提供一个可以用来重现问题的值。@FCin我删除了那行代码,但仍然得到了相同的结果。@Nkosi我不知道你在说什么。。。
[TestMethod]
public void Rotate_Test()
{
    double rotate = -90;
    double i = 4;
    double o = 2;
    Point point = new Point(i, o);
    double expectedX = 2;
    double expectedY = 4;

    point.rotate(rotate);

    Assert.AreEqual(expectedX, point.getX());
    Assert.AreEqual(expectedY, point.getY());
}
Assert.AreEqual(expectedX, point.getX(), 0.001);