Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.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
Java assertEquals在两个向量上失败_Java - Fatal编程技术网

Java assertEquals在两个向量上失败

Java assertEquals在两个向量上失败,java,Java,我想为Ship类编写加速方法,所以我已经编写了 public void accelerate(double fo){ double newSpeedMag = speed.magnitude() + fo; speed = new Vector(Math.cos(facing) * newSpeedMag , Math.sin(facing) * newSpeedMag ); } 其中,面是面向角度,当前面==Math.PI 在testAccelerate测试用例中: tes

我想为Ship类编写加速方法,所以我已经编写了

public void accelerate(double fo){
    double newSpeedMag = speed.magnitude() + fo;
    speed = new Vector(Math.cos(facing) * newSpeedMag , Math.sin(facing) * newSpeedMag  );
}
其中,面是面向角度,当前面==Math.PI

在testAccelerate测试用例中:

testAccelerate(){
    s.facing = Math.PI/2;
    s.accelerate(4);
    assertEquals("wrong vector",new Vector(-3,4),s.speed);
}

assertEquals失败。

听起来您很可能没有为类重写equals。如果没有这一点,assertEquals就无法知道它所尝试的类是否相等,但只有当这些类指向相同的内存地址时才会返回true


请参阅此链接,了解如何在课堂上覆盖等式-。

你的物理很奇怪。只需将位置、速度和加速度分解为x和y,并独立处理它们,即可进行正确的物理模拟。在速度可变摩擦之前,幅值不会进入它。问题是什么?向量类的实现是什么?