diff --git a/native/src/widget/pane_grid/axis.rs b/native/src/widget/pane_grid/axis.rs
index f8c7b661..b3a306d5 100644
--- a/native/src/widget/pane_grid/axis.rs
+++ b/native/src/widget/pane_grid/axis.rs
@@ -59,85 +59,156 @@ impl Axis {
 mod tests {
     use super::*;
 
-    #[test]
-    fn split_horizontal() {
-        let a = Axis::Horizontal;
-        // rectangle height, spacing, top height, bottom y, bottom height
-        let cases = vec![
-            // Even height, even spacing
-            (10.0, 2.0, 4.0, 6.0, 4.0),
-            // Odd height, even spacing
-            (9.0, 2.0, 4.0, 6.0, 3.0),
-            // Even height, odd spacing
-            (10.0, 1.0, 5.0, 6.0, 4.0),
-            // Odd height, odd spacing
-            (9.0, 1.0, 4.0, 5.0, 4.0),
-        ];
-        for case in cases {
-            let (h0, spacing, h1_top, y_bottom, h1_bottom) = case;
-            let r = Rectangle {
-                x: 0.0,
-                y: 0.0,
-                width: 10.0,
-                height: h0,
-            };
-            let (top, bottom) = a.split(&r, 0.5, spacing);
-            assert_eq!(
-                top,
-                Rectangle {
-                    height: h1_top,
-                    ..r
-                }
-            );
-            assert_eq!(
-                bottom,
-                Rectangle {
-                    y: y_bottom,
-                    height: h1_bottom,
-                    ..r
-                }
-            );
-        }
+    enum Case {
+        Horizontal {
+            overall_height: f32,
+            spacing: f32,
+            top_height: f32,
+            bottom_y: f32,
+            bottom_height: f32,
+        },
+        Vertical {
+            overall_width: f32,
+            spacing: f32,
+            left_width: f32,
+            right_x: f32,
+            right_width: f32,
+        },
     }
 
     #[test]
-    fn split_vertical() {
-        let a = Axis::Vertical;
-        // rectangle width, spacing, left width, right x, right width
+    fn split() {
         let cases = vec![
+            // Even height, even spacing
+            Case::Horizontal {
+                overall_height: 10.0,
+                spacing: 2.0,
+                top_height: 4.0,
+                bottom_y: 6.0,
+                bottom_height: 4.0,
+            },
+            // Odd height, even spacing
+            Case::Horizontal {
+                overall_height: 9.0,
+                spacing: 2.0,
+                top_height: 4.0,
+                bottom_y: 6.0,
+                bottom_height: 3.0,
+            },
+            // Even height, odd spacing
+            Case::Horizontal {
+                overall_height: 10.0,
+                spacing: 1.0,
+                top_height: 5.0,
+                bottom_y: 6.0,
+                bottom_height: 4.0,
+            },
+            // Odd height, odd spacing
+            Case::Horizontal {
+                overall_height: 9.0,
+                spacing: 1.0,
+                top_height: 4.0,
+                bottom_y: 5.0,
+                bottom_height: 4.0,
+            },
             // Even width, even spacing
-            (10.0, 2.0, 4.0, 6.0, 4.0),
+            Case::Vertical {
+                overall_width: 10.0,
+                spacing: 2.0,
+                left_width: 4.0,
+                right_x: 6.0,
+                right_width: 4.0,
+            },
             // Odd width, even spacing
-            (9.0, 2.0, 4.0, 6.0, 3.0),
+            Case::Vertical {
+                overall_width: 9.0,
+                spacing: 2.0,
+                left_width: 4.0,
+                right_x: 6.0,
+                right_width: 3.0,
+            },
             // Even width, odd spacing
-            (10.0, 1.0, 5.0, 6.0, 4.0),
+            Case::Vertical {
+                overall_width: 10.0,
+                spacing: 1.0,
+                left_width: 5.0,
+                right_x: 6.0,
+                right_width: 4.0,
+            },
             // Odd width, odd spacing
-            (9.0, 1.0, 4.0, 5.0, 4.0),
+            Case::Vertical {
+                overall_width: 9.0,
+                spacing: 1.0,
+                left_width: 4.0,
+                right_x: 5.0,
+                right_width: 4.0,
+            },
         ];
         for case in cases {
-            let (w0, spacing, w1_left, x_right, w1_right) = case;
-            let r = Rectangle {
-                x: 0.0,
-                y: 0.0,
-                width: w0,
-                height: 10.0,
-            };
-            let (left, right) = a.split(&r, 0.5, spacing);
-            assert_eq!(
-                left,
-                Rectangle {
-                    width: w1_left,
-                    ..r
+            match case {
+                Case::Horizontal {
+                    overall_height,
+                    spacing,
+                    top_height,
+                    bottom_y,
+                    bottom_height,
+                } => {
+                    let a = Axis::Horizontal;
+                    let r = Rectangle {
+                        x: 0.0,
+                        y: 0.0,
+                        width: 10.0,
+                        height: overall_height,
+                    };
+                    let (top, bottom) = a.split(&r, 0.5, spacing);
+                    assert_eq!(
+                        top,
+                        Rectangle {
+                            height: top_height,
+                            ..r
+                        }
+                    );
+                    assert_eq!(
+                        bottom,
+                        Rectangle {
+                            y: bottom_y,
+                            height: bottom_height,
+                            ..r
+                        }
+                    );
                 }
-            );
-            assert_eq!(
-                right,
-                Rectangle {
-                    x: x_right,
-                    width: w1_right,
-                    ..r
+                Case::Vertical {
+                    overall_width,
+                    spacing,
+                    left_width,
+                    right_x,
+                    right_width,
+                } => {
+                    let a = Axis::Vertical;
+                    let r = Rectangle {
+                        x: 0.0,
+                        y: 0.0,
+                        width: overall_width,
+                        height: 10.0,
+                    };
+                    let (left, right) = a.split(&r, 0.5, spacing);
+                    assert_eq!(
+                        left,
+                        Rectangle {
+                            width: left_width,
+                            ..r
+                        }
+                    );
+                    assert_eq!(
+                        right,
+                        Rectangle {
+                            x: right_x,
+                            width: right_width,
+                            ..r
+                        }
+                    );
                 }
-            );
+            }
         }
     }
 }