Java - 否定多项式

时间:2012-11-17 00:02:15

标签: java junit polynomial-math negate

我试图否定多项式表达式,以便以下测试正确,我的多项式表达式定义为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()方法通过测试。

1 个答案:

答案 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完全区分开来。)