From 81888345dff686e620db92c06411fb06ffc408b5 Mon Sep 17 00:00:00 2001 From: the_fiddler Date: Thu, 10 Jul 2008 14:01:52 +0000 Subject: [PATCH] Added serialization test. --- Source/Examples/Tests/MathSerialization.cs | 64 ++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 Source/Examples/Tests/MathSerialization.cs diff --git a/Source/Examples/Tests/MathSerialization.cs b/Source/Examples/Tests/MathSerialization.cs new file mode 100644 index 00000000..6e0fb3b5 --- /dev/null +++ b/Source/Examples/Tests/MathSerialization.cs @@ -0,0 +1,64 @@ +#region --- License --- +/* Licensed under the MIT/X11 license. + * Copyright (c) 2006-2008 the OpenTK team. + * This notice may not be removed. + * See license.txt for licensing detailed licensing details. + */ +#endregion + +using System; +using System.Collections.Generic; +using System.Text; +using System.IO; +using System.Xml; +using System.Xml.Serialization; + +using OpenTK.Math; + +namespace Examples.Tests +{ + [Example("Serialization", ExampleCategory.Test)] + public class MathSerialization + { + public static void Main() + { + using (MemoryStream stream = new MemoryStream()) + { + XmlSerializer xs = new XmlSerializer(typeof(Matrix4)); + + { + XmlWriterSettings settings = new XmlWriterSettings(); + settings.NewLineHandling = NewLineHandling.Entitize; + settings.Indent = true; + XmlWriter xw = XmlTextWriter.Create(stream, settings); + + xs.Serialize(xw, Matrix4.Identity); + + xw.Close(); + } + + stream.Position = 0; + byte[] text = new byte[stream.Length]; + int pos = 0; + do + { + pos += stream.Read(text, pos, (int)stream.Length); + } + while (pos != stream.Length); + + Console.WriteLine(System.Text.Encoding.Default.GetChars(text)); + + stream.Position = 0; + Matrix4 matrix = (Matrix4)xs.Deserialize(stream); + + if (Matrix4.Identity == matrix) + Console.WriteLine("Matrix deserialized correctly."); + else + Console.WriteLine("Error deserializing matrix."); + + Console.WriteLine("Press any key to continue..."); + Console.ReadKey(false); + } + } + } +}