1
Fork 0
mirror of https://github.com/RGBCube/nu_scripts synced 2025-08-01 06:37:46 +00:00
nu_scripts/stdlib-candidate-archive/tests/tables.nu
Douglas 5869e0b529
Deprecate the nu_scripts version of stdlib-candidate (#1042)
Deprecates the existing `stdlib-candidate` directories in `nu_scripts`
since `std-rfc` has now transitioned to the main repo. Updates readme
and renamed directories.
2025-02-09 14:34:40 -06:00

185 lines
4 KiB
Text

use std/assert
use ../std-rfc/tables *
const test_table = [
[ col-a col-b col-c col-d col-e col-f ];
[ 'a0' 'b0' 'c0' 'd0' 'e0' 'f0' ]
[ 'a1' 'b1' 'c1' 'd1' 'e1' 'f1' ]
[ 'a2' 'b2' 'c2' 'd2' 'e2' 'f2' ]
[ 'a3' 'b3' 'c3' 'd3' 'e3' 'f3' ]
[ 'a4' 'b4' 'c4' 'd4' 'e4' 'f4' ]
[ 'a5' 'b5' 'c5' 'd5' 'e5' 'f5' ]
[ 'a6' 'b6' 'c6' 'd6' 'e6' 'f6' ]
[ 'a7' 'b7' 'c7' 'd7' 'e7' 'f7' ]
[ 'a8' 'b8' 'c8' 'd8' 'e8' 'f8' ]
[ 'a9' 'b9' 'c9' 'd9' 'e9' 'f9' ]
]
const enumerated_table = [
[ index col-a col-b col-c col-d col-e col-f ];
[ 0 'a0' 'b0' 'c0' 'd0' 'e0' 'f0' ]
[ 1 'a1' 'b1' 'c1' 'd1' 'e1' 'f1' ]
[ 2 'a2' 'b2' 'c2' 'd2' 'e2' 'f2' ]
[ 3 'a3' 'b3' 'c3' 'd3' 'e3' 'f3' ]
[ 4 'a4' 'b4' 'c4' 'd4' 'e4' 'f4' ]
[ 5 'a5' 'b5' 'c5' 'd5' 'e5' 'f5' ]
[ 6 'a6' 'b6' 'c6' 'd6' 'e6' 'f6' ]
[ 7 'a7' 'b7' 'c7' 'd7' 'e7' 'f7' ]
[ 8 'a8' 'b8' 'c8' 'd8' 'e8' 'f8' ]
[ 9 'a9' 'b9' 'c9' 'd9' 'e9' 'f9' ]
]
#[test]
def row-indices--range [] {
assert equal (
row-indices 0..3 10..11
) (
[ 0 1 2 3 10 11 ]
)
}
#[test]
export def row-indices--index [] {
assert equal (
row-indices 4
) (
[ 4 ]
)
}
#[test]
def row-indices--complex [] {
assert equal (
row-indices 0..2..6 3 7
) (
[ 0 2 4 6 3 7 ]
)
}
#[test]
def col-index--ints [] {
assert equal (
# Third and Fifth Columns
$test_table | col-indices 2 4
) (
[ 'col-c', 'col-e' ]
)
}
#[test]
def col-index--complex [] {
assert equal (
# Every other column, plus the second
$test_table | col-indices 0..2..10 1
) (
[ 'col-a', 'col-b', 'col-c', 'col-e' ]
)
}
#[test]
def select-range--single_int [] {
assert equal (
$test_table | select ranges 1
) (
$enumerated_table | select 1
)
}
#[test]
def select-range--single_range [] {
assert equal (
$test_table | select ranges 2..4
) (
$enumerated_table | select 2 3 4
)
}
#[test]
def select-range--complex [] {
assert equal (
# First and every following third-row + second row
$test_table | select ranges 1 0..3..100
) (
$enumerated_table | select 0 1 3 6 9
)
}
#[test]
def select-range--out_of_bounds [] {
assert equal (
$test_table | select ranges 100
) (
[]
)
}
#[test]
def reject-range--single_index [] {
assert equal (
$test_table | reject ranges 4
) (
$enumerated_table | reject 4
)
}
#[test]
def reject-range--ranges [] {
assert equal (
# Reject rows 0-3 and 5-9, leaving only 4
$test_table | reject ranges 0..3 5..9
) (
$enumerated_table | select 4
)
}
#[test]
def reject-range--out_of_bounds [] {
assert error {
$test_table | reject ranges 1000
}
}
#[test]
def select-col--index [] {
assert equal (
$test_table | select column-ranges 2
) (
$test_table | select col-c
)
}
#[test]
def select-col--indices [] {
assert equal (
$test_table | select column-ranges 2 4
) (
$test_table | select col-c col-e
)
}
#[test]
def select-col--ranges_and_index [] {
assert equal (
$test_table | select column-ranges 0..2..5 1
) (
$test_table | select col-a col-c col-e col-b
)
}
#[test]
def reject-col--ranges_and_index [] {
assert equal (
$test_table | reject column-ranges 0..2..5 1
) (
$enumerated_table | select col-d col-f
)
}
#[test]
def reject-col--out_of_bounds [] {
assert equal (
$test_table | reject column-ranges 1_000
) (
$test_table
)
}