mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-28 20:40:37 +02:00
pastojs: added test for rangecheck currency
This commit is contained in:
parent
ccd445bbd1
commit
9386659286
@ -940,6 +940,7 @@ type
|
|||||||
procedure TestRangeChecks_StringIndex;
|
procedure TestRangeChecks_StringIndex;
|
||||||
procedure TestRangeChecks_TypecastInt;
|
procedure TestRangeChecks_TypecastInt;
|
||||||
procedure TestRangeChecks_TypeHelperInt;
|
procedure TestRangeChecks_TypeHelperInt;
|
||||||
|
procedure TestRangeChecks_AssignCurrency;
|
||||||
|
|
||||||
// Async/AWait
|
// Async/AWait
|
||||||
Procedure TestAsync_Proc;
|
Procedure TestAsync_Proc;
|
||||||
@ -34809,6 +34810,52 @@ begin
|
|||||||
'']));
|
'']));
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TTestModule.TestRangeChecks_AssignCurrency;
|
||||||
|
begin
|
||||||
|
Scanner.Options:=Scanner.Options+[po_CAssignments];
|
||||||
|
StartProgram(false);
|
||||||
|
Add([
|
||||||
|
'{$R+}',
|
||||||
|
'var',
|
||||||
|
' c: currency = 2.34;',
|
||||||
|
' i: double;',
|
||||||
|
'procedure DoIt(p: currency);',
|
||||||
|
'begin',
|
||||||
|
' c:=i;',
|
||||||
|
' c+=i;',
|
||||||
|
' c:=1;',
|
||||||
|
'end;',
|
||||||
|
'{$R-}',
|
||||||
|
'procedure DoSome;',
|
||||||
|
'begin',
|
||||||
|
' DoIt(i);',
|
||||||
|
' c:=i;',
|
||||||
|
' c:=2;',
|
||||||
|
'end;',
|
||||||
|
'begin',
|
||||||
|
'{$R+}',
|
||||||
|
'']);
|
||||||
|
ConvertProgram;
|
||||||
|
CheckSource('TestRangeChecks_AssignCurrency',
|
||||||
|
LinesToStr([ // statements
|
||||||
|
'this.c = 2.34;',
|
||||||
|
'this.i = 0.0;',
|
||||||
|
'this.DoIt = function (p) {',
|
||||||
|
' rtl.rc(p, -922337203685477, 922337203685477);',
|
||||||
|
' $mod.c = rtl.rc(rtl.trunc($mod.i * 10000), -922337203685477, 922337203685477);',
|
||||||
|
' rtl.rc($mod.c += rtl.trunc($mod.i * 10000), -922337203685477, 922337203685477);',
|
||||||
|
' $mod.c = 10000;',
|
||||||
|
'};',
|
||||||
|
'this.DoSome = function () {',
|
||||||
|
' $mod.DoIt($mod.i * 10000);',
|
||||||
|
' $mod.c = rtl.trunc($mod.i * 10000);',
|
||||||
|
' $mod.c = 20000;',
|
||||||
|
'};',
|
||||||
|
'']),
|
||||||
|
LinesToStr([ // $mod.$main
|
||||||
|
'']));
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TTestModule.TestAsync_Proc;
|
procedure TTestModule.TestAsync_Proc;
|
||||||
begin
|
begin
|
||||||
StartProgram(false);
|
StartProgram(false);
|
||||||
|
Loading…
Reference in New Issue
Block a user