core_testing3/postfix_test3.scala
author Christian Urban <christian.urban@kcl.ac.uk>
Fri, 23 Feb 2024 11:31:36 +0000
changeset 480 a1151868a997
parent 471 31b81f20fd9a
permissions -rw-r--r--
updated
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
300
be9900ba65ff updated testing files
Christian Urban <urbanc@in.tum.de>
parents: 249
diff changeset
     1
249
65cb10f8014a updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     2
471
31b81f20fd9a updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 401
diff changeset
     3
def urbanmain() = {
31b81f20fd9a updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 401
diff changeset
     4
  import C3b._
249
65cb10f8014a updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     5
65cb10f8014a updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     6
471
31b81f20fd9a updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 401
diff changeset
     7
  assert(syard(split("3 + 4 * ( 2 - 1 )")) == List("3", "4", "2", "1", "-", "*", "+"))
31b81f20fd9a updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 401
diff changeset
     8
  assert(syard(split("( ( ( 3 ) ) + ( ( 4 + ( 5 ) ) ) )")) == List("3", "4", "5", "+", "+"))
31b81f20fd9a updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 401
diff changeset
     9
  assert(syard(split("5 + 7 / 2")) == List("5", "7", "2", "/", "+"))
31b81f20fd9a updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 401
diff changeset
    10
  assert(syard(split("5 * 7 / 2")) == List("5", "7", "*", "2", "/"))
31b81f20fd9a updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 401
diff changeset
    11
  assert(syard(split("3 + 4 * 8 / ( 5 - 1 ) ^ 2 ^ 3")) == List("3", "4", "8", "*", "5", "1", "-", "2", "3", "^", "^", "/", "+"))
31b81f20fd9a updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 401
diff changeset
    12
31b81f20fd9a updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 401
diff changeset
    13
  assert(compute(syard(split("3 + 4 * ( 2 - 1 )"))) == 7)
31b81f20fd9a updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 401
diff changeset
    14
  assert(compute(syard(split("10 + 12 * 33"))) == 406)
31b81f20fd9a updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 401
diff changeset
    15
  assert(compute(syard(split("( 5 + 7 ) * 2"))) == 24)
31b81f20fd9a updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 401
diff changeset
    16
  assert(compute(syard(split("5 + 7 / 2"))) == 8)
31b81f20fd9a updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 401
diff changeset
    17
  assert(compute(syard(split("5 * 7 / 2"))) == 17)
31b81f20fd9a updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 401
diff changeset
    18
  assert(compute(syard(split("9 + 24 / ( 7 - 3 )"))) == 15)
31b81f20fd9a updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 401
diff changeset
    19
  assert(compute(syard(split("4 ^ 3 ^ 2"))) == 262144)
31b81f20fd9a updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 401
diff changeset
    20
  assert(compute(syard(split("4 ^ ( 3 ^ 2 )"))) == 262144)
31b81f20fd9a updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 401
diff changeset
    21
  assert(compute(syard(split("( 4 ^ 3 ) ^ 2"))) == 4096)
31b81f20fd9a updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 401
diff changeset
    22
  assert(compute(syard(split("( 3 + 1 ) ^ 2 ^ 3"))) == 65536)
31b81f20fd9a updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 401
diff changeset
    23
}