Пример #1
0
    def testEmitCode(self):
        program = util.source('''\
            var x as int
            print x
        ''')

        util.runProgram('variable_test', program, ['mscorlib'])
Пример #2
0
    def testCallMethod(self):
        program = util.source('''
            var o = TestClass.TestClass()
            o.Method('Hello to C# from Nine!')
        ''')

        util.runProgram('extern_method_test', program, ['bin/ClassLibrary1'])
Пример #3
0
    def testCreateType(self):
        program = util.source('''
            delegate MyDelegate(a as int) as string
            '''
        )

        util.runProgram('delegate_type_test', program, [])
Пример #4
0
    def testCompileString(self):
        program = util.source('''
            print 'Expect 9:'
            var count = 0
            if 1<9:
                count = count + 1
            else:
                count = count + 99

            if 1>9:
                pass
            else:
                count = count + 3

            if 1>9:
                pass
            elif 9>1:
                count = count + 4

            if 9<1:
                pass
            elif 9<1:
                pass
            else:
                count = count + 1

            print count

            if count == 9:
                print 'Looks like it passed.  Woohoo!'
            else:
                print 'Oh no it failed!!' ''')

        util.runProgram('if_test',program)
Пример #5
0
    def testCodeGen(self):
        program = util.source('''
            var a = -9
            var b = -3.1415926535897931
            var c = +9
            var d = -c
            var e = ~0
            var f = ~(~1)

            print a
            print b
            print c
            print d
            print e
            print f

            var t1 = true
            var f1 = false
            var f2 = not t1
            var t2 = not f2
            var t3 = not f1

            print ''
            print 'Expect True, False, False, True, True'
            print t1
            print f1
            print f2
            print t2
            print t3
        ''')

        util.runProgram('unary_codegen_test', program)
Пример #6
0
    def testReadAttribute(self):
        program = util.source('''
            var o = TestClass.TestClass()
            print o.x
        ''')

        util.runProgram('extern_read_attr_test', program, ['bin/ClassLibrary1'])
Пример #7
0
 def testTypes(self):
     util.runProgram('print_types', util.source('''
         print (27 as int)
         print (27 as float)
         print (27 as System.Double)
         print (true as boolean)
     '''), ['mscorlib'])
Пример #8
0
    def testReadProperty(self):
        program = util.source('''
            var o = TestClass.TestClass(2)
            print o.Property
        ''')

        util.runProgram('extern_read_property_test', program, ['mscorlib', 'bin/ClassLibrary1'])
Пример #9
0
    def testWriteAttribute(self):
        program = util.source('''
            var o = TestClass.TestClass()
            o.x = 999
            print o.x
        ''')

        util.runProgram('extern_write_attr_test', program, ['bin/ClassLibrary1'])
Пример #10
0
    def testCallValueTypeMember(self):
        program = util.source('''
            var pi = 3.1415926535897931
            print 'Pi:'
            print pi.ToString()
        ''')

        util.runProgram('extern_call_value_type_member_test', program)
Пример #11
0
    def testWriteProperty(self):
        program = util.source('''
            var o = TestClass.TestClass(2)
            o.Property = 'Nine!'
            print o.Property
        ''')

        util.runProgram('extern_write_property_test', program, ['mscorlib', 'bin/ClassLibrary1'])
Пример #12
0
    def testResolveOverload(self):
        program = util.source('''
            var o = TestClass.TestClass(2)
            o.Method(9)
            #o.Method('String!')
        ''')

        util.runProgram('extern_overload_test', program, ['mscorlib', 'bin/ClassLibrary1'])
Пример #13
0
    def testIndexValueTypeMethod(self):
        program = util.source('''
            var things = array(int, 1)

            print things[0].ToString()
        ''')

        util.runProgram('array_index_value_type_method_test', program)
Пример #14
0
 def testCompileString(self):
     program = util.source('''
         class Foo:
             def ctor(a as string):
                 print a
                 
         var b as Foo = Foo("Constructor works!")'''
     )
     util.runProgram("ctor_test", program, [])
Пример #15
0
    def testCompileString(self):
        program = '''\
print 'ADD'
print 3 + 6
print 'SUB'
print 12 - 3
'''

        util.runProgram('printadd_test', program)
Пример #16
0
 def testAssignChar(self):
     p=util.source('''
         var a = "niNe"
         var b as char= a[2]
         
         print "see N:"
         print b
     ''')
     util.runProgram('TestStringIndexAssign',p)
Пример #17
0
    def testAssignDelegateExternal(self):
        program = util.source('''
            delegate ExternDelegate(arg as System.Double) as System.Double

            var b = ExternDelegate(System.Math.Cos)
            '''
        )

        util.runProgram('delegate_external_assign_test', program, ['mscorlib'])
Пример #18
0
    def testCodeGen(self):
        program = util.source('''
            var x = 27
            var y = 3
            var z = 'The following line should be "9"'
            print z
            print x / y
        ''')

        util.runProgram('print_codegen_test', program)
Пример #19
0
    def testAssignDelegateExternalOverloaded(self):
        program = util.source('''
            delegate ExternDelegate(a as int) as string

            var b = ExternDelegate(System.Convert.ToString)

            print b(9)'''
        )

        util.runProgram('delegate_external_overloaded_assign_test', program, ['mscorlib'])
Пример #20
0
    def testAssign(self):
        program = util.source('''
            var oob as System.Object
            var x = 1
            print x
            oob = 1
            print oob
        ''')

        util.runProgram('box_assign_test', program, ['mscorlib'])
Пример #21
0
    def testGenerateCode(self):
        program = util.source('''
            var x as int
            var y = x
            var z = 'hooooorj'
            print z
            print x
        ''')

        util.runProgram('vardecl_test', program)
Пример #22
0
    def testPrimitiveMethods(self):
        program = util.source(
            """
            var y = "Hello Nine!"

            print y.Length
        """
        )

        util.runProgram("primitive_method_test", program, ["mscorlib"])
Пример #23
0
 def testCharEmitLoad(self):
     p=util.source('''
         var a = "x"
         var b = 'y'
         
         print "see x then y:"
         print a[0]
         print b[0]
     ''')
     util.runProgram('TestStringIndexCharEmitLoad',p)
Пример #24
0
    def testStringConcat(self):
        program = util.source('''
            var x = "Hello "
            var y = "World"
            var z = "!"

            var a = x + y + z
            print a
        ''')

        util.runProgram('string_concat_test', program)
Пример #25
0
    def testOverride(self):
        program = util.source('''
            class MyClass(System.Object):
                override def ToString() as string:
                    return "Hello, overriding Object.ToString here!"

            var cls = MyClass()
            print cls
        ''')

        util.runProgram('external_override_test', program, ['mscorlib'])
Пример #26
0
    def testAssignDelegate(self):
        program = util.source('''
            def output(a as int):
                print a

            delegate MyDelegate(a as int)

            var b = MyDelegate(output)'''
        )

        util.runProgram('delegate_assign_test', program, [])
Пример #27
0
    def testCodeGen(self):
        program = util.source('''
            def foo(x as int, y as int, msg as string):
                print msg
                var result = x * y
                print result

            foo(3, 3, 'Following should be 9:')
        ''')

        util.runProgram('functioncall_test', program)
Пример #28
0
    def testCallMethod(self):
        program = util.source('''
            class A:
                def foo(a as int, b as int):
                    print a + b

            var a = A()
            a.foo(4, 5)
        ''')

        util.runProgram('functioncall_method_test', program)
Пример #29
0
    def testRun(self):
        program = util.source('''
            print "There should be nothing other than this"
            var x = 5

            while x > 1:
                x=x-1
                continue
                print x
        ''')

        util.runProgram('continue_test', program)
Пример #30
0
    def testCompile(self):
        program = util.source(
            """
            try:
                raise System.StackOverflowException()
                print 'Failed to raise! @_@'
            except System.StackOverflowException:
                print "Caught an exception"
        """
        )

        util.runProgram("raise_test", program, ["mscorlib"])