diff --git a/src/language/utils/DataVariant.hpp b/src/language/utils/DataVariant.hpp
index 13744172a73c2e3c54d97412cd654ae7211ad42c..55e537f0922a53020797b360d4c235f358bcbc8c 100644
--- a/src/language/utils/DataVariant.hpp
+++ b/src/language/utils/DataVariant.hpp
@@ -71,14 +71,16 @@ class AggregateDataVariant   // LCOV_EXCL_LINE
   }
 
   PUGS_INLINE
-  DataVariant& operator[](size_t i)
+  DataVariant&
+  operator[](size_t i)
   {
     Assert(i < m_data_vector.size());
     return m_data_vector[i];
   }
 
   PUGS_INLINE
-  const DataVariant& operator[](size_t i) const
+  const DataVariant&
+  operator[](size_t i) const
   {
     Assert(i < m_data_vector.size());
     return m_data_vector[i];
diff --git a/tests/test_DataVariant.cpp b/tests/test_DataVariant.cpp
index 1fa8cf72be599782c25fd88f22613e465df818e8..92ca82b9aeb7ee68c9698f973ce48d457fd27696 100644
--- a/tests/test_DataVariant.cpp
+++ b/tests/test_DataVariant.cpp
@@ -34,7 +34,7 @@ TEST_CASE("DataVariant", "[language]")
       REQUIRE(std::get<std::vector<double>>(aggregate[2]) == std::vector<double>{1, 2.7});
     }
 
-    SECTION("Copy")
+    SECTION("copy")
     {
       AggregateDataVariant aggregate_copy{aggregate};
 
@@ -48,5 +48,40 @@ TEST_CASE("DataVariant", "[language]")
       REQUIRE(std::get<int64_t>(aggregate[1]) == std::get<int64_t>(aggregate_copy[1]));
       REQUIRE(std::get<std::vector<double>>(aggregate[2]) == std::get<std::vector<double>>(aggregate_copy[2]));
     }
+
+    SECTION("affectation")
+    {
+      AggregateDataVariant aggregate_copy;
+      aggregate_copy = aggregate;
+
+      REQUIRE(aggregate.size() == aggregate_copy.size());
+
+      for (size_t i = 0; i < aggregate.size(); ++i) {
+        REQUIRE(aggregate[i].index() == aggregate_copy[i].index());
+      }
+
+      REQUIRE(std::get<double>(aggregate[0]) == std::get<double>(aggregate_copy[0]));
+      REQUIRE(std::get<int64_t>(aggregate[1]) == std::get<int64_t>(aggregate_copy[1]));
+      REQUIRE(std::get<std::vector<double>>(aggregate[2]) == std::get<std::vector<double>>(aggregate_copy[2]));
+    }
+
+    SECTION("move affectation")
+    {
+      AggregateDataVariant aggregate_move_copy;
+      {
+        AggregateDataVariant aggregate_copy{aggregate};
+        aggregate_move_copy = std::move(aggregate_copy);
+      }
+
+      REQUIRE(aggregate.size() == aggregate_move_copy.size());
+
+      for (size_t i = 0; i < aggregate.size(); ++i) {
+        REQUIRE(aggregate[i].index() == aggregate_move_copy[i].index());
+      }
+
+      REQUIRE(std::get<double>(aggregate[0]) == std::get<double>(aggregate_move_copy[0]));
+      REQUIRE(std::get<int64_t>(aggregate[1]) == std::get<int64_t>(aggregate_move_copy[1]));
+      REQUIRE(std::get<std::vector<double>>(aggregate[2]) == std::get<std::vector<double>>(aggregate_move_copy[2]));
+    }
   }
 }