dataframe-0.4.1.0: tests/Operations/Subset.hs
{-# LANGUAGE GADTs #-}
module Operations.Subset where
import DataFrame.Internal.DataFrame
import qualified DataFrame.Operations.Core as D
import qualified DataFrame.Operations.Subset as D
import System.Random
prop_dropZero :: DataFrame -> Bool
prop_dropZero df = D.drop 0 df == df
prop_takeZero :: DataFrame -> Bool
prop_takeZero df = fst (dataframeDimensions (D.take 0 df)) == 0
prop_takeAll :: DataFrame -> Bool
prop_takeAll df =
let n = fst (dataframeDimensions df)
in D.take n df == df
prop_dropAll :: DataFrame -> Bool
prop_dropAll df =
let n = fst (dataframeDimensions df)
in fst (dataframeDimensions (D.drop n df)) == 0
prop_takeLastZero :: DataFrame -> Bool
prop_takeLastZero df = fst (dataframeDimensions (D.takeLast 0 df)) == 0
prop_dropLastZero :: DataFrame -> Bool
prop_dropLastZero df = D.dropLast 0 df == df
prop_takeLastAll :: DataFrame -> Bool
prop_takeLastAll df =
let n = fst (dataframeDimensions df)
in D.takeLast n df == df
prop_dropLastAll :: DataFrame -> Bool
prop_dropLastAll df =
let n = fst (dataframeDimensions df)
in fst (dataframeDimensions (D.dropLast n df)) == 0
prop_rangeEmpty :: DataFrame -> Bool
prop_rangeEmpty df =
fst (dataframeDimensions (D.range (5, 5) df)) == 0
prop_rangeFull :: DataFrame -> Bool
prop_rangeFull df =
let rows = fst (dataframeDimensions df)
in D.range (0, rows) df == df
prop_selectAll :: DataFrame -> Bool
prop_selectAll df = D.select (D.columnNames df) df == df
prop_selectEmpty :: DataFrame -> Bool
prop_selectEmpty df =
let result = D.select [] df
in dataframeDimensions result == (0, 0)
prop_excludeEmpty :: DataFrame -> Bool
prop_excludeEmpty df = D.exclude [] df == df
prop_excludeAll :: DataFrame -> Bool
prop_excludeAll df =
let result = D.exclude (D.columnNames df) df
in snd (dataframeDimensions result) == 0
prop_cubePreservesSmall :: DataFrame -> Bool
prop_cubePreservesSmall df =
let (rows, cols) = dataframeDimensions df
in D.cube (rows + 100, cols + 100) df == df
prop_sampleEmptyApprox :: DataFrame -> Bool
prop_sampleEmptyApprox df =
let gen = mkStdGen 42
sampled = D.sample gen 0.0 df
in fst (dataframeDimensions sampled) == 0
tests =
[ prop_dropZero
, prop_takeZero
, prop_takeAll
, prop_dropAll
, prop_takeLastZero
, prop_dropLastZero
, prop_takeLastAll
, prop_dropLastAll
, prop_rangeEmpty
, prop_rangeFull
, prop_selectAll
, prop_selectEmpty
, prop_excludeEmpty
, prop_excludeAll
, prop_cubePreservesSmall
, prop_sampleEmptyApprox
]