четверг, 8 апреля 2010 г.

Спецификации для 4-го занятия по Java

Третье задание было скучным, и конкретно меня, вряд ли чему то могло научить. Поэтому сознаюсь - я ленился.
Четвертое задание поинтереснее. Поэтому продолжим.


Не знаю, в связи с чем, но в задании было сказано чтобы стек хранил строки. Это совершенно не оправданно после появления дженериков, поэтому стек будет хранить все что угодно, но протестируем мы его на строках следующим образом:


  @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.

Комментариев нет:

Отправить комментарий