Exemplo n.º 1
0
        private HsmQpModel createSimpleModel()
        {
            double[,] a = { { 0, 1 }, { 1, 0 } };
            double[] pi = { 1, 0 };
            double[,] f = { { 0, 1 }, { 0, 1 } };
            double[,] b = { { 1, 0 }, { 0, 1 } };
            //double[][]rho = {}

            HsmQpModel model = new HsmQpModel();

            model.A  = a;
            model.B  = b;
            model.F  = f;
            model.Pi = pi;
            return(model);
        }
Exemplo n.º 2
0
        public void TestSerializeHsmQp()
        {
            double[,] a = { { 0, 1 }, { 1, 0 } };
            double[] pi = { 1, 0 };
            double[,] f = { { 0, 1 }, { 0, 1 } };
            double[,] b = { { 1, 0 }, { 0, 1 } };
            double[]   per = { 1, 0 };
            double[][] rho = new double[2][];
            rho[0] = new[]
            {
                0.3D, 0.7D
            };
            rho[1] = new[]
            {
                0.3D, 0.2D, 0.5D
            };

            HsmQpModel initialModel = new HsmQpModel();

            initialModel.A   = a;
            initialModel.B   = b;
            initialModel.F   = f;
            initialModel.Pi  = pi;
            initialModel.Rho = rho;
            initialModel.Per = per;

            JsonRepresentation <HsmQpModel> jsonSerializer = new JsonRepresentation <HsmQpModel>();
            string serializedModel = jsonSerializer.Serialize(initialModel);

            Assert.IsNotNull(serializedModel);
            HsmQpModel 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.Per, deserializedModel.Per);
            CollectionAssert.AreEqual(initialModel.Pi, deserializedModel.Pi);
            Assert.AreEqual(initialModel.Rho.Length, deserializedModel.Rho.Length);
            CollectionAssert.AreEqual(initialModel.Rho[0], deserializedModel.Rho[0]);
            CollectionAssert.AreEqual(initialModel.Rho[1], deserializedModel.Rho[1]);
        }
Exemplo n.º 3
0
        public void TestSimpleGenerate()
        {
            HsmQpModel model = createSimpleModel();
            IPseudoRandomNumberGenerator randomizer = new StandartPrnGenerator();
            HsmQpModelGenerator          generator  = new HsmQpModelGenerator(model, randomizer);
            IList <int> result = generator.Generate(10);

            Assert.AreEqual(10, result.Count);
            foreach (int i in result)
            {
                if (i % 2 == 0)
                {
                    Assert.AreEqual(0, result[i]);
                }
                else
                {
                    Assert.AreEqual(1, result[i]);
                }
            }
        }