using uCalcSoftware;

var uc = new uCalc();
// Check default data type
Console.WriteLine(uc.DefaultDataType.Name);

// This examples shows setting the default data type in 3
// different ways: by BuiltInType enum, DataType ojbect,
// or data type by name (string)

// Change default default data type
uc.DefaultDataType = uc.DataTypeOf(BuiltInType.Integer_16);
Console.WriteLine(uc.DefaultDataType.Name);

// Test new default (returns integers instead of double)

uc.DefineFunction("ff(x, y) = (x + y)/3");
// same as ff(x As int16, y As int16) As int16 = ...

uc.DefineFunction("gg(x) = x*100");
// same as gg(x As int16) As int16 = ...

Console.WriteLine(uc.Eval("ff(4, 12)"));
Console.WriteLine(uc.Eval("gg(6.1)"));

uc.SetDefaultDataType("Single");
Console.WriteLine(uc.DefaultDataType.Name);

// Change back to original default (double)
uc.SetDefaultDataType(BuiltInType.Float_Double);

// Verify that default is now double
Console.WriteLine(uc.DefaultDataType.Name);