# Tests for "math.*"

# math.add
$ rtxmlrpc --repr math.add '' -- 1 1
2
$ rtxmlrpc --repr math.add '' -- 1 -1
0
$ rtxmlrpc --repr math.add '' -- +1 +1
2
$ rtxmlrpc --repr math.add '' -- +1 -1
0
$ rtxmlrpc --repr math.add '' -- 1 +1
2
$ rtxmlrpc --repr math.add '' -- 1 -1
0
$ rtxmlrpc --repr math.add '' -- [1,2 3
6
$ rtxmlrpc --repr math.add '' -- text
ERROR … Could not convert
# END

# math.sub
$ rtxmlrpc --repr math.sub '' -- 1 1
0
$ rtxmlrpc --repr math.sub '' -- 1 -1
2
$ rtxmlrpc --repr math.sub '' -- [1 [1
0
$ rtxmlrpc --repr math.sub '' -- [1,2
-1
$ rtxmlrpc --repr math.sub '' -- [9,3,3
3
# this breaks the law of the least surprise (it is "3 - (1 - 2)")
$ rtxmlrpc --repr math.sub '' -- 3 [1,2
4
# END

# math.mul
$ rtxmlrpc --repr math.mul '' -- 0 1
0
$ rtxmlrpc --repr math.mul '' -- 2 -1
-2
# END

# math.div
$ rtxmlrpc --repr math.div '' -- 4 +2
2
$ rtxmlrpc --repr math.div '' -- 8 3
2
$ rtxmlrpc --repr math.div '' -- 0 6
0

$ rtxmlrpc --repr math.div '' -- 6 0
ERROR … math.div: Division by zero
$ rtxmlrpc --repr math.div '' --
ERROR … math.div: No arguments provided
# END

# math.mod
$ rtxmlrpc --repr math.mod '' -- 6 7
6
$ rtxmlrpc --repr math.mod '' -- 7 7
0
$ rtxmlrpc --repr math.mod '' -- 8 7
1

$ rtxmlrpc --repr math.mod '' -- 6 0
ERROR … math.mod: Division by zero
# END

# math.min
$ rtxmlrpc --repr math.min '' -- 2 3 1
1
$ rtxmlrpc --repr math.min '' -- [2,3,1
1
$ rtxmlrpc --repr math.min '' -- 0 [2,3,1
0
$ rtxmlrpc --repr math.min '' -- [2,-3,1
-3
# END

# math.max
$ rtxmlrpc --repr math.max '' -- 2 3 1
3
$ rtxmlrpc --repr math.max '' -- 2 -3 1
2
# END

# math.cnt
$ rtxmlrpc --repr math.cnt '' --
0
$ rtxmlrpc --repr math.cnt '' -- 3 2 1
3
$ rtxmlrpc --repr math.cnt '' -- 3 3 1
3
$ rtxmlrpc --repr math.cnt '' -- 4 [3,2,1
4
# END

# math.avg
$ rtxmlrpc --repr math.avg '' -- 2 3 1 4
2
$ rtxmlrpc --repr math.avg '' -- 2 3 1 5
2
$ rtxmlrpc --repr math.avg '' -- 2 3 1 6
3
# END

# math.med
$ rtxmlrpc --repr math.med '' -- 1 3 3 3 5 42
3
# END
