public void TestSerializeFeguson() { double[,] a = { { 0, 1 }, { 1, 0 } }; double[] pi = { 1, 0 }; double[,] f = { { 0, 1 }, { 0, 1 } }; double[,] b = { { 1, 0 }, { 0, 1 } }; HsmFergusonModel initialModel = new HsmFergusonModel(); initialModel.A = a; initialModel.B = b; initialModel.F = f; initialModel.Pi = pi; JsonRepresentation <HsmFergusonModel> jsonSerializer = new JsonRepresentation <HsmFergusonModel>(); string serializedModel = jsonSerializer.Serialize(initialModel); Assert.IsNotNull(serializedModel); HsmFergusonModel deserializedModel = jsonSerializer.Deserialize(serializedModel); Assert.IsNotNull(deserializedModel); Assert.AreEqual(initialModel.Type, deserializedModel.Type); Assert.AreEqual(initialModel.N, deserializedModel.N); Assert.AreEqual(initialModel.Q, deserializedModel.Q); CollectionAssert.AreEqual(initialModel.A, deserializedModel.A); CollectionAssert.AreEqual(initialModel.B, deserializedModel.B); CollectionAssert.AreEqual(initialModel.F, deserializedModel.F); CollectionAssert.AreEqual(initialModel.Pi, deserializedModel.Pi); }
public void TestCalculate() { HsmFergusonModel model = createModel(); int[] sequenceArr = { 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0 }; List <int> sequence = new List <int>(sequenceArr); HsmFergusonProbabilityCalculator calculator = new HsmFergusonProbabilityCalculator(model, sequence); double result = calculator.Calculate(); Assert.AreEqual(1, result); }
private HsmFergusonModel createModel() { double[,] a = { { 0, 1 }, { 1, 0 } }; double[] pi = { 0, 1 }; double[,] f = { { 0, 0, 1 }, { 0, 0, 1 } }; double[,] b = { { 1, 0 }, { 0, 1 } }; HsmFergusonModel model = new HsmFergusonModel(); model.A = a; model.B = b; model.F = f; model.Pi = pi; return(model); }
public void TestGenerate() { HsmFergusonModel model = createModel(); IPseudoRandomNumberGenerator randomizer = new StandartPrnGenerator(); HsmFergusonModelGenerator generator = new HsmFergusonModelGenerator(model, randomizer); IList <int> result = generator.Generate(20); Assert.AreEqual(20, result.Count); foreach (int i in result) { if (i % 4 == 0 || i % 4 == 1) { Assert.AreEqual(1, result[i]); } else { Assert.AreEqual(0, result[i]); } } }
public HsmFergusonProbabilityCalculator(HsmFergusonModel model, List <int> sequence) : base(model, sequence) { }