From 8812abdf3332e01ea906382c8c241d7075cb25f4 Mon Sep 17 00:00:00 2001 From: Orange Date: Sun, 4 Jan 2026 22:23:57 +0300 Subject: [PATCH] fixed test --- include/omath/containers/encrypted_variable.hpp | 13 +++++++++---- tests/general/unit_test_var_encryption.cpp | 13 +++++-------- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/include/omath/containers/encrypted_variable.hpp b/include/omath/containers/encrypted_variable.hpp index d077e51..dbf8f72 100644 --- a/include/omath/containers/encrypted_variable.hpp +++ b/include/omath/containers/encrypted_variable.hpp @@ -97,7 +97,7 @@ namespace omath::detail namespace omath { template - class Anchor; + class VarAnchor; template key> class EncryptedVariable final { @@ -147,17 +147,22 @@ namespace omath { decrypt(); } + [[nodiscard]] + OMATH_FORCEINLINE auto drop_anchor() + { + return VarAnchor{*this}; + } }; template - class Anchor + class VarAnchor { public: // ReSharper disable once CppNonExplicitConvertingConstructor - OMATH_FORCEINLINE constexpr Anchor(EncryptedVarType& var): m_var(var) // NOLINT(*-explicit-constructor) + OMATH_FORCEINLINE constexpr VarAnchor(EncryptedVarType& var): m_var(var) // NOLINT(*-explicit-constructor) { m_var.decrypt(); } - OMATH_FORCEINLINE constexpr ~Anchor() + OMATH_FORCEINLINE constexpr ~VarAnchor() { m_var.encrypt(); } diff --git a/tests/general/unit_test_var_encryption.cpp b/tests/general/unit_test_var_encryption.cpp index 07afe2a..108e84b 100644 --- a/tests/general/unit_test_var_encryption.cpp +++ b/tests/general/unit_test_var_encryption.cpp @@ -6,15 +6,12 @@ #include TEST(Enc, Test) { - OMATH_DEF_CRYPT_VAR(omath::Vector3, 128) var{{1.f, 2.f, 3.f}}; - OMATH_DEF_CRYPT_VAR(omath::Vector3, 128) var2{{1.f, 2.f, 3.f}}; + constexpr omath::Vector3 original = {1.f, 2.f, 3.f}; + OMATH_DEF_CRYPT_VAR(omath::Vector3, 128) var{original}; { - omath::Anchor _ = {var}; - omath::Anchor __ = {var2}; + omath::VarAnchor _ = var.drop_anchor(); - std::println("Decrypted var1: {}", var.value()); - std::println("Decrypted var2: {}", var2.value()); + EXPECT_EQ(original, var.value()); } - std::println("Encrypted var1: {}", var.value()); - std::println("Encrypted var2: {}", var2.value()); + EXPECT_NE(original, var.value()); } \ No newline at end of file