function Test-ArrayBinding { <# .SYNOPSIS This function is a test-bed for testing how some array stuff works There is no useful reason to call this outside of testing #> function giveMeNull { return $null } function giveMeOne { return 1 } function giveMeMany { return 1,2,3,4,5 } function giveMeSomeNulls { return 1,2,$null,$null,5 } Write-Host "Doing some assigns" $nullArray = [array](giveMeNull) $nullAt = @(giveMeNull) $oneArray = [array](giveMeOne) $oneAt = @(giveMeOne) $manyArray = [array](giveMeMany) $manyAt = [array](giveMeMany) $someArray = [array](giveMeSomeNulls) $someAt = [array](giveMeSomeNulls) Write-Host "doing some compares" Write-Host "`$null -eq : Straight compare to null`nTest-IsCollectionNullOrEmpty : Determines if the array is null or .Count is 0`nAny : Tests if this is not a valid array or any elements are null`n" Write-Host "giveMeNull - Array" $eqNullArray = ($null -eq $nullArray) $ticNullArray = (Test-IsCollectionNullOrEmpty $nullArray) $anyNullArray = (Any $nullArray) Write-Host "`$null -eq : $eqNullArray`nTest-IsCollectionNullOrEmpty : $ticNullArray`nAny : $anyNullArray`n" Write-Host "giveMeNull - At" $eqNullAt = ($null -eq $nullAt) $ticNullAt = (Test-IsCollectionNullOrEmpty $nullAt) $anyNullAt = (Any $nullAt) Write-Host "`$null -eq : $eqNullAt`nTest-IsCollectionNullOrEmpty : $ticNullAt`nAny : $anyNullAt`n" Write-Host "giveMeOne - Array" $eqOneArray = ($One -eq $OneArray) $ticOneArray = (Test-IsCollectionNullOrEmpty $OneArray) $anyOneArray = (Any $OneArray) Write-Host "`$null -eq : $eqOneArray`nTest-IsCollectionNullOrEmpty : $ticOneArray`nAny : $anyOneArray`n" Write-Host "giveMeOne - At" $eqOneAt = ($One -eq $OneAt) $ticOneAt = (Test-IsCollectionNullOrEmpty $OneAt) $anyOneAt = (Any $OneAt) Write-Host "`$null -eq : $eqOneAt`nTest-IsCollectionNullOrEmpty : $ticOneAt`nAny : $anyOneAt`n" Write-Host "giveMeMany - Array" $eqManyArray = ($Many -eq $ManyArray) $ticManyArray = (Test-IsCollectionNullOrEmpty $ManyArray) $anyManyArray = (Any $ManyArray) Write-Host "`$null -eq : $eqManyArray`nTest-IsCollectionNullOrEmpty : $ticManyArray`nAny : $anyManyArray`n" Write-Host "giveMeMany - At" $eqManyAt = ($Many -eq $ManyAt) $ticManyAt = (Test-IsCollectionNullOrEmpty $ManyAt) $anyManyAt = (Any $ManyAt) Write-Host "`$null -eq : $eqManyAt`nTest-IsCollectionNullOrEmpty : $ticManyAt`nAny : $anyManyAt`n" Write-Host "giveMeSomeNulls - Array" $eqSomeNullsArray = ($SomeNulls -eq $SomeNullsArray) $ticSomeNullsArray = (Test-IsCollectionNullOrEmpty $SomeNullsArray) $anySomeNullsArray = (Any $SomeNullsArray) Write-Host "`$null -eq : $eqSomeNullsArray`nTest-IsCollectionNullOrEmpty : $ticSomeNullsArray`nAny : $anySomeNullsArray`n" Write-Host "giveMeSomeNulls - At" $eqSomeNullsAt = ($SomeNulls -eq $SomeNullsAt) $ticSomeNullsAt = (Test-IsCollectionNullOrEmpty $SomeNullsAt) $anySomeNullsAt = (Any $SomeNullsAt) Write-Host "`$null -eq : $eqSomeNullsAt`nTest-IsCollectionNullOrEmpty : $ticSomeNullsAt`nAny : $anySomeNullsAt`n" # 123456789012345678912345678901 12345678901234 12345678901234 12345678901234 12345678901234 Write-Host "Test name | F null F | T one T | T many T | F some null F |" Write-Host "Test-IsColllectionNullOrEmpty | $($eqNullArray.ToString().PadRight(5)) $($eqNullAt.ToString().PadRight(5)) | $($eqOneArray.ToString().PadRight(5)) $($eqOneAt.ToString().PadRight(5)) | $($eqManyArray.ToString().PadRight(5)) $($eqManyAt.ToString().PadRight(5)) | $($eqSomeNullsArray.ToString().PadRight(5)) $($eqSomeNullsAt.ToString().PadRight(5)) |" Write-Host "Test-IsColllectionNullOrEmpty | $($ticNullArray.ToString().PadRight(5)) $($ticNullAt.ToString().PadRight(5)) | $($ticOneArray.ToString().PadRight(5)) $($ticOneAt.ToString().PadRight(5)) | $($ticManyArray.ToString().PadRight(5)) $($ticManyAt.ToString().PadRight(5)) | $($ticSomeNullsArray.ToString().PadRight(5)) $($ticSomeNullsAt.ToString().PadRight(5)) |" Write-Host "Any (Test-IsArrayValid) | $($anyNullArray.ToString().PadRight(5)) $($anyNullAt.ToString().PadRight(5)) | $($anyOneArray.ToString().PadRight(5)) $($anyOneAt.ToString().PadRight(5)) | $($anyManyArray.ToString().PadRight(5)) $($anyManyAt.ToString().PadRight(5)) | $($anySomeNullsArray.ToString().PadRight(5)) $($anySomeNullsAt.ToString().PadRight(5)) |" }