gpt4 book ai didi

java - 为什么我的函数总是无法通过我的 JUnit 测试?

转载 作者:行者123 更新时间:2023-11-28 21:00:44 24 4
gpt4 key购买 nike

这是我正在测试的类(class)之一。它总是使 calculateVolume() 方法失败,我不确定为什么。

   package shape3D;


public class Sphere implements Cloneable {
private double myRadius;
private double myVolume;
private double mySurfaceArea;
private final static double pi = 3.14;

public static void main(String args[]){
Sphere sphere = new Sphere();
}
public double calculateVolume(){
myVolume = (4/3)*pi*(Math.pow(myRadius,3));
return myVolume;
}
public double calculateSurfaceArea(){
mySurfaceArea = ((4)*(pi)*(Math.pow(myRadius,2)));
return mySurfaceArea;
}
public double getSurfaceArea(){
return this.calculateSurfaceArea();
}
public double getVolume(){
return this.calculateVolume();
}
public void setRadius(double radius2){
myRadius = radius2;
}

public String toString(){
return "Volume: " + this.getVolume() + " Surface area " + this.getSurfaceArea();
}
public Sphere clone (){
Sphere p = new Sphere();
p.setRadius(myRadius);
return p;
}

}

这是我正在使用的 JUnit 测试用例

public class sphereTest {
@Test
public void testSphere(){
shape3D.Sphere sphere = new shape3D.Sphere();
sphere.setRadius(6);
assertTrue(sphere.calculateSurfaceArea()== 452.16);
assertTrue(sphere.calculateVolume()== 904.32);

calculateSurfaceArea() 的东西通过得很好,但音量失败了,我不确定为什么。

最佳答案

计算

myVolume = (4/3)*pi*(Math.pow(myRadius,3));

使用整数运算:4/3 的计算结果为 1

改成

myVolume = (4.0/3)*pi*(Math.pow(myRadius,3));

关于java - 为什么我的函数总是无法通过我的 JUnit 测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18905541/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com