diff --git a/tests/MA/Algorithm/SplitSpec.hs b/tests/MA/Algorithm/SplitSpec.hs
index aeacee8deafee1c10977da19e34796c9787db502..388d4bf6cbf6fc185ad533974addaa4cfb3790d6 100644
--- a/tests/MA/Algorithm/SplitSpec.hs
+++ b/tests/MA/Algorithm/SplitSpec.hs
@@ -157,17 +157,44 @@ splitBlockSpec = describe "splitBlock" $ do
     $ let res = withState @Powerset (enc [True, False] [(0, (), 1)]) $ do
             [(b, v0)] <- collectTouchedBlocks (Block 1)
             updateBlock b v0
-            lift . Queue.clear =<< view _2
             splitBlock b
-      in res `shouldBe` [0]
+      in  res `shouldBe` [0]
 
-  it "splits blocks into marked and unmaked" $
-    let res = withState @Powerset (enc [True, True, False] [(0, (), 2), (1, (), 0)]) $ do
-            [(b, v0)] <- collectTouchedBlocks (Block 1)
-            updateBlock b v0
-            lift . Queue.clear =<< view _2
-            splitBlock b
-    in res `shouldMatchList` [Block 0, Block 2]
+  it "splits blocks into marked and unmaked"
+    $ let
+        res =
+          withState @Powerset (enc [True, True, False] [(0, (), 2), (1, (), 0)])
+            $ do
+                [(b, v0)] <- collectTouchedBlocks (Block 1)
+                updateBlock b v0
+                splitBlock b
+      in  res `shouldMatchList` [Block 0, Block 2]
+
+  it "splits different H3s into different blocks"
+    $ let
+        res =
+          withState @(MonoidValued Int)
+              (enc [3, 3, 3, 0]
+                   [(0, 1, 3), (1, 2, 3), (2, 3, 3), (0, 2, 0), (1, 1, 1)]
+              )
+            $ do
+                [(b, v0)] <- collectTouchedBlocks (Block 1)
+                updateBlock b v0
+                splitBlock b
+      in  res `shouldMatchList` [Block 0, Block 2, Block 3]
+
+  it "combines equal H3s into the same block"
+    $ let
+        res =
+          withState @(MonoidValued Int)
+              (enc [3, 3, 3, 0]
+                   [(0, 1, 3), (1, 1, 3), (2, 3, 3), (0, 2, 0), (1, 2, 1)]
+              )
+            $ do
+                [(b, v0)] <- collectTouchedBlocks (Block 1)
+                updateBlock b v0
+                splitBlock b
+      in  res `shouldMatchList` [Block 0, Block 2]