Team Ai
Datasetpublic

MegaBites-AI/Windows-powershell

sourceHugging Facemitupdated 6mo agoView on Hugging Face
0likes372downloads
RangeOperator.Tests.ps1259 linesDownload Raw Back to Operators
1# Copyright (c) Microsoft Corporation.2# Licensed under the MIT License.3Describe "Range Operator" -Tags CI {4    Context "Range integer operations" {5        It "Range operator generates arrays of integers" {6            $Range = 5..87            $Range.count | Should -Be 48            $Range[0] | Should -BeOfType int9            $Range[1] | Should -BeOfType int10            $Range[2] | Should -BeOfType int11            $Range[3] | Should -BeOfType int12 13            $Range[0] | Should -Be 514            $Range[1] | Should -Be 615            $Range[2] | Should -Be 716            $Range[3] | Should -Be 817        }18 19        It "Range operator accepts negative integer values" {20            $Range = -8..-521            $Range.count | Should -Be 422            $Range[0] | Should -Be -823            $Range[1] | Should -Be -724            $Range[2] | Should -Be -625            $Range[3] | Should -Be -526        }27 28        It "Range operator support single-item sequences" {29            $Range = 0..030            $Range.count | Should -Be 131            $Range[0] | Should -BeOfType int32            $Range[0] | Should -Be 033        }34 35        It "Range operator works in descending order" {36            $Range = 4..337            $Range.count | Should -Be 238            $Range[0] | Should -Be 439            $Range[1] | Should -Be 340        }41 42        It "Range operator works for sequences of both negative and positive numbers" {43            $Range = -2..244            $Range.count | Should -Be 545            $Range[0] | Should -Be -246            $Range[1] | Should -Be -147            $Range[2] | Should -Be 048            $Range[3] | Should -Be 149            $Range[4] | Should -Be 250        }51 52        It "Range operator enumerator works" {53            $Range = -2..2 | ForEach-Object { $_ }54            $Range.count | Should -Be 555            $Range[0] | Should -Be -256            $Range[1] | Should -Be -157            $Range[2] | Should -Be 058            $Range[3] | Should -Be 159            $Range[4] | Should -Be 260        }61 62        It "Range operator works with variables" {63            $var1 = -164            $var2 = 165            $Range = $var1..$var266            $Range.count | Should -Be 367            $Range[0] | Should -Be -168            $Range[1] | Should -Be 069            $Range[2] | Should -Be 170 71            $Range = [int]$var2..[int]$var172            $Range.count | Should -Be 373            $Range[0] | Should -Be 174            $Range[1] | Should -Be 075            $Range[2] | Should -Be -176 77            $Range = $var1..$var2 | ForEach-Object { $_ }78            $Range.count | Should -Be 379            $Range[0] | Should -Be -180            $Range[1] | Should -Be 081            $Range[2] | Should -Be 182 83            $Range = [int]$var2..[int]$var1 | ForEach-Object { $_ }84            $Range.count | Should -Be 385            $Range[0] | Should -Be 186            $Range[1] | Should -Be 087            $Range[2] | Should -Be -188        }89    }90 91    Context "Character expansion" {92        It "Range operator generates an array of [char] from single-character operands" {93            $CharRange = 'A'..'E'94            $CharRange.count | Should -Be 595            $CharRange[0] | Should -BeOfType char96            $CharRange[1] | Should -BeOfType char97            $CharRange[2] | Should -BeOfType char98            $CharRange[3] | Should -BeOfType char99            $CharRange[4] | Should -BeOfType char100        }101 102        It "Range operator enumerator generates an array of [string] from single-character operands" {103            $CharRange = 'A'..'E' | ForEach-Object { $_ }104            $CharRange.count | Should -Be 5105            $CharRange[0] | Should -BeOfType char106            $CharRange[1] | Should -BeOfType char107            $CharRange[2] | Should -BeOfType char108            $CharRange[3] | Should -BeOfType char109            $CharRange[4] | Should -BeOfType char110        }111 112        It "Range operator works in ascending and descending order" {113            $CharRange = 'a'..'c'114            $CharRange.count | Should -Be 3115            $CharRange[0] | Should -BeExactly ([char]'a')116            $CharRange[1] | Should -BeExactly ([char]'b')117            $CharRange[2] | Should -BeExactly ([char]'c')118 119            $CharRange = 'C'..'A'120            $CharRange.count | Should -Be 3121            $CharRange[0] | Should -BeExactly ([char]'C')122            $CharRange[1] | Should -BeExactly ([char]'B')123            $CharRange[2] | Should -BeExactly ([char]'A')124        }125 126        It "Range operator works in ascending and descending order with [char] cast" {127            $CharRange = [char]'a'..[char]'c'128            $CharRange.count | Should -Be 3129            $CharRange[0] | Should -BeExactly ([char]'a')130            $CharRange[1] | Should -BeExactly ([char]'b')131            $CharRange[2] | Should -BeExactly ([char]'c')132 133            $CharRange = [char]"a".."c"134            $CharRange.count | Should -Be 3135            $CharRange[0] | Should -BeExactly ([char]'a')136            $CharRange[1] | Should -BeExactly ([char]'b')137            $CharRange[2] | Should -BeExactly ([char]'c')138 139            $CharRange = "a"..[char]"c"140            $CharRange.count | Should -Be 3141            $CharRange[0] | Should -BeExactly ([char]'a')142            $CharRange[1] | Should -BeExactly ([char]'b')143            $CharRange[2] | Should -BeExactly ([char]'c')144 145            # The same works in reverse order.146            $CharRange = [char]'C'..[char]'A'147            $CharRange.count | Should -Be 3148            $CharRange[0] | Should -BeExactly ([char]'C')149            $CharRange[1] | Should -BeExactly ([char]'B')150            $CharRange[2] | Should -BeExactly ([char]'A')151 152            $CharRange = [char]"C".."A"153            $CharRange.count | Should -Be 3154            $CharRange[0] | Should -BeExactly ([char]'C')155            $CharRange[1] | Should -BeExactly ([char]'B')156            $CharRange[2] | Should -BeExactly ([char]'A')157 158            $CharRange = "C"..[char]"A"159            $CharRange.count | Should -Be 3160            $CharRange[0] | Should -BeExactly ([char]'C')161            $CharRange[1] | Should -BeExactly ([char]'B')162            $CharRange[2] | Should -BeExactly ([char]'A')163        }164 165        It "Range operator enumerator works in ascending and descending order" {166            $CharRange = 'a'..'c' | ForEach-Object { $_ }167            $CharRange.count | Should -Be 3168            $CharRange[0] | Should -BeExactly "a"169            $CharRange[1] | Should -BeExactly "b"170            $CharRange[2] | Should -BeExactly "c"171 172            $CharRange = 'C'..'A' | ForEach-Object { $_ }173            $CharRange.count | Should -Be 3174            $CharRange[0] | Should -BeExactly "C"175            $CharRange[1] | Should -BeExactly "B"176            $CharRange[2] | Should -BeExactly "A"177        }178 179        It "Range operator enumerator works in ascending and descending order with [char] cast" {180            $CharRange = [char]'a'..[char]'c' | ForEach-Object { $_ }181            $CharRange.count | Should -Be 3182            $CharRange[0] | Should -BeExactly "a"183            $CharRange[1] | Should -BeExactly "b"184            $CharRange[2] | Should -BeExactly "c"185 186            $CharRange = [char]'C'..[char]'A' | ForEach-Object { $_ }187            $CharRange.count | Should -Be 3188            $CharRange[0] | Should -BeExactly "C"189            $CharRange[1] | Should -BeExactly "B"190            $CharRange[2] | Should -BeExactly "A"191        }192 193        It "Range operator works with variables" {194            $var1 = 'a'195            $var2 = 'c'196            $CharRange = $var1..$var2197            $CharRange.count | Should -Be 3198            $CharRange[0] | Should -BeExactly "a"199            $CharRange[1] | Should -BeExactly "b"200            $CharRange[2] | Should -BeExactly "c"201 202            $CharRange = [char]$var2..[char]$var1203            $CharRange.count | Should -Be 3204            $CharRange[0] | Should -BeExactly "c"205            $CharRange[1] | Should -BeExactly "b"206            $CharRange[2] | Should -BeExactly "a"207 208            $CharRange = $var1..$var2 | ForEach-Object { $_ }209            $CharRange.count | Should -Be 3210            $CharRange[0] | Should -BeExactly "a"211            $CharRange[1] | Should -BeExactly "b"212            $CharRange[2] | Should -BeExactly "c"213 214            $CharRange = [char]$var2..[char]$var1 | ForEach-Object { $_ }215            $CharRange.count | Should -Be 3216            $CharRange[0] | Should -BeExactly "c"217            $CharRange[1] | Should -BeExactly "b"218            $CharRange[2] | Should -BeExactly "a"219        }220 221        It "Range operator works with 16-bit unicode characters" {222            $UnicodeRange = "`u{0110}".."`u{0114}"223            $UnicodeRange.count | Should -Be 5224            $UnicodeRange[0] | Should -Be "`u{0110}"[0]225            $UnicodeRange[1] | Should -Be "`u{0111}"[0]226            $UnicodeRange[2] | Should -Be "`u{0112}"[0]227            $UnicodeRange[3] | Should -Be "`u{0113}"[0]228            $UnicodeRange[4] | Should -Be "`u{0114}"[0]229            $UnicodeRange.Where({$_ -is [char]}).count | Should -Be 5230        }231 232        It "Range operator with special ranges" {233            $SpecRange = "0".."9"234            $SpecRange.count | Should -Be 10235            $SpecRange.Where({$_ -is [int]}).count | Should -Be 10236 237            $SpecRange = '0'..'9'238            $SpecRange.count | Should -Be 10239            $SpecRange.Where({$_ -is [int]}).count | Should -Be 10240 241            $SpecRange = [char]'0'..[char]'9'242            $SpecRange.count | Should -Be 10243            $SpecRange.Where({$_ -is [char]}).count | Should -Be 10244        }245    }246 247    Context "Range operator operand types" {248        It "Range operator works on [decimal]" {249            $Range = 1.1d..3.9d250            $Range.count | Should -Be 4251            $Range[0] | Should -Be 1252            $Range[1] | Should -Be 2253            $Range[2] | Should -Be 3254            $Range[3] | Should -Be 4255            $Range.Where({$_ -is [int]}).count | Should -Be 4256        }257    }258}259