|
| 1 | +{-# LANGUAGE OverloadedStrings #-} |
| 2 | +module Operations.GroupBy where |
| 3 | + |
| 4 | +import qualified Data.DataFrame as D |
| 5 | +import qualified Data.DataFrame.Internal as DI |
| 6 | +import qualified Data.DataFrame.Errors as DE |
| 7 | +import qualified Data.DataFrame.Operations as DO |
| 8 | +import qualified Data.DataFrame.Util as DU |
| 9 | +import qualified Data.Text as T |
| 10 | +import qualified Data.Vector as V |
| 11 | +import qualified Data.Vector.Unboxed as VU |
| 12 | + |
| 13 | +import Assertions |
| 14 | +import Test.HUnit |
| 15 | + |
| 16 | +values :: [(T.Text, DI.Column)] |
| 17 | +values = [ ("test1", DI.toColumn (concatMap (replicate 10) [1 :: Int, 2, 3, 4])) |
| 18 | + , ("test2", DI.toColumn (take 40 $ cycle [1 :: Int,2])) |
| 19 | + , ("test3", DI.toColumn [(1 :: Int)..40]) |
| 20 | + , ("test4", DI.toColumn (reverse [(1 :: Int)..40])) |
| 21 | + ] |
| 22 | + |
| 23 | +testData :: D.DataFrame |
| 24 | +testData = D.fromList values |
| 25 | + |
| 26 | +groupBySingleRowWAI :: Test |
| 27 | +groupBySingleRowWAI = TestCase (assertEqual "Groups by single column" |
| 28 | + (D.fromList [("test1", DI.toColumn [(1::Int)..4]), |
| 29 | + -- This just makes rows with [1, 2] for every unique test1 row |
| 30 | + ("test2", DI.GroupedUnboxedColumn (V.replicate 4 $ VU.fromList (take 10 $ cycle [1 :: Int, 2]))), |
| 31 | + ("test3", DI.GroupedUnboxedColumn (V.generate 4 (\i -> VU.fromList [(i * 10 + 1)..((i + 1) * 10)]))), |
| 32 | + ("test4", DI.GroupedUnboxedColumn (V.generate 4 (\i -> VU.fromList [(((3 - i) + 1) * 10),(((3 - i) + 1) * 10 - 1)..((3 - i) * 10 + 1)]))) |
| 33 | + ]) |
| 34 | + (D.groupBy ["test1"] testData D.|> D.sortBy D.Ascending "test1")) |
| 35 | + |
| 36 | +tests :: [Test] |
| 37 | +tests = [ TestLabel "groupBySingleRowWAI" groupBySingleRowWAI |
| 38 | + , TestLabel "groupBySingleRowWAI" groupBySingleRowWAI |
| 39 | + ] |
| 40 | + |
0 commit comments