__tests__/PSKit.TypeData.tests.ps1
Import-Module $PSScriptRoot/../PSKit.psd1 -Force Describe "PSKit tests - Custom Datatypes" { BeforeAll { $data = ConvertFrom-Csv @" Region,ItemName,TotalSold South,avocado,5 East,nail,13 South,melon,34 West,drill,5 North,kiwi,48 North,nail,2 North,melon,74 West,hammer,37 East,pear,34 South,screws,71 "@ } It "Should have these data types added" { $actual = (Get-TypeData -TypeName Array).Members $actual.ContainsKey('DTypes') | Should Be $true $actual.ContainsKey('columns') | Should Be $true $actual.ContainsKey('head') | Should Be $true $actual.ContainsKey('tail') | Should Be $true $actual.ContainsKey('info') | Should Be $true $actual.ContainsKey('stats') | Should Be $true $actual.ContainsKey('query') | Should Be $true $actual.ContainsKey('GroupAndMeasure') | Should Be $true $actual.ContainsKey('SetIndex') | Should Be $true $actual.ContainsKey('ScanProperties') | Should Be $true } It "Should return the correct # of rows from the top" { $actual = $data.Head(3) $actual.Count | Should -Be 3 $actual[0].Region | Should -BeExactly 'South' $actual[0].ItemName | Should -BeExactly 'avocado' $actual[0].TotalSold | Should -BeExactly 5 $actual[1].Region | Should -BeExactly 'East' $actual[1].ItemName | Should -BeExactly 'nail' $actual[1].TotalSold | Should -BeExactly 13 $actual[2].Region | Should -BeExactly 'South' $actual[2].ItemName | Should -BeExactly 'melon' $actual[2].TotalSold | Should -BeExactly 34 } It "Should return the correct # of rows from the bottom" { $actual = $data.Tail(3) $actual.Count | Should -Be 3 # West, hammer, 37 # East, pear, 34 # South, screws, 71 $actual[0].Region | Should -BeExactly 'West' $actual[0].ItemName | Should -BeExactly 'hammer' $actual[0].TotalSold | Should -BeExactly 37 $actual[1].Region | Should -BeExactly 'East' $actual[1].ItemName | Should -BeExactly 'pear' $actual[1].TotalSold | Should -BeExactly 34 $actual[2].Region | Should -BeExactly 'South' $actual[2].ItemName | Should -BeExactly 'screws' $actual[2].TotalSold | Should -BeExactly 71 } It "Should return the correct # of rows and columns from the bottom" { $actual = $data.Shape() $actual[0].Rows | Should -Be 10 $actual[0].Columns | Should -Be 3 } It "Should return the correct column names" { $actual = $data.Columns() $actual.Count | Should -Be 3 $actual[0] | Should -BeExactly "Region" $actual[1] | Should -BeExactly "ItemName" $actual[2] | Should -BeExactly "TotalSold" } It "Should return the correct datatypes names" { $actual = $data.DTypes() $actual.Count | Should -Be 3 $actual[0].ColumnName | Should -BeExactly "Region" $actual[0].DataType | Should -BeExactly "string" $actual[1].ColumnName | Should -BeExactly "ItemName" $actual[1].DataType | Should -BeExactly "string" $actual[2].ColumnName | Should -BeExactly "TotalSold" $actual[2].DataType | Should -BeExactly "int" } } |