Java assertEquals在两个向量上失败
我想为Ship类编写加速方法,所以我已经编写了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
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,并独立处理它们,即可进行正确的物理模拟。在速度可变摩擦之前,幅值不会进入它。问题是什么?向量类的实现是什么?