diff --git a/tests/test_SubItemArrayPerItem.cpp b/tests/test_SubItemArrayPerItem.cpp
index 5438398b0c1d5ba0559214473f41d13dba3cb8b4..b453b9e79b430dc6b7496c1a9e533896a3df0ac1 100644
--- a/tests/test_SubItemArrayPerItem.cpp
+++ b/tests/test_SubItemArrayPerItem.cpp
@@ -563,6 +563,22 @@ TEST_CASE("SubItemArrayPerItem", "[mesh]")
         }
         REQUIRE(is_same);
       }
+
+      const EdgeArrayPerCell<const size_t> const_edge_arrays_per_cell = edge_arrays_per_cell;
+      {
+        bool is_same = true;
+        size_t i     = 0;
+        for (CellId cell_id = 0; cell_id < connectivity.numberOfCells(); ++cell_id) {
+          const auto& edge_arrays = const_edge_arrays_per_cell.itemArrays(cell_id);
+          for (size_t i_edge = 0; i_edge < edge_arrays.size(); ++i_edge) {
+            const auto& array = edge_arrays[i_edge];
+            for (size_t l = 0; l < array.size(); ++l, ++i) {
+              is_same &= (array[l] == i * i + 1);
+            }
+          }
+        }
+        REQUIRE(is_same);
+      }
     }
 
     SECTION("2D")
@@ -603,6 +619,22 @@ TEST_CASE("SubItemArrayPerItem", "[mesh]")
         }
         REQUIRE(is_same);
       }
+
+      const CellArrayPerFace<const size_t> const_cell_arrays_per_face = cell_arrays_per_face;
+      {
+        bool is_same = true;
+        size_t i     = 0;
+        for (FaceId face_id = 0; face_id < connectivity.numberOfFaces(); ++face_id) {
+          const auto& cell_arrays = const_cell_arrays_per_face.itemArrays(face_id);
+          for (size_t i_cell = 0; i_cell < cell_arrays.size(); ++i_cell) {
+            const auto& array = cell_arrays[i_cell];
+            for (size_t l = 0; l < array.size(); ++l, ++i) {
+              is_same &= (array[l] == 3 * i + 1);
+            }
+          }
+        }
+        REQUIRE(is_same);
+      }
     }
 
     SECTION("3D")
@@ -643,6 +675,22 @@ TEST_CASE("SubItemArrayPerItem", "[mesh]")
         }
         REQUIRE(is_same);
       }
+
+      const FaceArrayPerNode<const size_t> const_face_arrays_per_node = face_arrays_per_node;
+      {
+        bool is_same = true;
+        size_t i     = 0;
+        for (NodeId node_id = 0; node_id < connectivity.numberOfNodes(); ++node_id) {
+          const auto& face_arrays = const_face_arrays_per_node.itemArrays(node_id);
+          for (size_t i_face = 0; i_face < face_arrays.size(); ++i_face) {
+            const auto& array = face_arrays[i_face];
+            for (size_t l = 0; l < array.size(); ++l, ++i) {
+              is_same &= (array[l] == 3 + i * i);
+            }
+          }
+        }
+        REQUIRE(is_same);
+      }
     }
   }