def testRaise(self): self.assertEqual(Run('''整叉劈了:“小朋友请回避!”。'''), ''' 整叉劈了:小朋友请回避! ''') self.assertEqual(Run('''小王装2。整叉劈了:小王、“小朋友请回避!”。'''), ''' 整叉劈了:2小朋友请回避! ''')
def testArrayLiteral(self): self.assertEqual(Run(''' 张家庄 装 「」。 唠唠:张家庄。 '''), '「」\n') self.assertEqual( Run(''' 张家庄 装 路银「」。 唠唠:张家庄。 '''), '「」\n') self.assertEqual( Run(''' 张家庄 装 「1,二加三,五减一」。 唠唠:张家庄。 '''), '「1, 5, 4」\n') self.assertEqual( Run(''' 张家庄 都是活雷锋。 张家庄 来了群 「1,二加三,五减一」。 唠唠:张家庄。 张家庄 来了群 「」。 唠唠:张家庄。 张家庄 来了群路银 「7,8」。 唠唠:张家庄。 '''), '''「1, 5, 4」 「1, 5, 4」 「1, 5, 4, 7, 8」 ''')
def testRunFunc(self): self.assertEqual( Run('埋汰咋整:唠唠:“你虎了吧唧”。整完了。'), '') self.assertEqual( Run('埋汰咋整:唠唠:“你虎了吧唧”。整完了。整埋汰。'), '你虎了吧唧\n')
def testCtorCall(self): self.assertEqual( Run(''' 无产阶级的接班银有名阶级咋整: 新对象咋整: 俺的名字装“无名”。 整完了。 整完了。 老林 装 有名 的新对象。 唠唠:老林的名字。 '''), '''无名 ''') self.assertEqual( Run(''' 无产阶级的接班银有名阶级咋整: 新对象(名字)咋整: 俺的名字装名字。 整完了。 整完了。 老林 装 有名 的新对象(“林蛋大”)。 唠唠:老林的名字。 '''), '''林蛋大 ''')
def testConcat(self): self.assertEqual( Run('唠唠:“牛”、二。'), '牛2\n') self.assertEqual( Run('唠唠:“老王”、665加一。'), '老王666\n')
def testDecrements(self): self.assertEqual( Run('老张是活雷锋。老张装二。老张稍稍。唠唠:老张。'), '1\n') self.assertEqual( Run('老张是活雷锋。老张装三。老张稍五步。唠唠:老张。'), '-2\n')
def testIncrements(self): self.assertEqual( Run('老张是活雷锋。老张装二。老张走走。唠唠:老张。'), '3\n') self.assertEqual( Run('老张是活雷锋。老张装三。老张走五步。唠唠:老张。'), '8\n')
def testPrintBool(self): self.assertEqual( Run(u'唠唠:五比二大。'), u'对\n') self.assertEqual( Run(u'唠唠:五比二大、五比二小、一跟2一样一样的、1跟二不是一样一样的。'), u'对错错对\n')
def testAssert(self): self.assertEqual(Run('''保准三加二比五减一还大。'''), '') self.assertEqual(Run('''保准三加二比五减一还小。'''), ''' 整叉劈了:该着 3加2比5减1还小,咋有毛病了咧? ''') self.assertEqual(Run('''辟谣三加二比五减一还大。'''), ''' 整叉劈了:3加2比5减1还大 不应该啊,咋有毛病了咧? ''') self.assertEqual(Run('''辟谣三加二比五减一还小。'''), '')
def testAssert(self): self.assertEqual(Run('''保准三加二比五减一大。'''), '') self.assertEqual(Run('''保准三加二比五减一小。'''), ''' 整叉劈了:该着 3加2比5减1小,咋错了咧? ''') self.assertEqual(Run('''辟谣三加二比五减一大。'''), ''' 整叉劈了:3加2比5减1大 不应该啊,咋错了咧? ''') self.assertEqual(Run('''辟谣三加二比五减一小。'''), '')
def testDelete(self): self.assertEqual(Run('老王是活雷锋。老王装二。削老王!唠唠:老王。'), '啥也不是\n') self.assertEqual( Run(''' 张家庄都是活雷锋。 张家庄来了个二。 张家庄来了个三。 削张家庄的老大! 唠唠:张家庄。 '''), '「啥也不是, 3」\n')
def testCompound(self): self.assertEqual( Run('开整:整完了。'), '') self.assertEqual( Run('开整:唠唠:1。整完了。'), '1\n') self.assertEqual( Run('开整:唠唠:1。唠唠:2。整完了。'), '1\n2\n')
def testPrintBool(self): self.assertEqual( Run('老王是活雷锋。唠唠:老王。唠唠:老王啥也不是。'), '啥也不是\n对\n') self.assertEqual( Run('唠唠:五比二大。'), '对\n') self.assertEqual( Run('唠唠:五比二大、五比二小、一跟2一样一样的、1跟二不是一样一样的。'), '对错错对\n')
def testArithmetic(self): self.assertEqual( Run('唠唠:五加二。'), '7\n') self.assertEqual( Run('唠唠:五减二。'), '3\n') self.assertEqual( Run('唠唠:五乘二。'), '10\n') self.assertEqual( Run('唠唠:十除以二。'), '5.0\n') self.assertEqual( Run('唠唠:十齐整整地除以三。'), '3\n') self.assertEqual( Run('唠唠:五加七乘二。'), '19\n') self.assertEqual( Run('唠唠:(五加七)乘二。'), '24\n') self.assertEqual( Run('唠唠:(五加七)乘二。'), '24\n') self.assertEqual( Run('唠唠:(五减(四减三))乘二。'), '8\n')
def testArithmetic(self): self.assertEqual( Run(u'唠唠:五加二。'), u'7\n') self.assertEqual( Run(u'唠唠:五减二。'), u'3\n') self.assertEqual( Run(u'唠唠:五乘二。'), u'10\n') self.assertEqual( Run(u'唠唠:十除以二。'), u'5.0\n') self.assertEqual( Run(u'唠唠:五加七乘二。'), u'19\n') self.assertEqual( Run(u'唠唠:(五加七)乘二。'), u'24\n') self.assertEqual( Run(u'唠唠:(五加七)乘二。'), u'24\n') self.assertEqual( Run(u'唠唠:(五减(四减三))乘二。'), u'8\n')
def testDecrements(self): self.assertEqual(Run('老张是活雷锋。老张装二。老张稍稍。唠唠:老张。'), '1\n') self.assertEqual(Run('老张是活雷锋。老张装三。老张稍五步。唠唠:老张。'), '-2\n') self.assertEqual( Run(''' 张家庄都是活雷锋。 张家庄来了个二。 张家庄的老大稍稍。 唠唠:张家庄的老大。 张家庄的老大稍五步。 唠唠:张家庄的老大。 '''), '''1 -4 ''')
def testIncrements(self): self.assertEqual(Run('老张是活雷锋。老张装二。老张走走。唠唠:老张。'), '3\n') self.assertEqual(Run('老张是活雷锋。老张装三。老张走五步。唠唠:老张。'), '8\n') self.assertEqual( Run(''' 张家庄都是活雷锋。 张家庄来了个二。 张家庄的老大走走。 唠唠:张家庄的老大。 张家庄的老大走五步。 唠唠:张家庄的老大。 '''), '''3 8 ''')
def testDel(self): self.assertTrue('整叉劈了' in Run(''' 老王是活雷锋。 炮决老王。 唠唠:老王。 ''')) self.assertEqual( Run(''' 张家庄都是活雷锋。 张家庄来了个五。 张家庄来了个六。 炮决张家庄的老大。 唠唠:张家庄。 '''), '''「6」 ''')
def testImport(self): self.assertEqual( Run(''' 翠花,上 re。 寻思:整re.match(“a.*”,“abc”)? 要行咧就唠唠:“OK”。 '''), 'OK\n')
def testArray(self): self.assertEqual( Run(''' 张家庄都是活雷锋。 # 张家庄是个群众变量。初始值是[]。 唠唠:张家庄。 张家庄来了个二加三。 # 张家庄现在 = [5]。 唠唠:张家庄。 张家庄来了个“大”。 # 张家庄现在 = [5, '大'] 唠唠:张家庄。 唠唠:张家庄有几个坑。 唠唠:张家庄的老大。 # 第一个人(5)。 唠唠:张家庄的老(三减一)。 # 第二个人('大')。 唠唠:张家庄的老幺。 # 最后一个人('大')。 李家村都是活雷锋。 # 李家村也是个群众变量。初始值是[]。 李家村来了个三。 # 李家村现在 = [3]。 李家村来了个张家庄。 # 群众的一个元素本身可以是群众。李家村现在 = [3, [5, '大']]。 唠唠:李家村。 唠唠:李家村的老幺的老大。 # 5。 削张家庄。 # 张家庄现在啥也不是。 唠唠:张家庄。 '''), '''[] [5] [5, '大'] 2 5 大 大 [3, [5, '大']] 5 啥也不是 ''')
def testArray(self): self.assertEqual( Run(''' 张家庄都是活雷锋。 # 张家庄是个群众变量。初始值是「」。 唠唠:张家庄。 张家庄来了个二加三。 # 张家庄现在 = 「5」。 唠唠:张家庄。 张家庄来了个“大”。 # 张家庄现在 = 「5, '大'」 唠唠:张家庄。 唠唠:张家庄有几个坑。 唠唠:张家庄的老大。 # 第一个人(5)。 唠唠:张家庄的老(三减一)。 # 第二个人('大')。 唠唠:张家庄的老幺。 # 最后一个人('大')。 李家村都是活雷锋。 # 李家村也是个群众变量。初始值是「」。 李家村来了个三。 # 李家村现在 = 「3」。 李家村来了个张家庄。 # 群众的一个元素本身可以是群众。李家村现在 = 「3, 「5, '大'」」。 唠唠:李家村。 唠唠:李家村的老幺的老大。 # 5。 削张家庄。 # 张家庄现在啥也不是。 唠唠:张家庄。 '''), '''「」 「5」 「5, '大'」 2 5 大 大 「3, 「5, '大'」」 5 啥也不是 ''')
def testBoolLiteral(self): self.assertEqual( Run(''' 老王 装 没毛病。 寻思:老王? 要行咧就 唠唠:“老王没毛病!”。 '''), '''老王没毛病! ''') self.assertEqual( Run(''' 老王 装 有毛病。 寻思:老王? 要行咧就 唠唠:“老王没毛病!”。 要不行咧就 唠唠:“老王有毛病!”。 '''), '''老王有毛病! ''')
def testAssignmentToArrayElement(self): self.assertEqual( Run(''' 张家庄都是活雷锋。 张家庄来了个五。 张家庄的老大 装 张家庄的老大乘二。 唠唠:张家庄。'''), '「10」\n')
def testLoopWithCompositeVariable(self): self.assertEqual( Run(''' 张家庄都是活雷锋。 张家庄来了个二。 张家庄的老大从一到三磨叽: 唠唠:张家庄。 磨叽完了。 '''), '''[1] [2] [3] ''') self.assertEqual( Run(''' 张家庄都是活雷锋。 张家庄来了个二。 李家村都是活雷锋。 李家村来了个三。 李家村来了个五。 李家村来了个250。 张家庄的老大在李家村磨叽: 唠唠:张家庄。 磨叽完了。 '''), '''[3] [5] [250] ''') self.assertEqual( Run(''' 张家庄都是活雷锋。 张家庄来了个二。 张家庄的老大从一而终磨叽: 唠唠:张家庄。 尥蹶子。 磨叽完了。 '''), '''[1] ''') self.assertEqual( Run(''' 张家庄都是活雷锋。 张家庄来了个二。 张家庄的老大在苹果总部磨叽: 唠唠:张家庄。 尥蹶子。 磨叽完了。 '''), '''[1] ''')
def testLoopWithCompositeVariable(self): self.assertEqual( Run(''' 张家庄都是活雷锋。 张家庄来了个二。 张家庄的老大从一到三磨叽: 唠唠:张家庄。 磨叽完了。 '''), '''「1」 「2」 「3」 ''') self.assertEqual( Run(''' 张家庄都是活雷锋。 张家庄来了个二。 李家村都是活雷锋。 李家村来了个三。 李家村来了个五。 李家村来了个250。 张家庄的老大在李家村磨叽: 唠唠:张家庄。 磨叽完了。 '''), '''「3」 「5」 「250」 ''') self.assertEqual( Run(''' 张家庄都是活雷锋。 张家庄来了个二。 张家庄的老大从一而终磨叽: 唠唠:张家庄。 尥蹶子。 磨叽完了。 '''), '''「1」 ''') self.assertEqual( Run(''' 张家庄都是活雷锋。 张家庄来了个二。 张家庄的老大在苹果总部磨叽: 唠唠:张家庄。 尥蹶子。 磨叽完了。 '''), '''「1」 ''')
def testMultiArgFunc(self): self.assertEqual( Run(''' 求和(甲,乙)咋整: 滚犊子吧 甲加乙。 整完了。 唠唠:整求和(五,七)。 '''), '12\n') self.assertEqual( Run(''' 求和(甲,乙)咋整: 唠唠:甲加乙。 整完了。 整求和(五,七)。 '''), '12\n')
def testTuple(self): self.assertEqual(Run(''' 老王装抱团。 唠唠:老王。 '''), '''(抱团) ''') self.assertEqual(Run(''' 老王装三加一抱团。 唠唠:老王。 '''), '''(4抱团) ''') self.assertEqual(Run(''' 老王装 四 跟 五 抱团。 唠唠:老王。 '''), '''(4跟5抱团) ''') self.assertEqual( Run(''' 老王装 四 跟 五 跟 七 抱团。 唠唠:老王。 '''), '''(4跟5跟7抱团) ''') self.assertEqual( Run(''' 老王装 四 跟 五跟二一样一样的 抱团。 唠唠:老王。 '''), '''(4跟有毛病抱团) ''') self.assertEqual( Run(''' 老王装 五减一 跟 五跟二一样一样的 抱团。 唠唠:老王。 '''), '''(4跟有毛病抱团) ''') self.assertEqual( Run(''' 老王装 五减一 跟 五跟二一样一样的 跟 七跟七一样一样的 抱团。 唠唠:老王。 '''), '''(4跟有毛病跟没毛病抱团) ''') self.assertEqual( Run(''' 老王 装 五减一 跟 五跟二一样一样的 抱团。 老张 装 老王的老大。 老李 装 老王的老二。 唠唠:老王。 唠唠:老王 有几个坑。 唠唠:老张。 唠唠:老李。 '''), '''(4跟有毛病抱团) 2 4 有毛病 ''')
def testRecursiveFunc(self): self.assertEqual( Run(''' 【阶乘】(那啥)咋整: 寻思:那啥比一小? 要行咧就滚犊子吧一。 滚犊子吧那啥乘整【阶乘】(那啥减一)。 整完了。 唠唠:整【阶乘】(五)。 '''), '120\n')
def testRecursiveFunc(self): self.assertEqual( Run(''' 【阶乘】(几)咋整: 寻思:几比一小吗? 要行咧就滚犊子吧一。 滚犊子吧几乘整【阶乘】(几减一)。 整完了。 唠唠:整【阶乘】(五)。 '''), '120\n')
def testNoneLiteral(self): self.assertEqual( Run(''' 老王 装 啥也不是。 唠唠:老王。 寻思:老王? 要行咧就 唠唠:“老王没毛病!”。 要不行咧就 唠唠:“老王有毛病!”。 '''), '''啥也不是 老王有毛病! ''')