RTL: Sqrt & Pow
This commit is contained in:
@@ -65,7 +65,7 @@ var
|
||||
Expected: TDateTime;
|
||||
begin
|
||||
// Act
|
||||
Res := FEnv.Run(TAstScript.Parse('(Date 2025 11 24)'));
|
||||
Res := FEnv.Run(TAstScript.Parse('(date 2025 11 24)'));
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(TDataValueKind.vkScalar, Res.Kind, 'Result should be scalar');
|
||||
@@ -85,7 +85,7 @@ begin
|
||||
Sleep(1);
|
||||
|
||||
// Act
|
||||
Res := FEnv.Run(TAstScript.Parse('(Now)'));
|
||||
Res := FEnv.Run(TAstScript.Parse('(now)'));
|
||||
|
||||
After := System.SysUtils.Now;
|
||||
|
||||
@@ -103,7 +103,7 @@ var
|
||||
Res: TDataValue;
|
||||
begin
|
||||
// (> (Date y1 m1 d1) (Date y2 m2 d2))
|
||||
Script := Format('(> (Date %d %d %d) (Date %d %d %d))', [Y1, M1, D1, Y2, M2, D2]);
|
||||
Script := Format('(> (date %d %d %d) (date %d %d %d))', [Y1, M1, D1, Y2, M2, D2]);
|
||||
|
||||
Res := FEnv.Run(TAstScript.Parse(Script));
|
||||
|
||||
@@ -120,7 +120,7 @@ var
|
||||
Res: TDataValue;
|
||||
begin
|
||||
// (= (Date 2023 10 10) (Date 2023 10 10))
|
||||
Res := FEnv.Run(TAstScript.Parse('(= (Date 2023 10 10) (Date 2023 10 10))'));
|
||||
Res := FEnv.Run(TAstScript.Parse('(= (date 2023 10 10) (date 2023 10 10))'));
|
||||
|
||||
Assert.AreEqual(TScalar.TKind.Boolean, Res.AsScalar.Kind);
|
||||
Assert.AreEqual(Int64(1), Res.AsScalar.Value.AsInt64);
|
||||
@@ -132,7 +132,7 @@ var
|
||||
begin
|
||||
// (if (Date 2023 1 1) "yes" "no")
|
||||
// Checks if IsTruthy correctly handles TKind.DateTime
|
||||
Res := FEnv.Run(TAstScript.Parse('(if (Date 2023 1 1) "yes" "no")'));
|
||||
Res := FEnv.Run(TAstScript.Parse('(if (date 2023 1 1) "yes" "no")'));
|
||||
|
||||
Assert.AreEqual(TDataValueKind.vkText, Res.Kind);
|
||||
Assert.AreEqual('yes', Res.AsText);
|
||||
@@ -151,7 +151,7 @@ begin
|
||||
InputDate := EncodeDate(2023, 11, 24);
|
||||
Expected := System.Round(InputDate);
|
||||
|
||||
Res := FEnv.Run(TAstScript.Parse('(Round (Date 2023 11 24))'));
|
||||
Res := FEnv.Run(TAstScript.Parse('(round (date 2023 11 24))'));
|
||||
|
||||
Assert.AreEqual(TScalar.TKind.Ordinal, Res.AsScalar.Kind);
|
||||
Assert.AreEqual(Expected, Res.AsScalar.Value.AsInt64);
|
||||
|
||||
@@ -128,8 +128,8 @@ procedure TTestMycAstRTL.RTL_Registration_SymbolsArePresent;
|
||||
begin
|
||||
Assert.AreNotEqual(TAddressKind.akUnresolved, FScope.Resolve('div').Kind);
|
||||
Assert.AreNotEqual(TAddressKind.akUnresolved, FScope.Resolve('mod').Kind);
|
||||
Assert.AreNotEqual(TAddressKind.akUnresolved, FScope.Resolve('Date').Kind);
|
||||
Assert.AreNotEqual(TAddressKind.akUnresolved, FScope.Resolve('Round').Kind);
|
||||
Assert.AreNotEqual(TAddressKind.akUnresolved, FScope.Resolve('date').Kind);
|
||||
Assert.AreNotEqual(TAddressKind.akUnresolved, FScope.Resolve('round').Kind);
|
||||
end;
|
||||
|
||||
procedure TTestMycAstRTL.RTL_Math_Float(const Op: string; A, B, Expected: Double);
|
||||
@@ -164,7 +164,7 @@ procedure TTestMycAstRTL.RTL_Round_Works(A: Double; Expected: Int64);
|
||||
var
|
||||
res: TDataValue;
|
||||
begin
|
||||
res := Call('Round', [ValF(A)]);
|
||||
res := Call('round', [ValF(A)]);
|
||||
Assert.AreEqual(TScalar.TKind.Ordinal, res.AsScalar.Kind);
|
||||
Assert.AreEqual(Expected, res.AsScalar.Value.AsInt64);
|
||||
end;
|
||||
@@ -192,7 +192,7 @@ var
|
||||
begin
|
||||
// 1. Test Date(Y, M, D)
|
||||
expectedDate := EncodeDate(2023, 10, 5);
|
||||
d := Call('Date', [ValI(2023), ValI(10), ValI(5)]);
|
||||
d := Call('date', [ValI(2023), ValI(10), ValI(5)]);
|
||||
|
||||
Assert.AreEqual(TScalar.TKind.DateTime, d.AsScalar.Kind);
|
||||
Assert.AreEqual(expectedDate, d.AsScalar.Value.AsDouble, 0.001);
|
||||
|
||||
Reference in New Issue
Block a user