1
exercism fetch scala bracket-push

src/test/scala/BracketPushTest.scala

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
import org.scalatest.{Matchers, FunSuite}

/** @version 1.1.0 */
class BracketPushTest extends FunSuite with Matchers {

  test("paired square brackets") {
    BracketPush.isPaired("[]") should be (true)
  }

  test("empty string") {
    pending
    BracketPush.isPaired("") should be (true)
  }

  test("unpaired brackets") {
    pending
    BracketPush.isPaired("[[") should be (false)
  }

  test("wrong ordered brackets") {
    pending
    BracketPush.isPaired("}{") should be (false)
  }

  test("wrong closing bracket") {
    pending
    BracketPush.isPaired("{]") should be (false)
  }

  test("paired with whitespace") {
    pending
    BracketPush.isPaired("{ }") should be (true)
  }

  test("simple nested brackets") {
    pending
    BracketPush.isPaired("{[]}") should be (true)
  }

  test("several paired brackets") {
    pending
    BracketPush.isPaired("{}[]") should be (true)
  }

  test("paired and nested brackets") {
    pending
    BracketPush.isPaired("([{}({}[])])") should be (true)
  }

  test("unopened closing brackets") {
    pending
    BracketPush.isPaired("{[)][]}") should be (false)
  }

  test("unpaired and nested brackets") {
    pending
    BracketPush.isPaired("([{])") should be (false)
  }

  test("paired and wrong nested brackets") {
    pending
    BracketPush.isPaired("[({]})") should be (false)
  }

  test("math expression") {
    pending
    BracketPush.isPaired("(((185 + 223.85) * 15) - 543)/2") should be (true)
  }

  test("complex latex expression") {
    pending
    BracketPush.isPaired("\\\\left(\\\\begin{array}{cc} \\\\frac{1}{3} & x\\\\\\\\ \\\\mathrm{e}^{x} &... x^2 \\\\end{array}\\\\right)") should be (true)
  }
}