Added serialization test.
This commit is contained in:
parent
175f5aab87
commit
81888345df
1 changed files with 64 additions and 0 deletions
64
Source/Examples/Tests/MathSerialization.cs
Normal file
64
Source/Examples/Tests/MathSerialization.cs
Normal file
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue