我试图否定多项式表达式,以便以下测试正确,我的多项式表达式定义为Term(coefficient, exponent)
。所以我的public Term negate() throws Overflow
方法通过了这些测试。
Term(min,2) -> expected = Overflow
Term(-7,2) -> expected = (7,2)
Term(0,2) -> expected = (0,2)
Term(7,2) -> expected = (-7,2)
Term(max,2) -> expected = (-max,2)
编辑:我在术语中有以下方法:
public Term negate() throws Overflow {
}
以及Term构造函数中的以下内容:
public Term(int c, int e) throws NegativeExponent{
if (e < 0) throw new NegativeExponent();
coef = c;
expo = (c == 0 && e != 0) ? 0 : e;
}
上面的测试是在一个单独的JUnit文件中,但我试图让negate()
方法通过测试。
答案 0 :(得分:3)
我只能回答这个问题,因为我回答了one of your previous questions ...所以你可能想在帖子中澄清一点。
也许你想要
public Term negate() throws Overflow, NegativeExponent {
if (coef == min)
throw new Overflow();
return new Term(-coef, expo);
}
您可能还需要考虑将Overflow
重命名为更具体的内容(以便将其与StackOverflowError
完全区分开来。)