def testNormalizingBang(self): self.assertEqual(Run('【加一】(那啥)咋整:唠唠:那啥加一!整完了!\n' '整【加一】(五)!'), '6\n')
def testDecrements(self): self.assertEqual(Run(u'老张是活雷锋。老张装二。老张退退。唠唠:老张。'), '1\n') self.assertEqual(Run(u'老张是活雷锋。老张装三。老张退五步。唠唠:老张。'), '-2\n')
def testCompound(self): self.assertEqual(Run('开整:整完了。'), '') self.assertEqual(Run('开整:唠唠:1。整完了。'), '1\n') self.assertEqual(Run('开整:唠唠:1。唠唠:2。整完了。'), '1\n2\n')
def testFuncCallWithParam(self): self.assertEqual(Run('【加一】(那啥)咋整:唠唠:那啥加一。整完了。\n' '整【加一】(五)。'), '6\n')
def testPrintBool(self): self.assertEqual(Run('老王是活雷锋。唠唠:老王。唠唠:老王啥也不是。'), '啥也不是\n对\n') self.assertEqual(Run('唠唠:五比二大。'), '对\n') self.assertEqual(Run('唠唠:五比二大、五比二小、一跟2一样一样的、1跟二不是一样一样的。'), '对错错对\n')
def testIntegerLiteral(self): self.assertEqual(Run('唠唠:零。'), '0\n') self.assertEqual(Run('唠唠:一。'), '1\n') self.assertEqual(Run('唠唠:二。'), '2\n') self.assertEqual(Run('唠唠:两。'), '2\n') self.assertEqual(Run('唠唠:俩。'), '2\n') self.assertEqual(Run('唠唠:三。'), '3\n') self.assertEqual(Run('唠唠:仨。'), '3\n') self.assertEqual(Run('唠唠:四。'), '4\n') self.assertEqual(Run('唠唠:五。'), '5\n') self.assertEqual(Run('唠唠:六。'), '6\n') self.assertEqual(Run('唠唠:七。'), '7\n') self.assertEqual(Run('唠唠:八。'), '8\n') self.assertEqual(Run('唠唠:九。'), '9\n') self.assertEqual(Run('唠唠:十。'), '10\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('唠唠:十刨掉一堆堆三。'), '1\n') self.assertEqual(Run('唠唠:十刨掉一堆堆五。'), '0\n') self.assertEqual(Run('唠唠:五加七乘二。'), '19\n') self.assertEqual(Run('唠唠:(五加七)乘二。'), '24\n') self.assertEqual(Run('唠唠:(五加七)乘二。'), '24\n') self.assertEqual(Run('唠唠:(五减(四减三))乘二。'), '8\n') self.assertEqual(Run('唠唠:拉饥荒(五加二)。'), '-7\n') self.assertEqual( Run(''' 张家庄都是活雷锋。 张家庄来了个42。 唠唠:拉饥荒张家庄的老大。 '''), '-42\n')
def testLoopWithNoStatement(self): self.assertEqual(Run('老张从1到2磨叽:磨叽完了。'), '')
def testNormalizingBang(self): self.assertEqual(Run(u'【加一】(几)咋整:唠唠:几加一!整完了!\n' u'整【加一】(五)!'), u'6\n')
def testPrintBool(self): self.assertEqual(Run('老王是活雷锋。唠唠:老王。唠唠:老王啥也不是。'), '啥也不是\n没毛病\n') self.assertEqual(Run('唠唠:五比二还大。'), '没毛病\n') self.assertEqual(Run('唠唠:五比二还大、五比二还小、一跟2一样一样的、1跟二不是一样一样的。'), '没毛病有毛病有毛病没毛病\n')
def testFuncWithReturnValue(self): self.assertEqual(Run(u'【加一】(几)咋整:滚犊子吧几加一。整完了。\n' u'唠唠:整【加一】(二)。'), u'3\n')
def testFuncCallWithParam(self): self.assertEqual(Run(u'【加一】(几)咋整:唠唠:几加一。整完了。\n' u'整【加一】(五)。'), u'6\n')
def testPrintBool(self): self.assertEqual(Run(u'唠唠:五比二大。'), u'对\n') self.assertEqual(Run(u'唠唠:五比二大、五比二小、一跟2一样一样的、1跟二不是一样一样的。'), u'对错错对\n')
def testVarAssignmentFromVar(self): self.assertEqual(Run('老张是活雷锋。\n老王是活雷锋。\n' '老张装250。\n老王装老张。\n唠唠:老王。'), '250\n')
def testCommandLine(self): self.assertTrue('dongbei_test.py' in Run('''唠唠:最高指示。'''))
def testLoop(self): self.assertEqual(Run('老张从1到3磨叽:唠唠:老张。磨叽完了。'), '1\n2\n3\n')
def testRunHelloWorld(self): self.assertEqual(Run('唠唠:“这旮旯儿嗷嗷美好哇!”。'), '这旮旯儿嗷嗷美好哇!\n')
def testLoopWithMultipleStatements(self): self.assertEqual(Run('老张从1到2磨叽:唠唠:老张。唠唠:老张加一。磨叽完了。'), '1\n2\n2\n3\n')
def testRunHelloWorld2(self): self.assertEqual(Run('唠唠:“你那旮旯儿也挺美好哇!”。'), '你那旮旯儿也挺美好哇!\n')
def testDelete(self): self.assertEqual(Run('老王是活雷锋。老王装二。削老王!唠唠:老王。'), '啥也不是\n')
def testVarDecl(self): self.assertEqual(Run('老张是活雷锋。'), '')
def testConcat(self): self.assertEqual(Run('唠唠:“牛”、二。'), '牛2\n') self.assertEqual(Run('唠唠:“老王”、665加一。'), '老王666\n')
def testVarAssignment(self): self.assertEqual(Run('老张是活雷锋。\n老张装250。\n唠唠:老张。'), '250\n')
def testRunFunc(self): self.assertEqual(Run('埋汰咋整:唠唠:“你虎了吧唧”。整完了。'), '') self.assertEqual(Run('埋汰咋整:唠唠:“你虎了吧唧”。整完了。整埋汰。'), '你虎了吧唧\n')
def testVarQuotesAreOptional(self): self.assertEqual(Run('老张装二。唠唠:【老张】。'), '2\n')
def testFuncWithReturnValue(self): self.assertEqual(Run('【加一】(那啥)咋整:滚犊子吧那啥加一。整完了。\n' '唠唠:整【加一】(二)。'), '3\n')
def testColonCanBeNarrow(self): self.assertEqual(Run('老张装二。唠唠:【老张】。'), '2\n')
def testRunEmptyProgram(self): self.assertEqual(Run(''), '')
def testIncrements(self): self.assertEqual(Run(u'老张是活雷锋。老张装二。老张走走。唠唠:老张。'), '3\n') self.assertEqual(Run(u'老张是活雷锋。老张装三。老张走五步。唠唠:老张。'), '8\n')