mirror of
https://github.com/orange-cpp/omath.git
synced 2026-02-13 07:03:25 +00:00
fixed test
This commit is contained in:
@@ -97,7 +97,7 @@ namespace omath::detail
|
|||||||
namespace omath
|
namespace omath
|
||||||
{
|
{
|
||||||
template<class T>
|
template<class T>
|
||||||
class Anchor;
|
class VarAnchor;
|
||||||
template<class T, std::size_t key_size, std::array<std::uint8_t, key_size> key>
|
template<class T, std::size_t key_size, std::array<std::uint8_t, key_size> key>
|
||||||
class EncryptedVariable final
|
class EncryptedVariable final
|
||||||
{
|
{
|
||||||
@@ -147,17 +147,22 @@ namespace omath
|
|||||||
{
|
{
|
||||||
decrypt();
|
decrypt();
|
||||||
}
|
}
|
||||||
|
[[nodiscard]]
|
||||||
|
OMATH_FORCEINLINE auto drop_anchor()
|
||||||
|
{
|
||||||
|
return VarAnchor{*this};
|
||||||
|
}
|
||||||
};
|
};
|
||||||
template<class EncryptedVarType>
|
template<class EncryptedVarType>
|
||||||
class Anchor
|
class VarAnchor
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// ReSharper disable once CppNonExplicitConvertingConstructor
|
// 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();
|
m_var.decrypt();
|
||||||
}
|
}
|
||||||
OMATH_FORCEINLINE constexpr ~Anchor()
|
OMATH_FORCEINLINE constexpr ~VarAnchor()
|
||||||
{
|
{
|
||||||
m_var.encrypt();
|
m_var.encrypt();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,15 +6,12 @@
|
|||||||
#include <omath/containers/encrypted_variable.hpp>
|
#include <omath/containers/encrypted_variable.hpp>
|
||||||
TEST(Enc, Test)
|
TEST(Enc, Test)
|
||||||
{
|
{
|
||||||
OMATH_DEF_CRYPT_VAR(omath::Vector3<float>, 128) var{{1.f, 2.f, 3.f}};
|
constexpr omath::Vector3<float> original = {1.f, 2.f, 3.f};
|
||||||
OMATH_DEF_CRYPT_VAR(omath::Vector3<float>, 128) var2{{1.f, 2.f, 3.f}};
|
OMATH_DEF_CRYPT_VAR(omath::Vector3<float>, 128) var{original};
|
||||||
{
|
{
|
||||||
omath::Anchor _ = {var};
|
omath::VarAnchor _ = var.drop_anchor();
|
||||||
omath::Anchor __ = {var2};
|
|
||||||
|
|
||||||
std::println("Decrypted var1: {}", var.value());
|
EXPECT_EQ(original, var.value());
|
||||||
std::println("Decrypted var2: {}", var2.value());
|
|
||||||
}
|
}
|
||||||
std::println("Encrypted var1: {}", var.value());
|
EXPECT_NE(original, var.value());
|
||||||
std::println("Encrypted var2: {}", var2.value());
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user