From 99241c7e763b46f1ea079679ec8ac83d1ea67cea Mon Sep 17 00:00:00 2001 From: Tom Smeding Date: Thu, 27 Mar 2025 12:53:26 +0100 Subject: test: Respect shape lower bounds better --- test/Main.hs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/test/Main.hs b/test/Main.hs index cc17b5d..d4a835f 100644 --- a/test/Main.hs +++ b/test/Main.hs @@ -164,7 +164,7 @@ genShape = \n tpl -> do sh <- genShapeNaive n tpl let sz = shapeSize sh factor = sz `div` 100 + 1 - return (shapeDiv sh factor) + return (shapeDiv sh tpl factor) where genShapeNaive :: SNat n -> DimNames n -> StateT (Map String Int) Gen (Shape n) genShapeNaive SZ () = return ShNil @@ -181,11 +181,12 @@ genShape = \n tpl -> do Just dim -> return dim genDim :: Int -> StateT (Map String Int) Gen Int - genDim lo = Gen.integral (Range.linear lo 10) + genDim lo = Gen.integral (Range.linear lo (lo+10)) - shapeDiv :: Shape n -> Int -> Shape n - shapeDiv ShNil _ = ShNil - shapeDiv (sh `ShCons` n) f = shapeDiv sh f `ShCons` (n `div` f) + shapeDiv :: Shape n -> DimNames n -> Int -> Shape n + shapeDiv ShNil _ _ = ShNil + shapeDiv (ShNil `ShCons` n) (C _ lo) f = ShNil `ShCons` (max lo (n `div` f)) + shapeDiv (sh@ShCons{} `ShCons` n) (tpl :$ C _ lo) f = shapeDiv sh tpl f `ShCons` (max lo (n `div` f)) genArray :: STy a -> Shape n -> Gen (Value (TArr n a)) genArray t sh = -- cgit v1.2.3-70-g09d2