Calc TestMethods(string code) { var mi = new ArduinoTestMachineInfo(); var c = new Calc(); mi.AddGlobalMethods(c); Run("void main() { " + code.Replace("c.", "") + "}", mi); return(c); }
Calc TestReference(string code) { var mi = new ArduinoTestMachineInfo(); var c = new Calc(); mi.AddGlobalReference("c", c); Run("void main() { " + code + "}", mi); return(c); }
ArduinoTestMachineInfo.TestArduino Run(string code) { var machine = new ArduinoTestMachineInfo(); var fullCode = code + "\n\nvoid main() { __cinit(); setup(); while(1){loop();}}"; var i = CLanguageService.CreateInterpreter(fullCode, machine, new TestPrinter()); i.Reset("main"); i.Step(); return(machine.Arduino); }
public void ArduinoPromote() { var mi = new ArduinoTestMachineInfo(); TestPromote(mi, "unsigned char", 2, Signedness.Signed); TestPromote(mi, "char", 2, Signedness.Signed); TestPromote(mi, "short", 2, Signedness.Signed); TestPromote(mi, "unsigned short", 2, Signedness.Unsigned); TestPromote(mi, "int", 2, Signedness.Signed); TestPromote(mi, "unsigned int", 2, Signedness.Unsigned); TestPromote(mi, "long", 4, Signedness.Signed); TestPromote(mi, "unsigned long", 4, Signedness.Unsigned); }
public void ArduinoArithmatic() { var mi = new ArduinoTestMachineInfo(); TestArithmetic(mi, "char", "char", CBasicType.SignedInt); TestArithmetic(mi, "char", "unsigned char", CBasicType.SignedInt); TestArithmetic(mi, "char", "short", CBasicType.SignedInt); TestArithmetic(mi, "char", "unsigned short", CBasicType.UnsignedInt); TestArithmetic(mi, "char", "int", CBasicType.SignedInt); TestArithmetic(mi, "char", "unsigned int", CBasicType.UnsignedInt); TestArithmetic(mi, "char", "long", CBasicType.SignedLongInt); TestArithmetic(mi, "char", "unsigned long", CBasicType.UnsignedLongInt); TestArithmetic(mi, "unsigned char", "char", CBasicType.SignedInt); TestArithmetic(mi, "unsigned char", "unsigned char", CBasicType.SignedInt); TestArithmetic(mi, "unsigned char", "short", CBasicType.SignedInt); TestArithmetic(mi, "unsigned char", "unsigned short", CBasicType.UnsignedInt); TestArithmetic(mi, "unsigned char", "int", CBasicType.SignedInt); TestArithmetic(mi, "unsigned char", "unsigned int", CBasicType.UnsignedInt); TestArithmetic(mi, "unsigned char", "long", CBasicType.SignedLongInt); TestArithmetic(mi, "unsigned char", "unsigned long", CBasicType.UnsignedLongInt); TestArithmetic(mi, "short", "char", CBasicType.SignedInt); TestArithmetic(mi, "short", "unsigned char", CBasicType.SignedInt); TestArithmetic(mi, "short", "short", CBasicType.SignedInt); TestArithmetic(mi, "short", "unsigned short", CBasicType.UnsignedInt); TestArithmetic(mi, "short", "int", CBasicType.SignedInt); TestArithmetic(mi, "short", "unsigned int", CBasicType.UnsignedInt); TestArithmetic(mi, "short", "long", CBasicType.SignedLongInt); TestArithmetic(mi, "short", "unsigned long", CBasicType.UnsignedLongInt); TestArithmetic(mi, "unsigned short", "char", CBasicType.UnsignedInt); TestArithmetic(mi, "unsigned short", "unsigned char", CBasicType.UnsignedInt); TestArithmetic(mi, "unsigned short", "short", CBasicType.UnsignedInt); TestArithmetic(mi, "unsigned short", "unsigned short", CBasicType.UnsignedInt); TestArithmetic(mi, "unsigned short", "int", CBasicType.UnsignedInt); TestArithmetic(mi, "unsigned short", "unsigned int", CBasicType.UnsignedInt); TestArithmetic(mi, "unsigned short", "long", CBasicType.SignedLongInt); TestArithmetic(mi, "unsigned short", "unsigned long", CBasicType.UnsignedLongInt); TestArithmetic(mi, "int", "char", CBasicType.SignedInt); TestArithmetic(mi, "int", "unsigned char", CBasicType.SignedInt); TestArithmetic(mi, "int", "short", CBasicType.SignedInt); TestArithmetic(mi, "int", "unsigned short", CBasicType.UnsignedInt); TestArithmetic(mi, "int", "int", CBasicType.SignedInt); TestArithmetic(mi, "int", "unsigned int", CBasicType.UnsignedInt); TestArithmetic(mi, "int", "long", CBasicType.SignedLongInt); TestArithmetic(mi, "int", "unsigned long", CBasicType.UnsignedLongInt); TestArithmetic(mi, "unsigned int", "char", CBasicType.UnsignedInt); TestArithmetic(mi, "unsigned int", "unsigned char", CBasicType.UnsignedInt); TestArithmetic(mi, "unsigned int", "short", CBasicType.UnsignedInt); TestArithmetic(mi, "unsigned int", "unsigned short", CBasicType.UnsignedInt); TestArithmetic(mi, "unsigned int", "int", CBasicType.UnsignedInt); TestArithmetic(mi, "unsigned int", "unsigned int", CBasicType.UnsignedInt); TestArithmetic(mi, "unsigned int", "long", CBasicType.SignedLongInt); TestArithmetic(mi, "unsigned int", "unsigned long", CBasicType.UnsignedLongInt); TestArithmetic(mi, "long", "char", CBasicType.SignedLongInt); TestArithmetic(mi, "long", "unsigned char", CBasicType.SignedLongInt); TestArithmetic(mi, "long", "short", CBasicType.SignedLongInt); TestArithmetic(mi, "long", "unsigned short", CBasicType.SignedLongInt); TestArithmetic(mi, "long", "int", CBasicType.SignedLongInt); TestArithmetic(mi, "long", "unsigned int", CBasicType.SignedLongInt); TestArithmetic(mi, "long", "long", CBasicType.SignedLongInt); TestArithmetic(mi, "long", "unsigned long", CBasicType.UnsignedLongInt); TestArithmetic(mi, "unsigned long", "char", CBasicType.UnsignedLongInt); TestArithmetic(mi, "unsigned long", "unsigned char", CBasicType.UnsignedLongInt); TestArithmetic(mi, "unsigned long", "short", CBasicType.UnsignedLongInt); TestArithmetic(mi, "unsigned long", "unsigned short", CBasicType.UnsignedLongInt); TestArithmetic(mi, "unsigned long", "int", CBasicType.UnsignedLongInt); TestArithmetic(mi, "unsigned long", "unsigned int", CBasicType.UnsignedLongInt); TestArithmetic(mi, "unsigned long", "long", CBasicType.UnsignedLongInt); TestArithmetic(mi, "unsigned long", "unsigned long", CBasicType.UnsignedLongInt); }