more range tests
This commit is contained in:
parent
2614677a69
commit
c07c5d712a
|
|
@ -1,8 +0,0 @@
|
|||
##
|
||||
var r := 2..3;
|
||||
Assert(
|
||||
r.Cartesian(2)
|
||||
// .Println
|
||||
.ZipTuple(||2,2|,|2,3|,|3,2|,|3,3||)
|
||||
.All(\(a,b)->a.SequenceEqual(b))
|
||||
);
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
begin
|
||||
var ir := InternalRange(2,5);
|
||||
|
||||
Assert(ir.Take(1).First = 2);
|
||||
end.
|
||||
13
TestSuite/RangeT =.pas
Normal file
13
TestSuite/RangeT =.pas
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
##
|
||||
Assert( 2..3 = 2..3 );
|
||||
Assert( 2.0..3 = 2..3.0 );
|
||||
Assert( 'b'..'c' = 'b'..'c' );
|
||||
|
||||
Assert( 2..3 in |2..3|.ToHashSet );
|
||||
Assert( (2..3) as object in |2..3|.Cast&<object>.ToHashSet );
|
||||
|
||||
Assert( 2.0..3 in |2..3.0|.ToHashSet );
|
||||
Assert( (2.0..3) as object in |2..3.0|.Cast&<object>.ToHashSet );
|
||||
|
||||
Assert( 'b'..'c' in |'b'..'c'|.ToHashSet );
|
||||
Assert( ('b'..'c') as object in |'b'..'c'|.Cast&<object>.ToHashSet );
|
||||
16
TestSuite/RangeT comb.pas
Normal file
16
TestSuite/RangeT comb.pas
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
##
|
||||
var r := 2..3;
|
||||
Assert(
|
||||
r.Cartesian(2)
|
||||
// .Println
|
||||
.ZipTuple(||2,2|,|2,3|,|3,2|,|3,3||)
|
||||
.All(\(a,b)->a.SequenceEqual(b))
|
||||
);
|
||||
|
||||
var r2 := 'b'..'c';
|
||||
Assert(
|
||||
r2.Cartesian(2)
|
||||
// .Println
|
||||
.ZipTuple(|'bb','bc','cb','cc'|)
|
||||
.All(\(a,b)->a.SequenceEqual(b))
|
||||
);
|
||||
8
TestSuite/RangeT contents.pas
Normal file
8
TestSuite/RangeT contents.pas
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
## var r := 2..3;
|
||||
Assert( r.SequenceEqual(|2,3|) );
|
||||
Assert( r.ToArray.SequenceEqual(|2,3|) );
|
||||
Assert( r.AsEnumerable.ToArray.SequenceEqual(|2,3|) );
|
||||
var r2 := 'b'..'c';
|
||||
Assert( r2.SequenceEqual('bc') );
|
||||
Assert( r2.ToArray.SequenceEqual('bc') );
|
||||
Assert( r2.AsEnumerable.ToArray.SequenceEqual('bc') );
|
||||
10
TestSuite/RangeT count.pas
Normal file
10
TestSuite/RangeT count.pas
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
##
|
||||
|
||||
Assert( (2..3).Count = 2 );
|
||||
Assert( (3..2).Count = 0 );
|
||||
|
||||
Assert( ('b'..'c').Count = 2 );
|
||||
Assert( ('c'..'b').Count = 0 );
|
||||
|
||||
Assert( (2.0..3).Size = 1 );
|
||||
Assert( (3.0..2).Size = 0 );
|
||||
13
TestSuite/RangeT empty.pas
Normal file
13
TestSuite/RangeT empty.pas
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
##
|
||||
|
||||
Assert( (2..2).IsEmpty = false );
|
||||
Assert( (2..3).IsEmpty = false );
|
||||
Assert( (3..2).IsEmpty = true );
|
||||
|
||||
Assert( ('b'..'b').IsEmpty = false );
|
||||
Assert( ('b'..'c').IsEmpty = false );
|
||||
Assert( ('c'..'b').IsEmpty = true );
|
||||
|
||||
Assert( (2.0..2).IsEmpty = true );
|
||||
Assert( (2.0..3).IsEmpty = false );
|
||||
Assert( (3.0..2).IsEmpty = true );
|
||||
7
TestSuite/RangeT enmr.pas
Normal file
7
TestSuite/RangeT enmr.pas
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
##
|
||||
|
||||
Assert( (2..4).Step(2).SequenceEqual(|2,4|) );
|
||||
Assert( ('b'..'d').Step(2).SequenceEqual('bd') );
|
||||
|
||||
Assert( (2..3).Reverse.SequenceEqual(|3,2|) );
|
||||
Assert( ('b'..'c').Reverse.SequenceEqual('cb') );
|
||||
3
TestSuite/RangeT first.pas
Normal file
3
TestSuite/RangeT first.pas
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
##
|
||||
Assert(InternalRange(2,5).First = 2);
|
||||
Assert(InternalRange('b','e').First = 'b');
|
||||
21
TestSuite/RangeT in.pas
Normal file
21
TestSuite/RangeT in.pas
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
##
|
||||
|
||||
var ri := 2..3;
|
||||
Assert( 1 not in ri );
|
||||
Assert( 2 in ri );
|
||||
Assert( 2.5 in ri );
|
||||
Assert( 3 in ri );
|
||||
Assert( 4 not in ri );
|
||||
|
||||
var rc := 'b'..'c';
|
||||
Assert( 'a' not in rc );
|
||||
Assert( 'b' in rc );
|
||||
Assert( 'c' in rc );
|
||||
Assert( 'd' not in rc );
|
||||
|
||||
var rr := 2.0..3;
|
||||
Assert( 1 not in rr );
|
||||
Assert( 2 in rr );
|
||||
Assert( 2.5 in rr );
|
||||
Assert( 3 in rr );
|
||||
Assert( 4 not in rr );
|
||||
4
TestSuite/RangeT tos.pas
Normal file
4
TestSuite/RangeT tos.pas
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
##
|
||||
Assert( $'{2..3}' = '2..3' );
|
||||
Assert( $'{2.0..3}' = '2..3' );
|
||||
Assert( $'{''b''..''c''}' = '''b''..''c''' );
|
||||
|
|
@ -769,7 +769,7 @@ type
|
|||
|
||||
property Low: real read l;
|
||||
property High: real read h;
|
||||
property Size: real read h-l;
|
||||
property Size: real read System.Math.Max(0, h-l);
|
||||
|
||||
static function operator in(x: real; r: RealRange): boolean := (x >= r.l) and (x <= r.h);
|
||||
|
||||
|
|
@ -786,7 +786,7 @@ type
|
|||
end;
|
||||
|
||||
/// Возвращает True если диапазон пуст
|
||||
function IsEmpty: boolean := l>h;
|
||||
function IsEmpty: boolean := l>=h;
|
||||
|
||||
function ToString: string; override := $'{l}..{h}';
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue