一元二次方程白盒测试
时间: 2024-04-18 12:20:06 浏览: 170
以下是一元二次方程白盒测试的代码示例:
```python
import math
def solve_quadratic_equation(a, b, c):
discriminant = b**2 - 4*a*c
if discriminant > 0:
x1 = (-b + math.sqrt(discriminant)) / (2*a)
x2 = (-b - math.sqrt(discriminant)) / (2*a)
return f"方程有两个实数根:x1={x1}, x2={x2}"
elif discriminant == 0:
x = -b / (2*a)
return f"方程有一个实数根:x1=x2={x}"
else:
return "方程没有实数根"
# 测试代码
print(solve_quadratic_equation(1, -5, 6)) # 方程有两个实数根:x1=3.0, x2=2.0
print(solve_quadratic_equation(1,1, 1)) # 方程没有实数根
```
相关问题
一元二次方程白盒测试testNG
testNG是一个基于Java的测试框架,用于执行单元测试、集成测试和端到端测试。它提供了丰富的功能和灵活的配置选项,可以帮助开发人员更好地组织和管理测试用例。
对于一元二次方程的白盒测试,你可以使用testNG来编写和执行测试用例。以下是一个示例:
```java
import org.testng.Assert;
import org.testng.annotations.Test;
public class QuadraticEquationTest {
@Test
public void testPositiveDiscriminant() {
QuadraticEquation equation = new QuadraticEquation(1, -3, 2);
Assert.assertTrue(equation.hasRealRoots());
Assert.assertEquals(equation.getRoot1(), 2.0);
Assert.assertEquals(equation.getRoot2(), 1.0);
}
@Test
public void testZeroDiscriminant() {
QuadraticEquation equation = new QuadraticEquation(1, -4, 4);
Assert.assertTrue(equation.hasRealRoots());
Assert.assertEquals(equation.getRoot1(), 2.0);
Assert.assertEquals(equation.getRoot2(), 2.0);
}
@Test
public void testNegativeDiscriminant() {
QuadraticEquation equation = new QuadraticEquation(1, 2, 3);
Assert.assertFalse(equation.hasRealRoots());
}
}
```
在上面的示例中,我们使用testNG的`@Test`注解来标记测试方法。每个测试方法都包含了一些断言来验证预期的结果。例如,`testPositiveDiscriminant`测试方法测试具有正判别式的一元二次方程,`testZeroDiscriminant`测试方法测试具有零判别式的一元二次方程,`testNegativeDiscriminant`测试方法测试具有负判别式的一元二次方程。
你可以使用testNG的测试运行器来执行这些测试用例,并查看测试结果。通过执行这些测试用例,你可以验证一元二次方程的实现是否正确,并且可以发现潜在的bug。
阅读全文