From 4b15e88d5042457dab68e3d759c36aa88030d0bc Mon Sep 17 00:00:00 2001 From: Thad House Date: Sat, 20 Jan 2024 20:07:58 -0800 Subject: [PATCH] Add source generated json --- test/wpimath.test/Geometry/Rotation2dTest.cs | 43 ++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/test/wpimath.test/Geometry/Rotation2dTest.cs b/test/wpimath.test/Geometry/Rotation2dTest.cs index c40b038f..dc6ebbc7 100644 --- a/test/wpimath.test/Geometry/Rotation2dTest.cs +++ b/test/wpimath.test/Geometry/Rotation2dTest.cs @@ -1,3 +1,4 @@ +using System.Text.Json; using UnitsNet.NumberExtensions.NumberToAngle; using WPIMath.Geometry; using Xunit; @@ -129,4 +130,46 @@ public void TestInterpolate() interpolated = MathExtras.Lerp(rot1, rot2, 0.5); Assert.Equal(-175.0, interpolated.Angle.Degrees, Epsilon); } + + [Fact] + public void TestDeserialization() + { + + Rotation2d r = JsonSerializer.Deserialize("{\"radians\":5}"); + Assert.Equal(5, r.Angle.Radians, Epsilon); + } + + [Fact] + public void TestSerialization() + { + Rotation2d rot = 5.Radians(); + + var serializerOptions = new JsonSerializerOptions + { + WriteIndented = false, + }; + string serialized = JsonSerializer.Serialize(rot, serializerOptions); + Assert.Equal("{\"radians\":5}", serialized); + } + + [Fact] + public void TestDeserializationSourceGenerated() + { + Rotation2d r = JsonSerializer.Deserialize("{\"radians\":5}", Rotation2dJsonContext.Default.Rotation2d); + Assert.Equal(5, r.Angle.Radians, Epsilon); + } + + [Fact] + public void TestSerializationSourceGenerated() + { + Rotation2d rot = 5.Radians(); + + var serializerOptions = new JsonSerializerOptions + { + WriteIndented = false, + }; + var context = new Rotation2dJsonContext(serializerOptions).Rotation2d; + string serialized = JsonSerializer.Serialize(rot, context); + Assert.Equal("{\"radians\":5}", serialized); + } }