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