From 1c6421f6da164e7aae12510953a7d4d6a6529527 Mon Sep 17 00:00:00 2001
From: Rowan Torbitzky-Lane <rowan.a.tl@protonmail.com>
Date: Wed, 26 Feb 2025 23:45:47 -0600
Subject: [PATCH] downsample-maxmin start

---
 src/HushGP/GP/Downsample.hs | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/HushGP/GP/Downsample.hs b/src/HushGP/GP/Downsample.hs
index 42a77ef..7d1b120 100644
--- a/src/HushGP/GP/Downsample.hs
+++ b/src/HushGP/GP/Downsample.hs
@@ -20,7 +20,9 @@ updateCaseDistances evaledPop downsampleData trainingData informedDownsamplingTy
 
 -- |Draws a random amount of data points from a passed list of data points.
 selectDownsampleRandom :: PushArgs -> [PushData] -> IO [PushData]
-selectDownsampleRandom pushArgs pushData = take (floor (downsampleRate pushArgs * fromIntegral @Int @Float (length pushData))) . shuffle' pushData (length pushData - 1) <$> initStdGen
+selectDownsampleRandom pushArgs pushData = take (floor (downsampleRate pushArgs * fromIntegral @Int @Float (length pushData))) . shuffle' pushData (length pushData) <$> initStdGen
 
 selectDownsampleMaxmin :: PushArgs -> [PushData] -> IO [PushData]
-selectDownsampleMaxmin pushArgs@(PushArgs {downsampleRate = dsrate}) pushData = undefined
+selectDownsampleMaxmin pushArgs@(PushArgs {downsampleRate = dsRate}) pushData = do
+  shuffledCases <- shuffle' pushData (length pushData) <$> initStdGen
+