Четвертое задание поинтереснее. Поэтому продолжим.
Не знаю, в связи с чем, но в задании было сказано чтобы стек хранил строки. Это совершенно не оправданно после появления дженериков, поэтому стек будет хранить все что угодно, но протестируем мы его на строках следующим образом:
@Test
public void TestStack()
{
Stack<String> stack = new Stack<String>();
Assert.assertTrue(stack.isEmpty());
Assert.assertEquals(0, stack.count());
stack.push("aaa");
Assert.assertFalse(stack.isEmpty());
Assert.assertEquals(1, stack.count());
stack.push("bbb");
Assert.assertFalse(stack.isEmpty());
Assert.assertEquals(2, stack.count());
String temp = stack.pop();
Assert.assertEquals("bbb", temp);
Assert.assertFalse(stack.isEmpty());
Assert.assertEquals(1, stack.count());
temp = stack.pop();
Assert.assertEquals("aaa", temp);
Assert.assertTrue(stack.isEmpty());
Assert.assertEquals(0, stack.count());
}
* This source code was highlighted with Source Code Highlighter.
Как видно из приведенного теста, по мимо методов присутствующих в задании я добавил еще одно - Count. Оно нам пригодится при вычислениях.
Ну а собственно тест для постфиксного калькулятора придумывать не надо. Он есть в задании.
@Test
public void TestCalc()
{
int res = PostfixCalculator.Calc("2 3 +");
Assert.assertEquals(5, res);
res = PostfixCalculator.Calc("(2 3 *) (4 5 *) +");
Assert.assertEquals(26, res);
res = PostfixCalculator.Calc("2 3 4 5 6 * + - /");
Assert.assertEquals(0, res);
}
* This source code was highlighted with Source Code Highlighter.
Комментариев нет:
Отправить комментарий