Exemple #1
0
    def testRaise(self):
        self.assertEqual(Run('''整叉劈了:“小朋友请回避!”。'''), '''
整叉劈了:小朋友请回避!
''')
        self.assertEqual(Run('''小王装2。整叉劈了:小王、“小朋友请回避!”。'''), '''
整叉劈了:2小朋友请回避!
''')
Exemple #2
0
    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」
''')
Exemple #3
0
 def testRunFunc(self):
   self.assertEqual(
       Run('埋汰咋整:唠唠:“你虎了吧唧”。整完了。'),
       '')
   self.assertEqual(
       Run('埋汰咋整:唠唠:“你虎了吧唧”。整完了。整埋汰。'),
       '你虎了吧唧\n')
Exemple #4
0
    def testCtorCall(self):
        self.assertEqual(
            Run('''
      无产阶级的接班银有名阶级咋整:
        新对象咋整:
          俺的名字装“无名”。
        整完了。
      整完了。

      老林 装 有名 的新对象。
      唠唠:老林的名字。
      '''), '''无名
''')
        self.assertEqual(
            Run('''
      无产阶级的接班银有名阶级咋整:
        新对象(名字)咋整:
          俺的名字装名字。
        整完了。
      整完了。

      老林 装 有名 的新对象(“林蛋大”)。
      唠唠:老林的名字。
      '''), '''林蛋大
''')
Exemple #5
0
 def testConcat(self):
   self.assertEqual(
       Run('唠唠:“牛”、二。'),
       '牛2\n')
   self.assertEqual(
       Run('唠唠:“老王”、665加一。'),
       '老王666\n')
Exemple #6
0
 def testDecrements(self):
   self.assertEqual(
       Run('老张是活雷锋。老张装二。老张稍稍。唠唠:老张。'),
       '1\n')
   self.assertEqual(
       Run('老张是活雷锋。老张装三。老张稍五步。唠唠:老张。'),
       '-2\n')
Exemple #7
0
 def testIncrements(self):
   self.assertEqual(
       Run('老张是活雷锋。老张装二。老张走走。唠唠:老张。'),
       '3\n')
   self.assertEqual(
       Run('老张是活雷锋。老张装三。老张走五步。唠唠:老张。'),
       '8\n')
Exemple #8
0
 def testPrintBool(self):
   self.assertEqual(
       Run(u'唠唠:五比二大。'),
       u'对\n')
   self.assertEqual(
       Run(u'唠唠:五比二大、五比二小、一跟2一样一样的、1跟二不是一样一样的。'),
       u'对错错对\n')
Exemple #9
0
    def testAssert(self):
        self.assertEqual(Run('''保准三加二比五减一还大。'''), '')
        self.assertEqual(Run('''保准三加二比五减一还小。'''), '''
整叉劈了:该着 3加2比5减1还小,咋有毛病了咧?
''')
        self.assertEqual(Run('''辟谣三加二比五减一还大。'''), '''
整叉劈了:3加2比5减1还大 不应该啊,咋有毛病了咧?
''')
        self.assertEqual(Run('''辟谣三加二比五减一还小。'''), '')
Exemple #10
0
    def testAssert(self):
        self.assertEqual(Run('''保准三加二比五减一大。'''), '')
        self.assertEqual(Run('''保准三加二比五减一小。'''), '''
整叉劈了:该着 3加2比5减1小,咋错了咧?
''')
        self.assertEqual(Run('''辟谣三加二比五减一大。'''), '''
整叉劈了:3加2比5减1大 不应该啊,咋错了咧?
''')
        self.assertEqual(Run('''辟谣三加二比五减一小。'''), '')
Exemple #11
0
    def testDelete(self):
        self.assertEqual(Run('老王是活雷锋。老王装二。削老王!唠唠:老王。'), '啥也不是\n')
        self.assertEqual(
            Run('''
张家庄都是活雷锋。
张家庄来了个二。
张家庄来了个三。
削张家庄的老大!
唠唠:张家庄。
'''), '「啥也不是, 3」\n')
Exemple #12
0
 def testCompound(self):
   self.assertEqual(
       Run('开整:整完了。'),
       '')
   self.assertEqual(
       Run('开整:唠唠:1。整完了。'),
       '1\n')
   self.assertEqual(
       Run('开整:唠唠:1。唠唠:2。整完了。'),
       '1\n2\n')
Exemple #13
0
 def testPrintBool(self):
   self.assertEqual(
       Run('老王是活雷锋。唠唠:老王。唠唠:老王啥也不是。'),
       '啥也不是\n对\n')
   self.assertEqual(
       Run('唠唠:五比二大。'),
       '对\n')
   self.assertEqual(
       Run('唠唠:五比二大、五比二小、一跟2一样一样的、1跟二不是一样一样的。'),
       '对错错对\n')
Exemple #14
0
 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')
Exemple #15
0
 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')
Exemple #16
0
    def testDecrements(self):
        self.assertEqual(Run('老张是活雷锋。老张装二。老张稍稍。唠唠:老张。'), '1\n')
        self.assertEqual(Run('老张是活雷锋。老张装三。老张稍五步。唠唠:老张。'), '-2\n')
        self.assertEqual(
            Run('''
张家庄都是活雷锋。
张家庄来了个二。
张家庄的老大稍稍。
唠唠:张家庄的老大。
张家庄的老大稍五步。
唠唠:张家庄的老大。
'''), '''1
-4
''')
Exemple #17
0
    def testIncrements(self):
        self.assertEqual(Run('老张是活雷锋。老张装二。老张走走。唠唠:老张。'), '3\n')
        self.assertEqual(Run('老张是活雷锋。老张装三。老张走五步。唠唠:老张。'), '8\n')
        self.assertEqual(
            Run('''
张家庄都是活雷锋。
张家庄来了个二。
张家庄的老大走走。
唠唠:张家庄的老大。
张家庄的老大走五步。
唠唠:张家庄的老大。
'''), '''3
8
''')
Exemple #18
0
    def testDel(self):
        self.assertTrue('整叉劈了' in Run('''
老王是活雷锋。
炮决老王。
唠唠:老王。
'''))
        self.assertEqual(
            Run('''
张家庄都是活雷锋。
张家庄来了个五。
张家庄来了个六。
炮决张家庄的老大。
唠唠:张家庄。
'''), '''「6」
''')
Exemple #19
0
 def testImport(self):
     self.assertEqual(
         Run('''
   翠花,上 re。
   寻思:整re.match(“a.*”,“abc”)?
   要行咧就唠唠:“OK”。
   '''), 'OK\n')
Exemple #20
0
    def testArray(self):
        self.assertEqual(
            Run('''
张家庄都是活雷锋。  # 张家庄是个群众变量。初始值是[]。
唠唠:张家庄。
张家庄来了个二加三。  # 张家庄现在 = [5]。
唠唠:张家庄。
张家庄来了个“大”。   # 张家庄现在 = [5, '大']
唠唠:张家庄。
唠唠:张家庄有几个坑。
唠唠:张家庄的老大。  # 第一个人(5)。
唠唠:张家庄的老(三减一)。  # 第二个人('大')。
唠唠:张家庄的老幺。  # 最后一个人('大')。
李家村都是活雷锋。  # 李家村也是个群众变量。初始值是[]。
李家村来了个三。  # 李家村现在 = [3]。
李家村来了个张家庄。  # 群众的一个元素本身可以是群众。李家村现在 = [3, [5, '大']]。
唠唠:李家村。
唠唠:李家村的老幺的老大。  # 5。
削张家庄。  # 张家庄现在啥也不是。
唠唠:张家庄。
'''), '''[]
[5]
[5, '大']
2
5
大
大
[3, [5, '大']]
5
啥也不是
''')
Exemple #21
0
    def testArray(self):
        self.assertEqual(
            Run('''
张家庄都是活雷锋。  # 张家庄是个群众变量。初始值是「」。
唠唠:张家庄。
张家庄来了个二加三。  # 张家庄现在 = 「5」。
唠唠:张家庄。
张家庄来了个“大”。   # 张家庄现在 = 「5, '大'」
唠唠:张家庄。
唠唠:张家庄有几个坑。
唠唠:张家庄的老大。  # 第一个人(5)。
唠唠:张家庄的老(三减一)。  # 第二个人('大')。
唠唠:张家庄的老幺。  # 最后一个人('大')。
李家村都是活雷锋。  # 李家村也是个群众变量。初始值是「」。
李家村来了个三。  # 李家村现在 = 「3」。
李家村来了个张家庄。  # 群众的一个元素本身可以是群众。李家村现在 = 「3, 「5, '大'」」。
唠唠:李家村。
唠唠:李家村的老幺的老大。  # 5。
削张家庄。  # 张家庄现在啥也不是。
唠唠:张家庄。
'''), '''「」
「5」
「5, '大'」
2
5
大
大
「3, 「5, '大'」」
5
啥也不是
''')
Exemple #22
0
    def testBoolLiteral(self):
        self.assertEqual(
            Run('''
      老王 装 没毛病。
      寻思:老王?
      要行咧就 唠唠:“老王没毛病!”。
      '''), '''老王没毛病!
''')
        self.assertEqual(
            Run('''
      老王 装 有毛病。
      寻思:老王?
      要行咧就 唠唠:“老王没毛病!”。
      要不行咧就 唠唠:“老王有毛病!”。
      '''), '''老王有毛病!
''')
Exemple #23
0
    def testAssignmentToArrayElement(self):
        self.assertEqual(
            Run('''
张家庄都是活雷锋。
张家庄来了个五。
张家庄的老大 装 张家庄的老大乘二。
唠唠:张家庄。'''), '「10」\n')
Exemple #24
0
    def testLoopWithCompositeVariable(self):
        self.assertEqual(
            Run('''
张家庄都是活雷锋。
张家庄来了个二。
张家庄的老大从一到三磨叽:
唠唠:张家庄。
磨叽完了。
'''), '''[1]
[2]
[3]
''')
        self.assertEqual(
            Run('''
张家庄都是活雷锋。
张家庄来了个二。
李家村都是活雷锋。
李家村来了个三。
李家村来了个五。
李家村来了个250。
张家庄的老大在李家村磨叽:
唠唠:张家庄。
磨叽完了。
'''), '''[3]
[5]
[250]
''')
        self.assertEqual(
            Run('''
张家庄都是活雷锋。
张家庄来了个二。
张家庄的老大从一而终磨叽:
唠唠:张家庄。
尥蹶子。
磨叽完了。
'''), '''[1]
''')
        self.assertEqual(
            Run('''
张家庄都是活雷锋。
张家庄来了个二。
张家庄的老大在苹果总部磨叽:
唠唠:张家庄。
尥蹶子。
磨叽完了。
'''), '''[1]
''')
Exemple #25
0
    def testLoopWithCompositeVariable(self):
        self.assertEqual(
            Run('''
张家庄都是活雷锋。
张家庄来了个二。
张家庄的老大从一到三磨叽:
唠唠:张家庄。
磨叽完了。
'''), '''「1」
「2」
「3」
''')
        self.assertEqual(
            Run('''
张家庄都是活雷锋。
张家庄来了个二。
李家村都是活雷锋。
李家村来了个三。
李家村来了个五。
李家村来了个250。
张家庄的老大在李家村磨叽:
唠唠:张家庄。
磨叽完了。
'''), '''「3」
「5」
「250」
''')
        self.assertEqual(
            Run('''
张家庄都是活雷锋。
张家庄来了个二。
张家庄的老大从一而终磨叽:
唠唠:张家庄。
尥蹶子。
磨叽完了。
'''), '''「1」
''')
        self.assertEqual(
            Run('''
张家庄都是活雷锋。
张家庄来了个二。
张家庄的老大在苹果总部磨叽:
唠唠:张家庄。
尥蹶子。
磨叽完了。
'''), '''「1」
''')
Exemple #26
0
    def testMultiArgFunc(self):
        self.assertEqual(
            Run('''
求和(甲,乙)咋整:
  滚犊子吧 甲加乙。
整完了。

唠唠:整求和(五,七)。
        '''), '12\n')
        self.assertEqual(
            Run('''
求和(甲,乙)咋整:
  唠唠:甲加乙。
整完了。

整求和(五,七)。
        '''), '12\n')
Exemple #27
0
    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
有毛病
''')
Exemple #28
0
    def testRecursiveFunc(self):
        self.assertEqual(
            Run('''
【阶乘】(那啥)咋整:
寻思:那啥比一小?
要行咧就滚犊子吧一。
滚犊子吧那啥乘整【阶乘】(那啥减一)。
整完了。

唠唠:整【阶乘】(五)。
        '''), '120\n')
Exemple #29
0
    def testRecursiveFunc(self):
        self.assertEqual(
            Run('''
【阶乘】(几)咋整:
寻思:几比一小吗?
要行咧就滚犊子吧一。
滚犊子吧几乘整【阶乘】(几减一)。
整完了。

唠唠:整【阶乘】(五)。
        '''), '120\n')
Exemple #30
0
    def testNoneLiteral(self):
        self.assertEqual(
            Run('''
      老王 装 啥也不是。
      唠唠:老王。
      寻思:老王?
      要行咧就 唠唠:“老王没毛病!”。
      要不行咧就 唠唠:“老王有毛病!”。
      '''), '''啥也不是
老王有毛病!
''')