forked from tsai/mathnet-numerics
8 changed files with 96 additions and 0 deletions
@ -0,0 +1,81 @@ |
|||||
|
using System.IO; |
||||
|
using System.Runtime.Serialization; |
||||
|
using MathNet.Numerics.Statistics; |
||||
|
using NUnit.Framework; |
||||
|
|
||||
|
namespace MathNet.Numerics.UnitTests.StatisticsTests |
||||
|
{ |
||||
|
[TestFixture] |
||||
|
public class StatisticsSerializationTests |
||||
|
{ |
||||
|
[Test] |
||||
|
public void RunningStatisticsDataContractSerializationTest() |
||||
|
{ |
||||
|
var expected = new RunningStatistics(new[] { 1.0, 2.0, 3.0 }); |
||||
|
|
||||
|
var serializer = new DataContractSerializer(typeof(RunningStatistics)); |
||||
|
var stream = new MemoryStream(); |
||||
|
serializer.WriteObject(stream, expected); |
||||
|
|
||||
|
stream.Position = 0; |
||||
|
var actual = (RunningStatistics)serializer.ReadObject(stream); |
||||
|
|
||||
|
Assert.That(actual.Count, Is.EqualTo(expected.Count)); |
||||
|
Assert.That(actual.Maximum, Is.EqualTo(expected.Maximum)); |
||||
|
Assert.That(actual.Mean, Is.EqualTo(expected.Mean)); |
||||
|
} |
||||
|
|
||||
|
[Test] |
||||
|
public void RunningStatisticsWithInfinityNaNDataContractSerializationTest() |
||||
|
{ |
||||
|
var expected = new RunningStatistics(new[] { 1.0, 2.0, 3.0, double.PositiveInfinity, double.NaN }); |
||||
|
|
||||
|
var serializer = new DataContractSerializer(typeof(RunningStatistics)); |
||||
|
var stream = new MemoryStream(); |
||||
|
serializer.WriteObject(stream, expected); |
||||
|
|
||||
|
stream.Position = 0; |
||||
|
var actual = (RunningStatistics)serializer.ReadObject(stream); |
||||
|
|
||||
|
Assert.That(actual.Count, Is.EqualTo(expected.Count)); |
||||
|
Assert.That(actual.Maximum, Is.EqualTo(expected.Maximum)); |
||||
|
Assert.That(actual.Mean, Is.EqualTo(expected.Mean)); |
||||
|
} |
||||
|
|
||||
|
[Test] |
||||
|
public void DescriptiveStatisticsDataContractSerializationTest() |
||||
|
{ |
||||
|
var expected = new DescriptiveStatistics(new[] { 1.0, 2.0, 3.0 }); |
||||
|
|
||||
|
var serializer = new DataContractSerializer(typeof(DescriptiveStatistics)); |
||||
|
var stream = new MemoryStream(); |
||||
|
serializer.WriteObject(stream, expected); |
||||
|
|
||||
|
stream.Position = 0; |
||||
|
var actual = (DescriptiveStatistics)serializer.ReadObject(stream); |
||||
|
|
||||
|
Assert.That(actual.Count, Is.EqualTo(expected.Count)); |
||||
|
Assert.That(actual.Maximum, Is.EqualTo(expected.Maximum)); |
||||
|
Assert.That(actual.Mean, Is.EqualTo(expected.Mean)); |
||||
|
} |
||||
|
|
||||
|
[Test] |
||||
|
public void HistogramDataContractSerializationTest() |
||||
|
{ |
||||
|
var expected = new Histogram(new[] { 1.0, 2.0, 3.0, 4.0 }, 2); |
||||
|
|
||||
|
var serializer = new DataContractSerializer(typeof(Histogram)); |
||||
|
var stream = new MemoryStream(); |
||||
|
serializer.WriteObject(stream, expected); |
||||
|
|
||||
|
stream.Position = 0; |
||||
|
var actual = (Histogram)serializer.ReadObject(stream); |
||||
|
|
||||
|
Assert.That(actual.BucketCount, Is.EqualTo(expected.BucketCount)); |
||||
|
Assert.That(actual.DataCount, Is.EqualTo(expected.DataCount)); |
||||
|
Assert.That(actual.LowerBound, Is.EqualTo(expected.LowerBound)); |
||||
|
Assert.That(actual[0].Width, Is.EqualTo(expected[0].Width)); |
||||
|
Assert.That(actual[0].UpperBound, Is.EqualTo(expected[0].UpperBound)); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
Loading…
Reference in new issue