mirror of
https://github.com/fergalmoran/picard.git
synced 2025-12-24 02:09:56 +00:00
115 lines
4.2 KiB
Python
115 lines
4.2 KiB
Python
import unittest
|
|
from picard.script import ScriptParser
|
|
from picard.component import ComponentManager
|
|
|
|
class MiscModelTest(unittest.TestCase):
|
|
|
|
def setUp(self):
|
|
self.parser = ScriptParser()
|
|
|
|
def test_cmd_noop(self):
|
|
self.failUnlessEqual(self.parser.eval("$noop()"), "")
|
|
|
|
def test_cmd_if(self):
|
|
self.failUnlessEqual(self.parser.eval("$if(1,a,b)"), "a")
|
|
self.failUnlessEqual(self.parser.eval("$if(,a,b)"), "b")
|
|
|
|
def test_cmd_if2(self):
|
|
self.failUnlessEqual(self.parser.eval("$if2(,a,b)"), "a")
|
|
self.failUnlessEqual(self.parser.eval("$if2($noop(),b)"), "b")
|
|
|
|
def test_cmd_left(self):
|
|
self.failUnlessEqual(self.parser.eval("$left(abcd,2)"), "ab")
|
|
|
|
def test_cmd_right(self):
|
|
self.failUnlessEqual(self.parser.eval("$right(abcd,2)"), "cd")
|
|
|
|
def test_cmd_set(self):
|
|
self.failUnlessEqual(self.parser.eval("$set(test,aaa)%test%"), "aaa")
|
|
|
|
def test_cmd_get(self):
|
|
self.failUnlessEqual(self.parser.eval("$get(test)", {"test": "aaa"}), "aaa")
|
|
|
|
def test_cmd_num(self):
|
|
self.failUnlessEqual(self.parser.eval("$num(3,3)"), "003")
|
|
self.failUnlessEqual(self.parser.eval("$num(03,3)"), "003")
|
|
self.failUnlessEqual(self.parser.eval("$num(123,2)"), "123")
|
|
|
|
def test_cmd_or(self):
|
|
self.failUnlessEqual(self.parser.eval("$or(,)"), "")
|
|
self.failUnlessEqual(self.parser.eval("$or(,q)"), "1")
|
|
self.failUnlessEqual(self.parser.eval("$or(q,)"), "1")
|
|
self.failUnlessEqual(self.parser.eval("$or(q,q)"), "1")
|
|
|
|
def test_cmd_and(self):
|
|
self.failUnlessEqual(self.parser.eval("$and(,)"), "")
|
|
self.failUnlessEqual(self.parser.eval("$and(,q)"), "")
|
|
self.failUnlessEqual(self.parser.eval("$and(q,)"), "")
|
|
self.failUnlessEqual(self.parser.eval("$and(q,q)"), "1")
|
|
|
|
def test_cmd_not(self):
|
|
self.failUnlessEqual(self.parser.eval("$not($noop())"), "1")
|
|
self.failUnlessEqual(self.parser.eval("$not(q)"), "")
|
|
|
|
def test_cmd_add(self):
|
|
self.failUnlessEqual(self.parser.eval("$add(1,2)"), "3")
|
|
|
|
def test_cmd_sub(self):
|
|
self.failUnlessEqual(self.parser.eval("$sub(1,2)"), "-1")
|
|
self.failUnlessEqual(self.parser.eval("$sub(2,1)"), "1")
|
|
|
|
def test_cmd_div(self):
|
|
self.failUnlessEqual(self.parser.eval("$div(9,3)"), "3")
|
|
self.failUnlessEqual(self.parser.eval("$div(10,3)"), "3")
|
|
|
|
def test_cmd_mod(self):
|
|
self.failUnlessEqual(self.parser.eval("$mod(9,3)"), "0")
|
|
self.failUnlessEqual(self.parser.eval("$mod(10,3)"), "1")
|
|
|
|
def test_cmd_mul(self):
|
|
self.failUnlessEqual(self.parser.eval("$mul(9,3)"), "27")
|
|
self.failUnlessEqual(self.parser.eval("$mul(10,3)"), "30")
|
|
|
|
def test_cmd_eq(self):
|
|
self.failUnlessEqual(self.parser.eval("$eq(,)"), "1")
|
|
self.failUnlessEqual(self.parser.eval("$eq(,$noop())"), "1")
|
|
self.failUnlessEqual(self.parser.eval("$eq(,q)"), "")
|
|
self.failUnlessEqual(self.parser.eval("$eq(q,q)"), "1")
|
|
self.failUnlessEqual(self.parser.eval("$eq(q,)"), "")
|
|
|
|
def test_cmd_ne(self):
|
|
self.failUnlessEqual(self.parser.eval("$ne(,)"), "")
|
|
self.failUnlessEqual(self.parser.eval("$ne(,$noop())"), "")
|
|
self.failUnlessEqual(self.parser.eval("$ne(,q)"), "1")
|
|
self.failUnlessEqual(self.parser.eval("$ne(q,q)"), "")
|
|
self.failUnlessEqual(self.parser.eval("$ne(q,)"), "1")
|
|
|
|
def test_cmd_lower(self):
|
|
self.failUnlessEqual(self.parser.eval("$lower(AbeCeDA)"), "abeceda")
|
|
|
|
def test_cmd_upper(self):
|
|
self.failUnlessEqual(self.parser.eval("$upper(AbeCeDA)"), "ABECEDA")
|
|
|
|
def test_cmd_rreplace(self):
|
|
self.failUnlessEqual(
|
|
self.parser.eval(r'''$rreplace(test \(disc 1\),\\s\\\(disc \\d+\\\),)'''),
|
|
"test"
|
|
)
|
|
|
|
def test_cmd_rsearch(self):
|
|
self.failUnlessEqual(
|
|
self.parser.eval(r"$rsearch(test \(disc 1\),\\\(disc \(\\d+\)\\\))"),
|
|
"1"
|
|
)
|
|
|
|
|
|
class TagzParserTest(unittest.TestCase):
|
|
|
|
def setUp(self):
|
|
self.parser = ScriptParser()
|
|
|
|
def test_arguments(self):
|
|
self.failUnless(
|
|
self.parser.eval(
|
|
r"$set(bleh,$rsearch(test \(disc 1\),\\\(disc \(\\d+\)\\\)))) $set(wer,1)"))
|