Beispiel #1
0
 private void InitializeInstanceFields()
 {
     startCode = new Startcode(this);
     de1       = new DE(this);
     de2       = new DE(this);
     de3       = new DE(this);
 }
Beispiel #2
0
        public void TestWrite()
        {
            var writer = new BitStream(2048);
            var src    = new DE();

            _dynamicEntityFactoryBase.Write(writer, src);
        }
Beispiel #3
0
 /// <summary>
 /// Resetting code
 /// </summary>
 private void Reset()
 {
     this.lc        = 0;
     this.startCode = new Startcode(this);
     this.de1       = new DE(this);
     this.de2       = new DE(this);
     this.de3       = new DE(this);
     this.rest      = null;
 }
Beispiel #4
0
 private DijkstraElement sigDefinitivo(List <DijkstraElement> VD)
 {
     return((
                from DE in VD
                where !DE.getIsDefinitive()
                orderby DE.getWeigth() ascending
                select DE
                ).First());
 }
Beispiel #5
0
        public void TestWriteRead()
        {
            var writer = new BitStream(2048);
            var src    = new DE();

            _dynamicEntityFactoryBase.Write(writer, src);
            var buffer = writer.GetBuffer();

            var reader = new BitStream(buffer);

            _dynamicEntityFactoryBase.Read(reader);
        }
Beispiel #6
0
            private void gen18()
            {
                double part1, part2, part3, part4, part5, part6, Mn, ME, Dn, DE, MEn, DEn;

                part1     = r.Next(1, 8);
                part2     = r.Next(1, 10 - (int)part1);
                part3     = 10 - part1 - part2;
                part4     = r.Next(0, (int)part1) / 10d;
                part1     = Math.Abs(part1 / 10d - part4);
                part5     = r.Next(0, (int)part2) / 10d;
                part2     = Math.Abs(part2 / 10d - part5);
                part6     = r.Next(0, (int)part3) / 10d;
                part3     = Math.Abs(part3 / 10d - part6);
                paragraph = document.InsertParagraph();
                paragraph.AppendLine("18.  ").Font(font).FontSize(12).Bold().Alignment = Alignment.left;
                paragraph.Append("Дана таблица распределения вероятностей двумерной случайной величины (y,x)").Font(font).FontSize(12);
                Table table = document.AddTable(3, 4);

                table.Alignment = Alignment.center;
                table.SetColumnWidth(0, 40);
                table.SetColumnWidth(1, 40);
                table.SetColumnWidth(2, 40);
                table.SetColumnWidth(3, 40);
                table.Rows[0].Cells[0].Paragraphs[0].Append("y/x").Alignment            = Alignment.center;
                table.Rows[0].Cells[1].Paragraphs[0].Append("-1").Alignment             = Alignment.center;
                table.Rows[0].Cells[2].Paragraphs[0].Append("0").Alignment              = Alignment.center;
                table.Rows[0].Cells[3].Paragraphs[0].Append("1").Alignment              = Alignment.center;
                table.Rows[1].Cells[0].Paragraphs[0].Append("0").Alignment              = Alignment.center;
                table.Rows[2].Cells[0].Paragraphs[0].Append("1").Alignment              = Alignment.center;
                table.Rows[1].Cells[1].Paragraphs[0].Append(part1.ToString()).Alignment = Alignment.center;
                table.Rows[1].Cells[2].Paragraphs[0].Append(part2.ToString()).Alignment = Alignment.center;
                table.Rows[1].Cells[3].Paragraphs[0].Append(part3.ToString()).Alignment = Alignment.center;
                table.Rows[2].Cells[1].Paragraphs[0].Append(part4.ToString()).Alignment = Alignment.center;
                table.Rows[2].Cells[2].Paragraphs[0].Append(part5.ToString()).Alignment = Alignment.center;
                table.Rows[2].Cells[3].Paragraphs[0].Append(part6.ToString()).Alignment = Alignment.center;

                paragraph = document.InsertParagraph();
                paragraph.InsertTableBeforeSelf(table);
                paragraph.Append("Найти М(y), М(x), М(yx), D(y), D(x), D(yx).").Font(font).FontSize(12);
                ME = part4 + part5 + part6;
                DE = part4 + part5 + part6 - ME * ME;
                Mn = (part1 + part4) * (-1) + part3 + part6;
                Dn = (part1 + part4) + part3 + part6 - Mn * Mn;

                MEn = 1d * (-1d) * part4 + 1d * 1d * part6;
                DEn = 1d * 1d * part4 + 1d * 1d * part6 - MEn * MEn;
                allresult[variantIterator] += "\n18. М(y)= " + ME.ToString() +
                                              "\n      D(y)= " + doubleNormalize(DE.ToString()) +
                                              "\n      М(x)= " + doubleNormalize(Mn.ToString()) +
                                              "\n      D(x)= " + doubleNormalize(Dn.ToString()) +
                                              "\n      М(yx)= " + doubleNormalize(MEn.ToString()) +
                                              "\n      D(yx)= " + doubleNormalize(DEn.ToString()) + ". ";
            }
Beispiel #7
0
            private void gen13_14()
            {
                string[] f1    = new string[] { "-π/2", "-π/3", "-π/4", "-π/6", "0" };
                string[] f2    = new string[] { "π/2", "π/3", "π/4", "π/6" };
                int      part1 = randInt(0, 4);
                int      part2 = randInt(0, 3);

                paragraph = document.InsertParagraph();
                paragraph.AppendLine("13.  ").Font(font).FontSize(12).Bold().Alignment = Alignment.left;
                paragraph.Append("Задана плотность распределения непрерывной случайной величины x:"
                                 + "\n p(х)=K*cos(x), ∀x ∈ (" + f1[part1] + " ; " + f2[part2] + "]\n p(х)=0, ∀x ∉ (" + f1[part1] + " ; " + f2[part2] + "]\nНайти K и функцию распределения F(x).").Font(font).FontSize(12);

                string[,] kresultm = new string[, ] {
                    { "1/2", "(-2√3 + 4)", "(√2 +2)", "2/3" },
                    { "(4-2√3)", "√3/3", "(-2√2 + 2√3)", "(-1+√3)" },
                    { "(2-√2)", "(2√3-2√2)", "√2/2", "(-2+2√2)" },
                    { "2/3", "(√3 -1)", "(2√2-2)", "1" },
                    { "1", "2√3/3", "√2", "2" }
                };
                string kresult = kresultm[part1, part2];

                string fresult = "\n      p(х)=0,при x≤" + f1[part1] +
                                 "\n      p(х)=" + kresult + "*sin(x),при " + f1[part1] + " < x ≤ " + f2[part2] +
                                 "\n      p(х)=1,при x > " + f2[part2];

                allresult[variantIterator] += "\n13. K= " + kresult.ToString() + fresult + "; ";

                double ME, DE, q;

                paragraph = document.InsertParagraph();
                paragraph.AppendLine("14.  ").Font(font).FontSize(12).Bold().Alignment = Alignment.left;
                paragraph.Append("X - непрерывная случайная величина примера 13. Найти М(X), D(X), σ(X).").Font(font).FontSize(12);

                double[] f1num = new double[] { -Math.PI / 2d, -Math.PI / 3d, -Math.PI / 4d, -Math.PI / 6d, 0d };
                double[] f2num = new double[] { Math.PI / 2d, Math.PI / 3d, Math.PI / 4d, Math.PI / 6d };
                double[,] knum = new double[, ] {
                    { 1d / 2d, -2d * (double)Math.Sqrt(3d) + 4d, (double)Math.Sqrt(2d) + 2d, 2d / 3d },
                    { 4d - 2d * (double)Math.Sqrt(3d), (double)Math.Sqrt(3d) / 3d, -2d * (double)Math.Sqrt(2d) + 2d * (double)Math.Sqrt(3d), -1d * (double)Math.Sqrt(3d) },
                    { 2d - (double)Math.Sqrt(2d), 2d * (double)Math.Sqrt(3d) - 2d * (double)Math.Sqrt(2d), (double)Math.Sqrt(2d) / 2d, -2d + 2d * (double)Math.Sqrt(2d) },
                    { 2d / 3d, (double)Math.Sqrt(3d) - 1d, 2d * (double)Math.Sqrt(2d) - 2d, 1d },
                    { 1d, 2d * (double)Math.Sqrt(3d) / 3d, (double)Math.Sqrt(2d), 2d }
                };

                ME = knum[part1, part2] * (f2num[part2] * Math.Sin(f2num[part2]) + Math.Cos(f2num[part2]) - (f1num[part1] * Math.Sin(f1num[part1]) + Math.Cos(f1num[part1])));
                DE = knum[part1, part2] * (f2num[part2] * f2num[part2] * Math.Sin(f2num[part2]) + 2d * f2num[part2] * Math.Cos(f2num[part2]) + 2d * Math.Sin(f2num[part2]) - (f1num[part1] * f2num[part1] * Math.Sin(f1num[part1]) + 2d * f1num[part1] * Math.Cos(f1num[part1]) + 2d * Math.Sin(f1num[part1]))) - ME * ME;
                q  = Math.Sqrt(DE);

                allresult[variantIterator] +=
                    "\n14. М(X)= " + doubleNormalize(ME.ToString()) +
                    "\n      D(X)= " + doubleNormalize(DE.ToString()) +
                    "\n      σ(X)= " + doubleNormalize(q.ToString()) + ";";
            }
Beispiel #8
0
 private void setName()
 {
     if (dgvElementList.Rows.Count != 0)
     {
         foreach (DataGridViewRow liveRow in dgvElementList.Rows)
         {
             if (liveRow.Selected == true)
             {
                 selectedDataElement = liveRow.DataBoundItem as DE;
                 tbDataName.Text     = selectedDataElement.N;
             }
         }
     }
 }
Beispiel #9
0
        public void TestWriteReadManyValuesExtensive()
        {
            const int count = 1000;

            var writer  = new BitStream(1024 * 1024);
            var sources = new List <DE>(count);

            for (var i = 0; i < count; i++)
            {
                var src = new DE();
                sources.Add(src);
                _dynamicEntityFactoryBase.Write(writer, src);
            }
            var buffer = writer.GetBuffer();

            var reader = new BitStream(buffer);

            for (var i = 0; i < count; i++)
            {
                var src  = sources[i];
                var dest = (DE)_dynamicEntityFactoryBase.Read(reader);

                Assert.AreEqual(src.Position, dest.Position);
                Assert.AreEqual(src.Size, dest.Size);
                Assert.AreEqual(src.Velocity, dest.Velocity);
                Assert.AreEqual(src.Weight, dest.Weight);
                Assert.AreEqual(src.MapEntityIndex, dest.MapEntityIndex);
                Assert.AreEqual(src.Center, dest.Center);

                Assert.AreEqual(src.A, dest.A, "Index: " + i);
                Assert.AreEqual(src.B, dest.B, "Index: " + i);
                Assert.AreEqual(src.C, dest.C, "Index: " + i);
                Assert.AreEqual(src.D, dest.D, "Index: " + i);
                Assert.AreEqual(src.E, dest.E, "Index: " + i);
                Assert.AreEqual(src.F, dest.F, "Index: " + i);
                Assert.AreEqual(src.G, dest.G, "Index: " + i);
                Assert.AreEqual(src.H, dest.H, "Index: " + i);
                Assert.AreEqual(src.I, dest.I, "Index: " + i);
                Assert.AreEqual(src.J, dest.J, "Index: " + i);
                Assert.AreEqual(src.K, dest.K, "Index: " + i);
                Assert.AreEqual(src.L, dest.L, "Index: " + i);
                Assert.AreEqual(src.M, dest.M, "Index: " + i);
                Assert.AreEqual(src.N, dest.N, "Index: " + i);
                Assert.AreEqual(src.O, dest.O, "Index: " + i);
                Assert.AreEqual(src.P, dest.P, "Index: " + i);
                Assert.AreEqual(src.Q, dest.Q, "Index: " + i);
                Assert.AreEqual(src.R, dest.R, "Index: " + i);
            }
        }
Beispiel #10
0
 private void Form3_KeyDown(object sender, KeyEventArgs e)
 {
     if (e.KeyCode == Keys.D1)
     {
         S.PerformClick();
     }
     else if (e.KeyCode == Keys.D2)
     {
         E.PerformClick();
     }
     else if (e.KeyCode == Keys.D3)
     {
         DE.PerformClick();
     }
     else if (e.KeyCode == Keys.D4)
     {
         Q.PerformClick();
     }
     else if (e.KeyCode == Keys.D5)
     {
         DQ.PerformClick();
     }
     else if (e.KeyCode == Keys.D6)
     {
         H.PerformClick();
     }
     else if (e.KeyCode == Keys.D7)
     {
         DH.PerformClick();
     }
     else if (e.KeyCode == Keys.D8)
     {
         W.PerformClick();
     }
     else if (e.KeyCode == Keys.S)
     {
         if (button4.FlatStyle == FlatStyle.Standard)
         {
             button4.PerformClick();
         }
     }
     else if (e.KeyCode == Keys.A)
     {
         if (button1.FlatStyle == FlatStyle.Standard)
         {
             button1.PerformClick();
         }
     }
 }
Beispiel #11
0
        // Summary:
        //     Performs a recursive delete on this Principal
        //
        // Returns:
        //     Void
        //
        // Exceptions:
        //
        public void DeleteTree()
        {
            /* This whole method is needed because AccountManagement does not provide a Principal.DeleteTree() method.
             * So we have to peel back layers of the onion and do it ourselves.
             */
            //For brevity, removed existence checks
            var DE = new DirectoryEntry(string.Format("LDAP://{0}", DistinguishedName));

            if (ContextType == ContextType.ApplicationDirectory)
            {
                DE = new DirectoryEntry(string.Format("LDAP://{0}/{1}", Context.ConnectedServer, DistinguishedName));
            }
            DE.DeleteTree();
            DE.CommitChanges();
        }
Beispiel #12
0
        public List <DijkstraElement> dijkstra(int opc, char origin, char destiny)
        {
            //vector dijkstra
            var VD = inicialzaVectorDijkstra();
            // arbol de expansion minimo
            var AEM = new List <DijkstraElement>();

            VD.Find(DE => DE.getNode().getCiudad().getName().Equals(origin)).setIsDefinitive(true);
            // nodo inicial
            //var n = listaNodos.Find( nodo => nodo.getCiudad().getName().Equals(origin));
            var n = VD.Find(DE => DE.getNode().getCiudad().getName().Equals(origin));
            // peso
            var p = 0;

            while (!allDefinitives(VD))
            {
                actualizarPesos(ref VD, n.getNode(), p, opc);
                //var definitivo = sigDefinitivo(VD);
                n = sigDefinitivo(VD);
                n.setIsDefinitive(true);
                Console.WriteLine("Nodo: " + n.getNode().getCiudad().getName() + " Peso " + n.getWeigth());
                p = n.getWeigth();
                AEM.Add(n);
                // Descomentar para hacer que dijkstra se detenga en el destino
                //if (n.getNode().getCiudad().getName().Equals(destiny))
                //{
                //    break;
                //}
            }

            /*
             * foreach(var ED in VD)
             * {
             *  if(ED.getComming() != null)
             *  {
             *
             *      Console.Write(ED.getNode().getCiudad().getName() + " <- ");
             *      Console.Write(ED.getComming().getCiudad().getName() + "\t");
             *      Console.Write(ED.getWeigth() + "\n");
             *  }
             * }
             */
            makeARM(AEM, origin);
            return(AEM);
        }
Beispiel #13
0
        public void TestWriteReadValues()
        {
            var writer = new BitStream(1024);
            var src    = new DE();

            _dynamicEntityFactoryBase.Write(writer, src);
            var buffer = writer.GetBuffer();

            var reader = new BitStream(buffer);
            var dest   = (DE)_dynamicEntityFactoryBase.Read(reader);

            Assert.AreEqual(src.Position, dest.Position);
            Assert.AreEqual(src.Size, dest.Size);
            Assert.AreEqual(src.Velocity, dest.Velocity);
            Assert.AreEqual(src.Weight, dest.Weight);
            Assert.AreEqual(src.MapEntityIndex, dest.MapEntityIndex);
            Assert.AreEqual(src.Center, dest.Center);
        }
Beispiel #14
0
        private void send_Click(object sender, EventArgs e)
        {
            string[] args = new string[200];

            SmtpClient smtp = new SmtpClient(args[0]);

            smtp.Host = "BRSPX002.samerica.br.int.atosorigin.com";

            MailAddress remetente = new MailAddress(DE.ToString(), "Nova Opção Locações");

            MailAddress para      = new MailAddress(PARA.ToString(), PARA.ToString());
            MailMessage mensagem  = new MailMessage(remetente, para);
            string      userState = "test message1";

            mensagem.Body            = "Este é apenas um teste de envio de e-mail";
            mensagem.BodyEncoding    = System.Text.Encoding.UTF8;
            mensagem.SubjectEncoding = System.Text.Encoding.UTF8;
            mensagem.Subject         = "Teste de Envio";
            smtp.SendAsync(mensagem, userState);
        }
Beispiel #15
0
        private void btnOK_Click(object sender, EventArgs e)
        {
            //if (editing == false)
            //{
            //    //this.ConstantElement = new TElement_Constant(tbConstantName.Text, CVRT.GetBytes(tbCharacterInput.Text));

            //}
            //else
            //{
            //    //constantElement.elementName = tbConstantName.Text;
            //    //constantElement.elementBytes = CVRT.GetBytes(tbCharacterInput.Text);

            //}

            DE ConstantDataElement = new DE(tbConstantName.Text, cbConstantType.SelectedItem.ToString(), tbConstantValue.Text);

            this.ConstantElement = TElementFactory.TElementPicker(tbConstantName.Text, ConstantDataElement);


            this.DialogResult = DialogResult.OK;
        }
Beispiel #16
0
        private void selectNewPack()
        {
            if (dgvSourceList.Rows.Count != 0)
            {
                SelectedPack = dgvSourceList.Rows[0].DataBoundItem as DP;

                ElementBind.DataSource    = SelectedPack.dataElement;
                dgvElementList.DataSource = ElementBind;
                if (dgvElementList.Rows.Count != 0)//pre-selects the first element at the top of the element list
                {
                    selectedDataElement = dgvElementList.Rows[0].DataBoundItem as DE;
                }
            }

            ElementBind.ResetBindings(true);
            refreshLiveBeans();
            if (dgvElementList.Rows.Count != 0)
            {
                dgvElementList.Rows[0].Selected = true;
            }
            setName();
        }
Beispiel #17
0
 public string makeARM(List <DijkstraElement> AEM, char origin)
 {
     for (int i = 0; i < AEM.Count; i++)
     {
         Console.Write(AEM[i].getNode().getCiudad().getName() + " <- ");
         if (AEM[i].getComming() != null)
         {
             var current = AEM[i].getComming();
             while (current != null)
             {
                 var data = AEM.Find(DE => DE.getNode().getCiudad().getName().Equals(current.getCiudad().getName()));
                 Console.Write(current.getCiudad().getName() + " <- ");
                 current = null;
                 if (data != null)
                 {
                     current = data.getComming();
                 }
             }
         }
         Console.Write(AEM[i].getWeigth() + "\n");
     }
     return("");
 }
Beispiel #18
0
        public void TestWriteReadValuesExtensive()
        {
            var writer = new BitStream(2048);
            var src    = new DE();

            _dynamicEntityFactoryBase.Write(writer, src);
            var buffer = writer.GetBuffer();

            var reader = new BitStream(buffer);
            var dest   = (DE)_dynamicEntityFactoryBase.Read(reader);

            Assert.AreEqual(src.Position, dest.Position);
            Assert.AreEqual(src.Size, dest.Size);
            Assert.AreEqual(src.Velocity, dest.Velocity);
            Assert.AreEqual(src.Weight, dest.Weight);
            Assert.AreEqual(src.MapEntityIndex, dest.MapEntityIndex);
            Assert.AreEqual(src.Center, dest.Center);

            Assert.AreEqual(src.A, dest.A);
            Assert.AreEqual(src.B, dest.B);
            Assert.AreEqual(src.C, dest.C);
            Assert.AreEqual(src.D, dest.D);
            Assert.AreEqual(src.E, dest.E);
            Assert.AreEqual(src.F, dest.F);
            Assert.AreEqual(src.G, dest.G);
            Assert.AreEqual(src.H, dest.H);
            Assert.AreEqual(src.I, dest.I);
            Assert.AreEqual(src.J, dest.J);
            Assert.AreEqual(src.K, dest.K);
            Assert.AreEqual(src.L, dest.L);
            Assert.AreEqual(src.M, dest.M);
            Assert.AreEqual(src.N, dest.N);
            Assert.AreEqual(src.O, dest.O);
            Assert.AreEqual(src.P, dest.P);
            Assert.AreEqual(src.Q, dest.Q);
            Assert.AreEqual(src.R, dest.R);
        }
Beispiel #19
0
        private string CreatePayload()
        {
            StringBuilder sb = new StringBuilder();

            // Startcode
            sb.Append(this.startCode.RenderLength());

            // Control bytes
            foreach (int?i in this.startCode.controlBytes)
            {
                sb.Append(ToHex(i.Value, 2));
            }

            // Startcode
            sb.Append(this.startCode.RenderData());

            // Attach DEs
            DE[] deList = new DE[] { this.de1, this.de2, this.de3 };

            for (int i = 0; i < deList.Length; ++i)
            {
                DE de = deList[i];
                sb.Append(de.RenderLength());
                sb.Append(de.RenderData());
            }

            string s = sb.ToString();

            // Calculate the length and append it at the front
            int len = s.Length;

            len += 2;
            string lc = ToHex(len, 2);

            return(lc + s);
        }
Beispiel #20
0
            public IFD(IFH h)
            {
                Head = h;
                var fs = new FileStream(h.File, FileMode.Open);

                fs.Seek(h.IFD, SeekOrigin.Begin);

                var ct = new byte[2];

                fs.Read(ct, 0, 2);

                Count = Convert.ToInt32(h.getValue(ct, 3));

                Des = new List <DE>();
                for (var i = 0; i < Count; i++)
                {
                    var de = new byte[12];
                    fs.Seek(10 + i * 12, SeekOrigin.Begin);
                    fs.Read(de, 0, 12);
                    var d = new DE(de, fs, this);
                    Des.Add(d);
                }

                Width  = Convert.ToUInt32(Des.FirstOrDefault(o => o.Tag == 256).Value);
                Height = Convert.ToUInt32(Des.FirstOrDefault(o => o.Tag == 257).Value);
                Pos    = Convert.ToInt64(Des.FirstOrDefault(o => o.Tag == 273).Value);
                Stride = Convert.ToInt64(Des.FirstOrDefault(o => o.Tag == 279).Value) / Height;

                fs.Seek(10 + Count * 12, SeekOrigin.Begin);
                var nt = new byte[4];

                fs.Read(nt, 0, 4);
                Next = BitConverter.ToInt32(nt, 0);

                fs.Close();
            }
Beispiel #21
0
 private DijkstraElement buscarElementoDijkstra(List <DijkstraElement> VD, Ady a)
 {
     //DE = DijkstraElement
     return(VD.Find(DE => DE.getNode().getCiudad().getName().Equals(a.getNodo().getCiudad().getName())));
 }
        public void TestWriteReadManyValuesExtensive()
        {
            const int count = 1000;

            var writer = new BitStream(1024 * 1024);
            var sources = new List<DE>(count);
            for (var i = 0; i < count; i++)
            {
                var src = new DE();
                sources.Add(src);
                _dynamicEntityFactoryBase.Write(writer, src);
            }
            var buffer = writer.GetBuffer();

            var reader = new BitStream(buffer);
            for (var i = 0; i < count; i++)
            {
                var src = sources[i];
                var dest = (DE)_dynamicEntityFactoryBase.Read(reader);

                Assert.AreEqual(src.Position, dest.Position);
                Assert.AreEqual(src.Size, dest.Size);
                Assert.AreEqual(src.Velocity, dest.Velocity);
                Assert.AreEqual(src.Weight, dest.Weight);
                Assert.AreEqual(src.MapEntityIndex, dest.MapEntityIndex);
                Assert.AreEqual(src.Center, dest.Center);

                Assert.AreEqual(src.A, dest.A, "Index: " + i);
                Assert.AreEqual(src.B, dest.B, "Index: " + i);
                Assert.AreEqual(src.C, dest.C, "Index: " + i);
                Assert.AreEqual(src.D, dest.D, "Index: " + i);
                Assert.AreEqual(src.E, dest.E, "Index: " + i);
                Assert.AreEqual(src.F, dest.F, "Index: " + i);
                Assert.AreEqual(src.G, dest.G, "Index: " + i);
                Assert.AreEqual(src.H, dest.H, "Index: " + i);
                Assert.AreEqual(src.I, dest.I, "Index: " + i);
                Assert.AreEqual(src.J, dest.J, "Index: " + i);
                Assert.AreEqual(src.K, dest.K, "Index: " + i);
                Assert.AreEqual(src.L, dest.L, "Index: " + i);
                Assert.AreEqual(src.M, dest.M, "Index: " + i);
                Assert.AreEqual(src.N, dest.N, "Index: " + i);
                Assert.AreEqual(src.O, dest.O, "Index: " + i);
                Assert.AreEqual(src.P, dest.P, "Index: " + i);
                Assert.AreEqual(src.Q, dest.Q, "Index: " + i);
                Assert.AreEqual(src.R, dest.R, "Index: " + i);
            }
        }
        public void TestWriteReadValuesExtensive()
        {
            var writer = new BitStream(2048);
            var src = new DE();
            _dynamicEntityFactoryBase.Write(writer, src);
            var buffer = writer.GetBuffer();

            var reader = new BitStream(buffer);
            var dest = (DE)_dynamicEntityFactoryBase.Read(reader);

            Assert.AreEqual(src.Position, dest.Position);
            Assert.AreEqual(src.Size, dest.Size);
            Assert.AreEqual(src.Velocity, dest.Velocity);
            Assert.AreEqual(src.Weight, dest.Weight);
            Assert.AreEqual(src.MapEntityIndex, dest.MapEntityIndex);
            Assert.AreEqual(src.Center, dest.Center);

            Assert.AreEqual(src.A, dest.A);
            Assert.AreEqual(src.B, dest.B);
            Assert.AreEqual(src.C, dest.C);
            Assert.AreEqual(src.D, dest.D);
            Assert.AreEqual(src.E, dest.E);
            Assert.AreEqual(src.F, dest.F);
            Assert.AreEqual(src.G, dest.G);
            Assert.AreEqual(src.H, dest.H);
            Assert.AreEqual(src.I, dest.I);
            Assert.AreEqual(src.J, dest.J);
            Assert.AreEqual(src.K, dest.K);
            Assert.AreEqual(src.L, dest.L);
            Assert.AreEqual(src.M, dest.M);
            Assert.AreEqual(src.N, dest.N);
            Assert.AreEqual(src.O, dest.O);
            Assert.AreEqual(src.P, dest.P);
            Assert.AreEqual(src.Q, dest.Q);
            Assert.AreEqual(src.R, dest.R);
        }
        /* Execute Step Comments:
         *      The temp variables Rs,Rd,Operand8,etc registers are defined in constructor Main() method to avoid memory leaks.
         *      But, this also means they will also retain the same value even after ExecuteStep() is called again.
         *      So, for any temp variables, modify all its constituent variables then only use it.
         *      e.g. Do not use Operand16 by modifying just its LB or HB.
         */
        private void ExecuteStep()
        {
            IC++;
            CCC = CCC + Int32.Parse(I.Names[m[PC.DEC16].DEC8, 2]);

            if (changeInte == true)     //Interrupt control logic (as ei/de affects inte f/f only during next instruction)
            {
                if (changeInteTo == true)
                {
                    inte = true;
                }
                else
                {
                    inte = false;
                }

                changeInte = false;

                UpdateInterrupt();
            }

            Opcode.DEC8 = m[PC.DEC16].DEC8;

            //  * DATA TRANSFER GROUP *

            if (BitCombination(Opcode[7], Opcode[6]) == "01")   //MOV,HLT
            {
                //Except Rs=Rd=M 01110110 hlt
                if (BitCombination(Opcode[5], Opcode[4], Opcode[3], Opcode[2], Opcode[1], Opcode[0]) == "110110")
                {
                    //Halt Rs=Rd=M 01110110 hlt
                    Stop();
                    return;
                }
                else
                {
                    Rs.DEC8 = Get8BitRegisterValue(Opcode[2], Opcode[1], Opcode[0]);
                    Set8BitRegisterValue(Rs.DEC8, Opcode[5], Opcode[4], Opcode[3]);

                    PC.INX();
                }
            }
            else if (BitCombination(Opcode[7], Opcode[6], Opcode[2], Opcode[1], Opcode[0]) == "00110")  //MVI Rd,8BitData
            {
                PC.INX();

                Operand8.DEC8 = m[PC.DEC16].DEC8;
                Set8BitRegisterValue(Operand8.DEC8, Opcode[5], Opcode[4], Opcode[3]);

                PC.INX();
            }
            else if (BitCombination(Opcode[7], Opcode[6], Opcode[3], Opcode[2], Opcode[1], Opcode[0]) == "000001")  //LXI Rp,16BitData
            {
                PC.INX();
                Operand16.LB.DEC8 = m[PC.DEC16].DEC8;

                PC.INX();
                Operand16.HB.DEC8 = m[PC.DEC16].DEC8;

                Set16BitRegisterValue(true, Operand16.DEC16, Opcode[5], Opcode[4]);

                PC.INX();
            }
            else if (BitCombination(Opcode[7], Opcode[6], Opcode[5], Opcode[4], Opcode[3], Opcode[2], Opcode[1], Opcode[0]) == "00111010")  //LDA
            {
                PC.INX();
                Operand16.LB.DEC8 = m[PC.DEC16].DEC8;

                PC.INX();
                Operand16.HB.DEC8 = m[PC.DEC16].DEC8;

                PSW.HB.DEC8 = m[Operand16.DEC16].DEC8;

                PC.INX();
            }
            else if (BitCombination(Opcode[7], Opcode[6], Opcode[5], Opcode[4], Opcode[3], Opcode[2], Opcode[1], Opcode[0]) == "00110010")  //STA
            {
                PC.INX();
                Operand16.LB.DEC8 = m[PC.DEC16].DEC8;

                PC.INX();
                Operand16.HB.DEC8 = m[PC.DEC16].DEC8;

                m[Operand16.DEC16].DEC8 = PSW.HB.DEC8;

                PC.INX();
            }
            else if (BitCombination(Opcode[7], Opcode[6], Opcode[5], Opcode[4], Opcode[3], Opcode[2], Opcode[1], Opcode[0]) == "00101010")  //LHLD
            {
                PC.INX();
                Operand16.LB.DEC8 = m[PC.DEC16].DEC8;

                PC.INX();
                Operand16.HB.DEC8 = m[PC.DEC16].DEC8;

                HL.LB.DEC8 = m[Operand16.DEC16].DEC8;

                Operand16.INX();
                HL.HB.DEC8 = m[Operand16.DEC16].DEC8;

                PC.INX();
            }
            else if (BitCombination(Opcode[7], Opcode[6], Opcode[5], Opcode[4], Opcode[3], Opcode[2], Opcode[1], Opcode[0]) == "00100010")  //SHLD
            {
                PC.INX();
                Operand16.LB.DEC8 = m[PC.DEC16].DEC8;

                PC.INX();
                Operand16.HB.DEC8 = m[PC.DEC16].DEC8;

                m[Operand16.DEC16].DEC8 = HL.LB.DEC8;

                Operand16.INX();
                m[Operand16.DEC16].DEC8 = HL.HB.DEC8;

                PC.INX();
            }
            else if (BitCombination(Opcode[7], Opcode[6], Opcode[5], Opcode[4], Opcode[3], Opcode[2], Opcode[1], Opcode[0]) == "00001010")  //LDAX B
            {
                PSW.HB.DEC8 = m[BC.DEC16].DEC8;

                PC.INX();
            }
            else if (BitCombination(Opcode[7], Opcode[6], Opcode[5], Opcode[4], Opcode[3], Opcode[2], Opcode[1], Opcode[0]) == "00011010")  //LDAX D
            {
                PSW.HB.DEC8 = m[DE.DEC16].DEC8;

                PC.INX();
            }
            else if (BitCombination(Opcode[7], Opcode[6], Opcode[5], Opcode[4], Opcode[3], Opcode[2], Opcode[1], Opcode[0]) == "11101010")  //XCHG
            {
                Operand16.DEC16 = HL.DEC16;
                HL.DEC16        = DE.DEC16;
                DE.DEC16        = Operand16.DEC16;

                PC.INX();
            }
            else if (Opcode.DEC8 == 219)  //IN 8bitIOPortAddress
            {
                PC.INX();

                PSW.HB.DEC8 = io[m[PC.DEC16].DEC8].DEC8;

                PC.INX();
            }
            else if (Opcode.DEC8 == 211)  //OUT 8bitIOPortAddress
            {
                PC.INX();

                io[m[PC.DEC16].DEC8].DEC8 = PSW.HB.DEC8;

                PC.INX();
            }
            //  * ARITHMETIC GROUP  *
            else if (BitCombination(Opcode[7], Opcode[6], Opcode[5], Opcode[4], Opcode[3]) == "10000")  //ADD Rs
            {
                Rs.DEC8 = Get8BitRegisterValue(Opcode[2], Opcode[1], Opcode[0]);

                if ((PSW.HB.GetLowerNibble() + Rs.GetLowerNibble()) > 15)
                {
                    PSW.LB[4] = true;
                }
                else
                {
                    PSW.LB[4] = false;
                }

                if ((PSW.HB.DEC8 + Rs.DEC8) > 255)
                {
                    PSW.LB[0]   = true;
                    PSW.HB.DEC8 = (byte)(PSW.HB.DEC8 + Rs.DEC8 - 256);
                }
                else
                {
                    PSW.LB[0]   = false;
                    PSW.HB.DEC8 = (byte)(PSW.HB.DEC8 + Rs.DEC8);
                }

                UpdateP(PSW.HB.DEC8);
                UpdateS(PSW.HB.DEC8);
                UpdateZ(PSW.HB.DEC8);

                PC.INX();
            }
            else if (BitCombination(Opcode[7], Opcode[6], Opcode[5], Opcode[4], Opcode[3]) == "10001")  //ADC R
            {
                Rs.DEC8 = Get8BitRegisterValue(Opcode[2], Opcode[1], Opcode[0]);

                byte i;
                if (PSW.LB[0] == true)
                {
                    i = 1;
                }
                else
                {
                    i = 0;
                }

                if ((PSW.HB.GetLowerNibble() + Rs.GetLowerNibble() + i) > 15)
                {
                    PSW.LB[4] = true;
                }
                else
                {
                    PSW.LB[4] = false;
                }

                if ((PSW.HB.DEC8 + Rs.DEC8 + i) > 255)
                {
                    PSW.LB[0]   = true;
                    PSW.HB.DEC8 = (byte)(PSW.HB.DEC8 + Rs.DEC8 + i - 256);
                }
                else
                {
                    PSW.LB[0]   = false;
                    PSW.HB.DEC8 = (byte)(PSW.HB.DEC8 + Rs.DEC8 + i);
                }

                UpdateP(PSW.HB.DEC8);
                UpdateS(PSW.HB.DEC8);
                UpdateZ(PSW.HB.DEC8);

                PC.INX();
            }
            else if (BitCombination(Opcode[7], Opcode[6], Opcode[5], Opcode[4], Opcode[3], Opcode[2], Opcode[1], Opcode[0]) == "11000110")  //ADI 8bitdata
            {
                PC.INX();

                Operand8.DEC8 = m[PC.DEC16].DEC8;

                if ((PSW.HB.GetLowerNibble() + Operand8.GetLowerNibble()) > 15)
                {
                    PSW.LB[4] = true;
                }
                else
                {
                    PSW.LB[4] = false;
                }

                if ((PSW.HB.DEC8 + Operand8.DEC8) > 255)
                {
                    PSW.LB[0]   = true;
                    PSW.HB.DEC8 = (byte)(PSW.HB.DEC8 + Operand8.DEC8 - 256);
                }
                else
                {
                    PSW.LB[0]   = false;
                    PSW.HB.DEC8 = (byte)(PSW.HB.DEC8 + Operand8.DEC8);
                }

                UpdateP(PSW.HB.DEC8);
                UpdateS(PSW.HB.DEC8);
                UpdateZ(PSW.HB.DEC8);

                PC.INX();
            }
            else if (BitCombination(Opcode[7], Opcode[6], Opcode[5], Opcode[4], Opcode[3], Opcode[2], Opcode[1], Opcode[0]) == "11001110")  //ACI 8bitdata
            {
                PC.INX();

                Operand8.DEC8 = m[PC.DEC16].DEC8;

                byte i;
                if (PSW.LB[0] == true)
                {
                    i = 1;
                }
                else
                {
                    i = 0;
                }

                if ((PSW.HB.GetLowerNibble() + Operand8.GetLowerNibble() + i) > 15)
                {
                    PSW.LB[4] = true;
                }
                else
                {
                    PSW.LB[4] = false;
                }

                if ((PSW.HB.DEC8 + Operand8.DEC8 + i) > 255)
                {
                    PSW.LB[0]   = true;
                    PSW.HB.DEC8 = (byte)(PSW.HB.DEC8 + Operand8.DEC8 + i - 256);
                }
                else
                {
                    PSW.LB[0]   = false;
                    PSW.HB.DEC8 = (byte)(PSW.HB.DEC8 + Operand8.DEC8 + i);
                }

                UpdateP(PSW.HB.DEC8);
                UpdateS(PSW.HB.DEC8);
                UpdateZ(PSW.HB.DEC8);

                PC.INX();
            }
            else if (BitCombination(Opcode[7], Opcode[6], Opcode[2], Opcode[1], Opcode[0]) == "00100")  //INR R
            {
                Rs.DEC8 = Get8BitRegisterValue(Opcode[5], Opcode[4], Opcode[3]);

                if (Rs.GetLowerNibble() == 15)
                {
                    PSW.LB[4] = true;
                }
                else
                {
                    PSW.LB[4] = false;
                }

                if (Rs.DEC8 == 255)
                {
                    Rs.DEC8 = (byte)(0 + 1);
                }
                else
                {
                    Rs.DEC8 = (byte)(Rs.DEC8 + 1);
                }

                Set8BitRegisterValue(Rs.DEC8, Opcode[5], Opcode[4], Opcode[3]);
                UpdateP(Rs.DEC8);
                UpdateS(Rs.DEC8);
                UpdateZ(Rs.DEC8);

                PC.INX();
            }
            else if (BitCombination(Opcode[7], Opcode[6], Opcode[5], Opcode[4], Opcode[3]) == "10010")  //SUB R
            {
                Rs.DEC8 = Get8BitRegisterValue(Opcode[2], Opcode[1], Opcode[0]);

                Rs.DEC8 = Rs.Get2sComplement();

                //In 2's complement addition, complement both CY and AC. Here, it is done directly in if conditional
                //by inverting true and false.

                if ((PSW.HB.GetLowerNibble() + Rs.GetLowerNibble()) > 15)
                {
                    PSW.LB[4] = true;
                }
                else
                {
                    PSW.LB[4] = false;
                }

                if ((PSW.HB.DEC8 + Rs.DEC8) > 255)
                {
                    PSW.LB[0]   = false;
                    PSW.HB.DEC8 = (byte)(PSW.HB.DEC8 + Rs.DEC8 - 256);
                }
                else
                {
                    PSW.LB[0]   = true;
                    PSW.HB.DEC8 = (byte)(PSW.HB.DEC8 + Rs.DEC8);
                }

                UpdateP(PSW.HB.DEC8);
                UpdateS(PSW.HB.DEC8);
                UpdateZ(PSW.HB.DEC8);

                PC.INX();
            }
            else if (BitCombination(Opcode[7], Opcode[6], Opcode[5], Opcode[4], Opcode[3]) == "10011")  //SBB R
            {
                Rs.DEC8 = Get8BitRegisterValue(Opcode[2], Opcode[1], Opcode[0]);

                if (PSW.LB[0] == true)
                {
                    if (Rs.DEC8 == 255)
                    {
                        Rs.DEC8 = 0;
                    }
                    else
                    {
                        Rs.DEC8 = (byte)(Rs.DEC8 + 1);
                    }
                }

                Rs.DEC8 = Rs.Get2sComplement();

                if ((PSW.HB.GetLowerNibble() + Rs.GetLowerNibble()) > 15)
                {
                    PSW.LB[4] = true;
                }
                else
                {
                    PSW.LB[4] = false;
                }

                if ((PSW.HB.DEC8 + Rs.DEC8) > 255)
                {
                    PSW.LB[0]   = false;
                    PSW.HB.DEC8 = (byte)(PSW.HB.DEC8 + Rs.DEC8 - 256);
                }
                else
                {
                    PSW.LB[0]   = true;
                    PSW.HB.DEC8 = (byte)(PSW.HB.DEC8 + Rs.DEC8);
                }

                UpdateP(PSW.HB.DEC8);
                UpdateS(PSW.HB.DEC8);
                UpdateZ(PSW.HB.DEC8);

                PC.INX();
            }
            else if (BitCombination(Opcode[7], Opcode[6], Opcode[5], Opcode[4], Opcode[3], Opcode[2], Opcode[1], Opcode[0]) == "11010110")  //SUI 8bitData
            {
                PC.INX();

                Operand8.DEC8 = m[PC.DEC16].DEC8;

                Operand8.DEC8 = Operand8.Get2sComplement();

                if ((PSW.HB.GetLowerNibble() + Operand8.GetLowerNibble()) > 15)
                {
                    PSW.LB[4] = true;
                }
                else
                {
                    PSW.LB[4] = false;
                }

                if ((PSW.HB.DEC8 + Operand8.DEC8) > 255)
                {
                    PSW.LB[0]   = false;
                    PSW.HB.DEC8 = (byte)(PSW.HB.DEC8 + Operand8.DEC8 - 256);
                }
                else
                {
                    PSW.LB[0]   = true;
                    PSW.HB.DEC8 = (byte)(PSW.HB.DEC8 + Operand8.DEC8);
                }

                UpdateP(PSW.HB.DEC8);
                UpdateS(PSW.HB.DEC8);
                UpdateZ(PSW.HB.DEC8);

                PC.INX();
            }
            else if (BitCombination(Opcode[7], Opcode[6], Opcode[5], Opcode[4], Opcode[3], Opcode[2], Opcode[1], Opcode[0]) == "11011110")  //SBI 8BitDAta
            {
                PC.INX();

                Operand8.DEC8 = m[PC.DEC16].DEC8;

                if (PSW.LB[0] == true)
                {
                    if (Operand8.DEC8 == 255)
                    {
                        Operand8.DEC8 = 0;
                    }
                    else
                    {
                        Operand8.DEC8 = (byte)(Operand8.DEC8 + 1);
                    }
                }

                Operand8.DEC8 = Operand8.Get2sComplement();

                if ((PSW.HB.GetLowerNibble() + Operand8.GetLowerNibble()) > 15)
                {
                    PSW.LB[4] = true;
                }
                else
                {
                    PSW.LB[4] = false;
                }

                if ((PSW.HB.DEC8 + Operand8.DEC8) > 255)
                {
                    PSW.LB[0]   = false;
                    PSW.HB.DEC8 = (byte)(PSW.HB.DEC8 + Operand8.DEC8 - 256);
                }
                else
                {
                    PSW.LB[0]   = true;
                    PSW.HB.DEC8 = (byte)(PSW.HB.DEC8 + Operand8.DEC8);
                }

                UpdateP(PSW.HB.DEC8);
                UpdateS(PSW.HB.DEC8);
                UpdateZ(PSW.HB.DEC8);

                PC.INX();
            }
            else if (BitCombination(Opcode[7], Opcode[6], Opcode[2], Opcode[1], Opcode[0]) == "00101")  //DCR R
            {
                /*Rs.DEC8 = Get8BitRegisterValue(Opcode[5], Opcode[4], Opcode[3]);
                 *
                 * Rs.DEC8 = Rs.Get2sComplement();
                 *
                 * if (Rs.GetLowerNibble() == 15)
                 *  PSW.LB[4] = true;
                 * else
                 *  PSW.LB[4] = false;
                 *
                 * if (Rs.DEC8 == 255)
                 * {
                 *  Rs.DEC8 = (byte)(0 + 1);
                 * }
                 * else
                 * {
                 *  Rs.DEC8 = (byte)(Rs.DEC8 + 1);
                 * }
                 *
                 * Set8BitRegisterValue(Rs.DEC8, Opcode[5], Opcode[4], Opcode[3]);
                 * UpdateP(Rs.DEC8);
                 * UpdateS(Rs.DEC8);
                 * UpdateZ(Rs.DEC8);
                 *
                 * PC.INX();
                 * */

                Rd.DEC8 = Get8BitRegisterValue(Opcode[5], Opcode[4], Opcode[3]);

                Rs.DEC8 = 1;                            //As 1 is substracted
                Rs.DEC8 = Rs.Get2sComplement();

                //In 2's complement addition, complement both CY and AC. Here, it is done directly in if conditional
                //by inverting true and false.

                if ((Rd.GetLowerNibble() + Rs.GetLowerNibble()) > 15)
                {
                    PSW.LB[4] = true;
                }
                else
                {
                    PSW.LB[4] = false;
                }

                if ((Rd.DEC8 + Rs.DEC8) > 255)
                {
                    PSW.LB[0] = false;
                    Rd.DEC8   = (byte)(Rd.DEC8 + Rs.DEC8 - 256);
                }
                else
                {
                    PSW.LB[0] = true;
                    Rd.DEC8   = (byte)(Rd.DEC8 + Rs.DEC8);
                }

                Set8BitRegisterValue(Rd.DEC8, Opcode[5], Opcode[4], Opcode[3]);

                UpdateP(Rd.DEC8);
                UpdateS(Rd.DEC8);
                UpdateZ(Rd.DEC8);

                PC.INX();
            }
            else if (BitCombination(Opcode[7], Opcode[6], Opcode[3], Opcode[2], Opcode[1], Opcode[0]) == "000011")  //INX Rp
            {
                switch (BitCombination(Opcode[5], Opcode[4]))
                {
                case "00":
                {
                    BC.INX();
                    break;
                }

                case "01":
                {
                    DE.INX();
                    break;
                }

                case "10":
                {
                    HL.INX();
                    break;
                }

                case "11":
                {
                    SP.INX();
                    break;
                }
                }
                PC.INX();
            }
            else if (BitCombination(Opcode[7], Opcode[6], Opcode[3], Opcode[2], Opcode[1], Opcode[0]) == "001011")  //DCX Rp
            {
                switch (BitCombination(Opcode[5], Opcode[4]))
                {
                case "00":
                {
                    BC.DCX();
                    break;
                }

                case "01":
                {
                    DE.DCX();
                    break;
                }

                case "10":
                {
                    HL.DCX();
                    break;
                }

                case "11":
                {
                    SP.DCX();
                    break;
                }
                }
                PC.INX();
            }
            else if (BitCombination(Opcode[7], Opcode[6], Opcode[3], Opcode[2], Opcode[1], Opcode[0]) == "001001")  //DAD Rp,16BitData
            {
                Operand16.DEC16 = Get16BitRegisterValue(true, Opcode[5], Opcode[4]);

                if ((HL.DEC16 + Operand16.DEC16) > 65535)
                {
                    PSW.LB[0] = true;
                    HL.DEC16  = (ushort)(HL.DEC16 + Operand16.DEC16 - 65536);
                }
                else
                {
                    PSW.LB[0] = false;
                    HL.DEC16  = (ushort)(HL.DEC16 + Operand16.DEC16);
                }

                PC.INX();
            }
            else if (BitCombination(Opcode[7], Opcode[6], Opcode[5], Opcode[4], Opcode[3], Opcode[2], Opcode[1], Opcode[0]) == "00100111")  //DAA
            {
                if ((PSW.HB.GetLowerNibble() > 9) || (PSW.LB[4] == true))
                {
                    //Add 6 to lower nibble
                    if ((PSW.HB.GetLowerNibble() + 6) > 15)
                    {
                        PSW.LB[4]   = true;
                        PSW.HB.DEC8 = (byte)(PSW.HB.DEC8 + 6 - 16); //6 is added, 16 is sub to neutralize overflow out of nibble
                    }
                    else
                    {
                        PSW.LB[4]   = false;
                        PSW.HB.DEC8 = (byte)(PSW.HB.DEC8 + 6);
                    }
                }
                else
                {
                    PSW.LB[4] = false;
                }

                byte i;
                if (PSW.LB[4] == true)
                {
                    i = 1;
                }
                else
                {
                    i = 0;
                }
                if ((PSW.HB.GetHigherNibble() > 9) || (PSW.LB[0] == true))
                {
                    bool PreviousCY = PSW.LB[0];

                    //Add 6 to higher nibble
                    if ((PSW.HB.GetHigherNibble() + 6 + i) > 15)
                    {
                        PSW.LB[0]   = true;
                        PSW.HB.DEC8 = (byte)(PSW.HB.DEC8 + (6 + i - 16) * 16);  //i is carry from lower nibble, Multiply by 16 to reach uppaer nibble ( i.e. up by 4 bits 2^4)
                    }
                    else
                    {
                        PSW.LB[0]   = false;
                        PSW.HB.DEC8 = (byte)(PSW.HB.DEC8 + (6 + i) * 16);
                    }

                    if (PreviousCY)                                             //Set CY if it was initially set
                    {
                        PSW.LB[0] = true;
                    }
                }

                UpdateP(PSW.HB.DEC8);
                UpdateS(PSW.HB.DEC8);
                UpdateZ(PSW.HB.DEC8);

                PC.INX();
            }
            //   * LOGICAL GROUP *
            else if (BitCombination(Opcode[7], Opcode[6], Opcode[5], Opcode[4], Opcode[3]) == "10100")  //ANA R
            {
                Rs.DEC8 = Get8BitRegisterValue(Opcode[2], Opcode[1], Opcode[0]);

                PSW.HB.DEC8 = (byte)(PSW.HB.DEC8 & Rs.DEC8);

                PSW.LB[0] = false;
                PSW.LB[4] = true;
                UpdateP(PSW.HB.DEC8);
                UpdateS(PSW.HB.DEC8);
                UpdateZ(PSW.HB.DEC8);

                PC.INX();
            }
            else if (BitCombination(Opcode[7], Opcode[6], Opcode[5], Opcode[4], Opcode[3], Opcode[2], Opcode[1], Opcode[0]) == "11100110")  //ANI 8bitData
            {
                PC.INX();

                Operand8.DEC8 = m[PC.DEC16].DEC8;

                PSW.HB.DEC8 = (byte)(PSW.HB.DEC8 & Operand8.DEC8);

                PSW.LB[0] = false;
                PSW.LB[4] = true;
                UpdateP(PSW.HB.DEC8);
                UpdateS(PSW.HB.DEC8);
                UpdateZ(PSW.HB.DEC8);

                PC.INX();
            }
            else if (BitCombination(Opcode[7], Opcode[6], Opcode[5], Opcode[4], Opcode[3]) == "10110")  //ORA R
            {
                Rs.DEC8 = Get8BitRegisterValue(Opcode[2], Opcode[1], Opcode[0]);

                PSW.HB.DEC8 = (byte)(PSW.HB.DEC8 | Rs.DEC8);

                PSW.LB[0] = false;
                PSW.LB[4] = false;
                UpdateP(PSW.HB.DEC8);
                UpdateS(PSW.HB.DEC8);
                UpdateZ(PSW.HB.DEC8);

                PC.INX();
            }
            else if (BitCombination(Opcode[7], Opcode[6], Opcode[5], Opcode[4], Opcode[3], Opcode[2], Opcode[1], Opcode[0]) == "11110110")  //ORI 8bitData
            {
                PC.INX();

                Operand8.DEC8 = m[PC.DEC16].DEC8;

                PSW.HB.DEC8 = (byte)(PSW.HB.DEC8 | Operand8.DEC8);

                PSW.LB[0] = false;
                PSW.LB[4] = false;
                UpdateP(PSW.HB.DEC8);
                UpdateS(PSW.HB.DEC8);
                UpdateZ(PSW.HB.DEC8);

                PC.INX();
            }
            else if (BitCombination(Opcode[7], Opcode[6], Opcode[5], Opcode[4], Opcode[3]) == "10101")  //XRA R
            {
                Rs.DEC8 = Get8BitRegisterValue(Opcode[2], Opcode[1], Opcode[0]);

                PSW.HB.DEC8 = (byte)(PSW.HB.DEC8 ^ Rs.DEC8);

                PSW.LB[0] = false;
                PSW.LB[4] = false;
                UpdateP(PSW.HB.DEC8);
                UpdateS(PSW.HB.DEC8);
                UpdateZ(PSW.HB.DEC8);

                PC.INX();
            }
            else if (BitCombination(Opcode[7], Opcode[6], Opcode[5], Opcode[4], Opcode[3], Opcode[2], Opcode[1], Opcode[0]) == "11101110")  //XRI 8bitData
            {
                PC.INX();

                Operand8.DEC8 = m[PC.DEC16].DEC8;

                PSW.HB.DEC8 = (byte)(PSW.HB.DEC8 ^ Operand8.DEC8);

                PSW.LB[0] = false;
                PSW.LB[4] = false;
                UpdateP(PSW.HB.DEC8);
                UpdateS(PSW.HB.DEC8);
                UpdateZ(PSW.HB.DEC8);

                PC.INX();
            }
            else if (BitCombination(Opcode[7], Opcode[6], Opcode[5], Opcode[4], Opcode[3], Opcode[2], Opcode[1], Opcode[0]) == "00101111")  //CMA
            {
                PSW.HB.DEC8 = (byte)(~PSW.HB.DEC8);

                PC.INX();
            }
            else if (BitCombination(Opcode[7], Opcode[6], Opcode[5], Opcode[4], Opcode[3], Opcode[2], Opcode[1], Opcode[0]) == "00111111")  //CMC
            {
                PSW.LB[0] = !PSW.LB[0];

                PC.INX();
            }
            else if (BitCombination(Opcode[7], Opcode[6], Opcode[5], Opcode[4], Opcode[3], Opcode[2], Opcode[1], Opcode[0]) == "00110111")  //STC
            {
                PSW.LB[0] = true;

                PC.INX();
            }
            else if (BitCombination(Opcode[7], Opcode[6], Opcode[5], Opcode[4], Opcode[3]) == "10111")  //CMP R
            {
                Operand8.DEC8 = PSW.HB.DEC8;

                Rs.DEC8 = Get8BitRegisterValue(Opcode[2], Opcode[1], Opcode[0]);
                Rs.DEC8 = Rs.Get2sComplement();

                if ((Operand8.GetLowerNibble() + Rs.GetLowerNibble()) > 15)
                {
                    PSW.LB[4] = true;
                }
                else
                {
                    PSW.LB[4] = false;
                }

                if ((Operand8.DEC8 + Rs.DEC8) > 255)
                {
                    PSW.LB[0]     = false;
                    Operand8.DEC8 = (byte)(Operand8.DEC8 + Rs.DEC8 - 256);
                }
                else
                {
                    PSW.LB[0]     = true;
                    Operand8.DEC8 = (byte)(Operand8.DEC8 + Rs.DEC8);
                }
                UpdateP(Operand8.DEC8);
                UpdateS(Operand8.DEC8);
                UpdateZ(Operand8.DEC8);

                PC.INX();
            }
            else if (BitCombination(Opcode[7], Opcode[6], Opcode[5], Opcode[4], Opcode[3]) == "10111")  //CPI 8bitData
            {
                Operand8.DEC8 = PSW.HB.DEC8;

                PC.INX();

                Rs.DEC8 = m[PC.DEC16].DEC8;
                Rs.DEC8 = Rs.Get2sComplement();

                if ((Operand8.GetLowerNibble() + Rs.GetLowerNibble()) > 15)
                {
                    PSW.LB[4] = true;
                }
                else
                {
                    PSW.LB[4] = false;
                }

                if ((Operand8.DEC8 + Rs.DEC8) > 255)
                {
                    PSW.LB[0]     = false;
                    Operand8.DEC8 = (byte)(Operand8.DEC8 + Rs.DEC8 - 256);
                }
                else
                {
                    PSW.LB[0]     = true;
                    Operand8.DEC8 = (byte)(Operand8.DEC8 + Rs.DEC8);
                }
                UpdateP(Operand8.DEC8);
                UpdateS(Operand8.DEC8);
                UpdateZ(Operand8.DEC8);

                PC.INX();
            }
            else if (BitCombination(Opcode[7], Opcode[6], Opcode[5], Opcode[4], Opcode[3], Opcode[2], Opcode[1], Opcode[0]) == "00000111")  //RLC
            {
                bool D7 = PSW.HB[7];
                PSW.HB.DEC8 = (byte)(PSW.HB.DEC8 << 1);
                PSW.HB[0]   = D7;
                PSW.LB[0]   = D7;

                PC.INX();
            }
            else if (BitCombination(Opcode[7], Opcode[6], Opcode[5], Opcode[4], Opcode[3], Opcode[2], Opcode[1], Opcode[0]) == "00001111")  //RRC
            {
                bool D0 = PSW.HB[0];
                PSW.HB.DEC8 = (byte)(PSW.HB.DEC8 >> 1);
                PSW.HB[7]   = D0;
                PSW.LB[0]   = D0;

                PC.INX();
            }
            else if (BitCombination(Opcode[7], Opcode[6], Opcode[5], Opcode[4], Opcode[3], Opcode[2], Opcode[1], Opcode[0]) == "00010111")  //RAL
            {
                bool D7 = PSW.HB[7];
                PSW.HB.DEC8 = (byte)(PSW.HB.DEC8 << 1);
                PSW.HB[0]   = PSW.LB[0];
                PSW.LB[0]   = D7;

                PC.INX();
            }
            else if (BitCombination(Opcode[7], Opcode[6], Opcode[5], Opcode[4], Opcode[3], Opcode[2], Opcode[1], Opcode[0]) == "00011111")  //RAR
            {
                bool D0 = PSW.HB[0];
                PSW.HB.DEC8 = (byte)(PSW.HB.DEC8 >> 1);
                PSW.HB[7]   = PSW.LB[0];
                PSW.LB[0]   = D0;

                PC.INX();
            }
            //  * STACK AND MACHINE CONTROL GROUP   *
            else if (BitCombination(Opcode[7], Opcode[6], Opcode[3], Opcode[2], Opcode[1], Opcode[0]) == "110101")  //PUSH Rp
            {
                //FOR Push/Pop and in Branching only , IsSP = false i.e. return PC
                Operand16.DEC16 = Get16BitRegisterValue(false, Opcode[5], Opcode[4]);

                SP.DCX();
                m[SP.DEC16].DEC8 = Operand16.HB.DEC8;

                SP.DCX();
                m[SP.DEC16].DEC8 = Operand16.LB.DEC8;

                PC.INX();
            }
            else if (BitCombination(Opcode[7], Opcode[6], Opcode[3], Opcode[2], Opcode[1], Opcode[0]) == "110001")  //POP Rp
            {
                Operand16.LB.DEC8 = m[SP.DEC16].DEC8;
                SP.INX();

                Operand16.HB.DEC8 = m[SP.DEC16].DEC8;
                SP.INX();

                Set16BitRegisterValue(false, Operand16.DEC16, Opcode[5], Opcode[4]);

                PC.INX();
            }
            else if (BitCombination(Opcode[7], Opcode[6], Opcode[5], Opcode[4], Opcode[3], Opcode[2], Opcode[1], Opcode[0]) == "11111001")  //SPHL
            {
                SP.DEC16 = HL.DEC16;

                PC.INX();
            }
            else if (BitCombination(Opcode[7], Opcode[6], Opcode[5], Opcode[4], Opcode[3], Opcode[2], Opcode[1], Opcode[0]) == "11100011")  //XTHL
            {
                Operand16.DEC16 = HL.DEC16;

                HL.LB.DEC8       = m[SP.DEC16].DEC8;
                m[SP.DEC16].DEC8 = Operand16.LB.DEC8;

                if (SP.DEC16 == 255)    //Check for overflow
                {
                    HL.HB.DEC8 = m[0].DEC8;
                    m[0].DEC8  = Operand16.HB.DEC8;
                }
                else
                {
                    HL.HB.DEC8           = m[SP.DEC16 + 1].DEC8;
                    m[SP.DEC16 + 1].DEC8 = Operand16.HB.DEC8;
                }

                PC.INX();
            }
            else if (Opcode.DEC8 == 0)  //NOP
            {
                PC.INX();
            }
            else if (Opcode.DEC8 == 251)   //EI
            {
                changeInte   = true;
                changeInteTo = true;

                PC.INX();
            }
            else if (Opcode.DEC8 == 251)   //DI
            {
                changeInte   = true;
                changeInteTo = false;

                PC.INX();
            }
            else if (Opcode.DEC8 == 32)  //RIM
            {
                //Read sid and output to d7 bit of accumulator
                if (rbSid0.IsChecked == true)
                {
                    PC.HB[7] = false;
                }
                else
                {
                    PC.HB[7] = true;
                }

                //No logic for interrupts pending in simulator

                //Read inte
                if (inte == true)
                {
                    PC.HB[3] = true;
                }
                else
                {
                    PC.HB[3] = false;
                }

                //Reads masks
                if (interrupt[2] == true)   //M7.5
                {
                    PC.HB[2] = true;
                }
                else
                {
                    PC.HB[2] = false;
                }

                if (interrupt[1] == true)   //M6.5
                {
                    PC.HB[1] = true;
                }
                else
                {
                    PC.HB[1] = false;
                }

                if (interrupt[0] == true)   //M5.5
                {
                    PC.HB[0] = true;
                }
                else
                {
                    PC.HB[0] = false;
                }

                PC.INX();
                UpdateInterrupt();
            }
            else if (Opcode.DEC8 == 48)  //SIM
            {
                //Set sod=1 if sde=1 else sod=0
                if (PC.HB[6] == true)
                {
                    if (PC.HB[7] == true)
                    {
                        tbSod.Text = "1";
                    }
                    else
                    {
                        tbSod.Text = "0";
                    }
                }

                if (PC.HB[4] == true)   //Resets r7.5 f/f, else has no effect
                {
                    r75 = false;
                }

                if (PC.HB[3] == true)     //MSE
                {
                    if (PC.HB[2] == true) //M'7.5
                    {
                        interrupt[2] = true;
                    }
                    else
                    {
                        interrupt[2] = false;
                    }

                    if (PC.HB[1] == true)   //M'6.5
                    {
                        interrupt[1] = true;
                    }
                    else
                    {
                        interrupt[1] = false;
                    }

                    if (PC.HB[0] == true)   //M'5.5
                    {
                        interrupt[0] = true;
                    }
                    else
                    {
                        interrupt[0] = false;
                    }
                }

                PC.INX();
                UpdateInterrupt();
            }
            //  * BRANCH GROUP  *
            //In branch group, take care of whether to execute PC.INX() or not at end.
            else if (BitCombination(Opcode[7], Opcode[6], Opcode[5], Opcode[4], Opcode[3], Opcode[2], Opcode[1], Opcode[0]) == "11101001")  //PCHL
            {
                PC.DEC16 = HL.DEC16;
            }
            else if (Opcode.DEC8 == 195)  //JMP
            {
                PC.INX();
                Operand16.LB.DEC8 = m[PC.DEC16].DEC8;

                PC.INX();
                Operand16.HB.DEC8 = m[PC.DEC16].DEC8;

                PC.DEC16 = Operand16.DEC16;
            }
            else if (BitCombination(Opcode[7], Opcode[6], Opcode[2], Opcode[1], Opcode[0]) == "11010")  //Conditional Jump
            {
                if (CheckCondition(Opcode[5], Opcode[4], Opcode[3]) == true)
                {
                    PC.INX();
                    Operand16.LB.DEC8 = m[PC.DEC16].DEC8;

                    PC.INX();
                    Operand16.HB.DEC8 = m[PC.DEC16].DEC8;

                    PC.DEC16 = Operand16.DEC16;
                }
                else
                {
                    PC.INX();
                    PC.INX();
                    PC.INX();
                }
            }
            else if (Opcode.DEC8 == 205)  //CALL
            {
                //Storing address to be branched in temp register Operand16
                PC.INX();
                Operand16.LB.DEC8 = m[PC.DEC16].DEC8;

                PC.INX();
                Operand16.HB.DEC8 = m[PC.DEC16].DEC8;

                PC.INX();

                //Push contents of PC onto stack
                SP.DCX();
                m[SP.DEC16].DEC8 = PC.HB.DEC8;

                SP.DCX();
                m[SP.DEC16].DEC8 = PC.LB.DEC8;

                //Branch
                PC.DEC16 = Operand16.DEC16;
            }
            else if (BitCombination(Opcode[7], Opcode[6], Opcode[2], Opcode[1], Opcode[0]) == "11100")  //Conditional CALL
            {
                if (CheckCondition(Opcode[5], Opcode[4], Opcode[3]) == true)
                {
                    //Storing address to be branched in temp register Operand16
                    PC.INX();
                    Operand16.LB.DEC8 = m[PC.DEC16].DEC8;

                    PC.INX();
                    Operand16.HB.DEC8 = m[PC.DEC16].DEC8;

                    PC.INX();

                    //Push contents of PC onto stack
                    SP.DCX();
                    m[SP.DEC16].DEC8 = PC.HB.DEC8;

                    SP.DCX();
                    m[SP.DEC16].DEC8 = PC.LB.DEC8;

                    //Branch
                    PC.DEC16 = Operand16.DEC16;
                }
                else
                {
                    PC.INX();
                    PC.INX();
                    PC.INX();
                }
            }
            else if (Opcode.DEC8 == 201)  //RET
            {
                //Pop content from stack to temp RegisterPair Operand16
                Operand16.LB.DEC8 = m[SP.DEC16].DEC8;
                SP.INX();

                Operand16.HB.DEC8 = m[SP.DEC16].DEC8;
                SP.INX();

                //Branch
                PC.DEC16 = Operand16.DEC16;
            }
            else if (BitCombination(Opcode[7], Opcode[6], Opcode[2], Opcode[1], Opcode[0]) == "11000")  //Conditional Return
            {
                if (CheckCondition(Opcode[5], Opcode[4], Opcode[3]) == true)
                {
                    Operand16.LB.DEC8 = m[SP.DEC16].DEC8;
                    SP.INX();

                    Operand16.HB.DEC8 = m[SP.DEC16].DEC8;
                    SP.INX();

                    //Branch
                    PC.DEC16 = Operand16.DEC16;
                }
                else
                {
                    PC.INX();
                }
            }
            else if (BitCombination(Opcode[7], Opcode[6], Opcode[2], Opcode[1], Opcode[0]) == "11111")  //RST N
            {
                PC.INX();

                //Push contents of PC onto stack
                SP.DCX();
                m[SP.DEC16].DEC8 = PC.HB.DEC8;

                SP.DCX();
                m[SP.DEC16].DEC8 = PC.LB.DEC8;

                //Branch
                switch (BitCombination(Opcode[5], Opcode[4], Opcode[3]))
                {
                case "000":
                {
                    PC.DEC16 = 0;
                    break;
                }

                case "001":
                {
                    PC.DEC16 = 8;
                    break;
                }

                case "010":
                {
                    PC.DEC16 = 16;
                    break;
                }

                case "011":
                {
                    PC.DEC16 = 24;
                    break;
                }

                case "100":
                {
                    PC.DEC16 = 32;
                    break;
                }

                case "101":
                {
                    PC.DEC16 = 40;
                    break;
                }

                case "110":
                {
                    PC.DEC16 = 48;
                    break;
                }

                case "111":
                {
                    PC.DEC16 = 56;
                    break;
                }
                }
            }
            else
            {
                //Unrecognised Instructions
                PC.INX();
            }

            RefreshMIO(false);     //Nofocus, as it will cause Stop button never to gain focus
            UpdateAll();
            //Rucurse in Fast Mode but in idle priority
            if (rbFast.IsChecked == true)
            {
                bStep.IsEnabled = false;
                if (IsStopped == false)
                {
                    bStart.Dispatcher.BeginInvoke(DispatcherPriority.SystemIdle, new ExecuteStepDelegate(ExecuteStep));
                }
            }
        }
Beispiel #25
0
            private void gen11_12()
            {
                double part1, part2, part3, part4, part5;

                part1     = r.Next(1, 8);
                part2     = r.Next(1, 10 - (int)part1);
                part3     = 10 - part1 - part2;
                part4     = r.Next(0, (int)part1) / 10d;
                part1     = Math.Abs(part1 / 10d - part4);
                part5     = r.Next(0, (int)part2) / 10d;
                part2     = Math.Abs(part2 / 10d - part5);
                part3    /= 10d;
                paragraph = document.InsertParagraph();
                paragraph.AppendLine("11.  ").Font(font).FontSize(12).Bold().Alignment = Alignment.left;
                paragraph.Append("Случайная величина X имеет распределения вероятностей, представленное таблицей:").Font(font).FontSize(12);
                Table table = document.AddTable(2, 6);

                table.Alignment = Alignment.center;
                table.SetColumnWidth(0, 40);
                table.SetColumnWidth(1, 40);
                table.SetColumnWidth(2, 40);
                table.SetColumnWidth(3, 40);
                table.SetColumnWidth(4, 40);
                table.SetColumnWidth(5, 40);
                table.Rows[0].Cells[0].Paragraphs[0].Append("X").Alignment              = Alignment.center;
                table.Rows[1].Cells[0].Paragraphs[0].Append("P(x)").Alignment           = Alignment.center;
                table.Rows[0].Cells[1].Paragraphs[0].Append("-1").Alignment             = Alignment.center;
                table.Rows[0].Cells[2].Paragraphs[0].Append("0").Alignment              = Alignment.center;
                table.Rows[0].Cells[3].Paragraphs[0].Append("1").Alignment              = Alignment.center;
                table.Rows[0].Cells[4].Paragraphs[0].Append("2").Alignment              = Alignment.center;
                table.Rows[0].Cells[5].Paragraphs[0].Append("3").Alignment              = Alignment.center;
                table.Rows[1].Cells[1].Paragraphs[0].Append(part1.ToString()).Alignment = Alignment.center;
                table.Rows[1].Cells[2].Paragraphs[0].Append(part2.ToString()).Alignment = Alignment.center;
                table.Rows[1].Cells[3].Paragraphs[0].Append(part3.ToString()).Alignment = Alignment.center;
                table.Rows[1].Cells[4].Paragraphs[0].Append(part4.ToString()).Alignment = Alignment.center;
                table.Rows[1].Cells[5].Paragraphs[0].Append(part5.ToString()).Alignment = Alignment.center;

                paragraph = document.InsertParagraph();
                paragraph.InsertTableBeforeSelf(table);
                paragraph.Append("Построить многоугольник распределения и найти функцию распределения F(x).").Font(font).FontSize(12);



                string resultf = "p(х)=0, при x≤-1\n      p(х)=" + part1.ToString() + ", при -1<x≤0\n" +
                                 "      p(х)=" + (part1 + part2).ToString() + ", при 0<x≤1\n" +
                                 "      p(х)=" + (part1 + part2 + part3).ToString() + ", при 1<x≤2\n" +
                                 "      p(х)=" + (part1 + part2 + part3 + part4).ToString() + ", при 2<x≤3\n" +
                                 "      p(х)=" + (part1 + part2 + part3 + part4 + part5).ToString() + ", при x>3";

                allresult[variantIterator] += "\n11. " + resultf + ";";


                paragraph = document.InsertParagraph();
                paragraph.AppendLine("12.  ").Font(font).FontSize(12).Bold().Alignment = Alignment.left;
                paragraph.Append("Найти М(X), D(X), σ(X) случайной величины X примера 11.").Font(font).FontSize(12);
                double ME, DE, q;

                ME = -1 * part1 + 0 * part2 + 1 * part3 + 2 * part4 + 3 * part5;
                DE = 1 * part1 + 0 * part2 + 1 * part3 + 4 * part4 + 9 * part5 - ME * ME;
                q  = Math.Sqrt(DE);

                allresult[variantIterator] += "\n12. М(X)=" + doubleNormalize(ME.ToString()) + "\n      D(X)=" + doubleNormalize(DE.ToString()) + "\n      σ(X)= " + doubleNormalize(q.ToString()) + "; ";
            }
        public void TestWriteReadValuesAndUpdatePositionVelocity()
        {
            var writer = new BitStream(2048);
            var src = new DE();
            _dynamicEntityFactoryBase.Write(writer, src);
            var buffer = writer.GetBuffer();

            var reader = new BitStream(buffer);
            var dest = (DE)_dynamicEntityFactoryBase.Read(reader);

            Assert.AreEqual(src.Position, dest.Position);
            Assert.AreEqual(src.Size, dest.Size);
            Assert.AreEqual(src.Velocity, dest.Velocity);
            Assert.AreEqual(src.Weight, dest.Weight);
            Assert.AreEqual(src.MapEntityIndex, dest.MapEntityIndex);
            Assert.AreEqual(src.Center, dest.Center);

            Assert.AreEqual(src.A, dest.A);
            Assert.AreEqual(src.B, dest.B);
            Assert.AreEqual(src.C, dest.C);
            Assert.AreEqual(src.D, dest.D);
            Assert.AreEqual(src.E, dest.E);
            Assert.AreEqual(src.F, dest.F);
            Assert.AreEqual(src.G, dest.G);
            Assert.AreEqual(src.H, dest.H);
            Assert.AreEqual(src.I, dest.I);
            Assert.AreEqual(src.J, dest.J);
            Assert.AreEqual(src.K, dest.K);
            Assert.AreEqual(src.L, dest.L);
            Assert.AreEqual(src.M, dest.M);
            Assert.AreEqual(src.N, dest.N);
            Assert.AreEqual(src.O, dest.O);
            Assert.AreEqual(src.P, dest.P);
            Assert.AreEqual(src.Q, dest.Q);
            Assert.AreEqual(src.R, dest.R);

            src.Position = new Vector2(10981, -123);
            src.SetVelocity(new Vector2(0.114f, 10.181f));

            writer = new BitStream(2048);
            src.SerializePositionAndVelocity(writer, 0);

            buffer = writer.GetBuffer();

            reader = new BitStream(buffer);
            dest.DeserializePositionAndVelocity(reader);

            Assert.AreEqual(src.Position, dest.Position);
            Assert.AreEqual(src.Size, dest.Size);
            Assert.AreEqual(src.Velocity, dest.Velocity);
            Assert.AreEqual(src.Weight, dest.Weight);
            Assert.AreEqual(src.MapEntityIndex, dest.MapEntityIndex);
            Assert.AreEqual(src.Center, dest.Center);

            Assert.AreEqual(src.A, dest.A);
            Assert.AreEqual(src.B, dest.B);
            Assert.AreEqual(src.C, dest.C);
            Assert.AreEqual(src.D, dest.D);
            Assert.AreEqual(src.E, dest.E);
            Assert.AreEqual(src.F, dest.F);
            Assert.AreEqual(src.G, dest.G);
            Assert.AreEqual(src.H, dest.H);
            Assert.AreEqual(src.I, dest.I);
            Assert.AreEqual(src.J, dest.J);
            Assert.AreEqual(src.K, dest.K);
            Assert.AreEqual(src.L, dest.L);
            Assert.AreEqual(src.M, dest.M);
            Assert.AreEqual(src.N, dest.N);
            Assert.AreEqual(src.O, dest.O);
            Assert.AreEqual(src.P, dest.P);
            Assert.AreEqual(src.Q, dest.Q);
            Assert.AreEqual(src.R, dest.R);
        }
        /// <summary>
        /// Validates VAT number
        /// </summary>
        /// <returns>Corrected VAT number in VatNumber object</returns>
        public static VatNumber Validate(string vat, EUCountry euCountry)
        {
            string countryCode = euCountry.ToString().ToUpper();

            vat = vat.ToUpper();

            CountryBase countryBase;

            switch (euCountry)
            {
            case EUCountry.AT:
                countryBase = new AT();
                break;

            case EUCountry.BE:
                countryBase = new BE();
                break;

            case EUCountry.BG:
                countryBase = new BG();
                break;

            case EUCountry.CY:
                countryBase = new CY();
                break;

            case EUCountry.CZ:
                countryBase = new CZ();
                break;

            case EUCountry.DE:
                countryBase = new DE();
                break;

            case EUCountry.DK:
                countryBase = new DK();
                break;

            case EUCountry.EE:
                countryBase = new EE();
                break;

            case EUCountry.EL:
                countryBase = new EL();
                break;

            case EUCountry.ES:
                countryBase = new ES();
                break;

            case EUCountry.FI:
                countryBase = new FI();
                break;

            case EUCountry.FR:
                countryBase = new FR();
                break;

            case EUCountry.GB:
                countryBase = new GB();
                break;

            case EUCountry.HR:
                countryBase = new HR();
                break;

            case EUCountry.HU:
                countryBase = new HU();
                break;

            case EUCountry.IE:
                countryBase = new IE();
                break;

            case EUCountry.IT:
                countryBase = new IT();
                break;

            case EUCountry.LT:
                countryBase = new LT();
                break;

            case EUCountry.LU:
                countryBase = new LU();
                break;

            case EUCountry.LV:
                countryBase = new LV();
                break;

            case EUCountry.MT:
                countryBase = new MT();
                break;

            case EUCountry.NL:
                countryBase = new NL();
                break;

            case EUCountry.PL:
                countryBase = new PL();
                break;

            case EUCountry.PT:
                countryBase = new PT();
                break;

            case EUCountry.RO:
                countryBase = new RO();
                break;

            case EUCountry.SE:
                countryBase = new SE();
                break;

            case EUCountry.SI:
                countryBase = new SI();
                break;

            case EUCountry.SK:
                countryBase = new SK();
                break;

            default:
                throw new InvalidCountryException();
            }

            if (countryBase.StripLetters)
            {
                return(new VatNumber(euCountry, countryBase.Validate(Strip(vat))));
            }

            return(new VatNumber(euCountry, countryBase.Validate(StripNoLetters(vat, countryCode))));
        }
Beispiel #28
0
 private void ldd()
 {
     ldx();
     DE.Dec();
     HL.Dec();
 }
Beispiel #29
0
        public HttpResponseMessage GetYourFriendPlans(Int32 UserID, Int16 Pageindex, Int16 Pagesize)
        {
            try
            {
                var users = (from A in db.UserFriends
                             join B in db.UserGoing on A.Matched_UserID equals B.UserID into AB
                             from B in AB.DefaultIfEmpty()
                             join C in db.TourDate on B.TourDateID equals C.TourDateID into BD
                             from C in BD.DefaultIfEmpty()
                             where A.UserID == UserID && A.Matched_UserID != 0 && B.RecordStatus == "Going" && C.TicketingEventID == null
                             select B.TourDateID).ToList();

                int RemainingRecord = Pagesize;
                var _list           = (from A in db.TourDate
                                       join B in db.Artists on A.ArtistID equals B.ArtistID into AB
                                       from B in AB.DefaultIfEmpty()
                                       join C in db.Venue on A.VenueID equals C.VenueID into AC
                                       from C in AC.DefaultIfEmpty()
                                       where users.Contains(A.TourDateID) && A.Tour_Utcdate > DateTime.Now && A.IsDeleted == false
                                       select new ViewYourFreiendplanlst()
                {
                    TourDateID = A.TourDateID,
                    ArtistID = A.ArtistID,
                    ArtistName = B.ArtistName,
                    ImageURL = B.ImageURL,
                    BannerImage_URL = B.BannerImage_URL,
                    Datetime_Local = A.Datetime_Local.Value,
                    VenueName = C.VenueName,
                    Going = (from G in db.UserFriends
                             join H in db.Users on G.Matched_UserID equals H.UserID into GH
                             from H in GH.DefaultIfEmpty()
                             join I in db.UserGoing on H.UserID equals I.UserID into HI
                             from I in HI.DefaultIfEmpty()
                             where G.UserID == UserID && I.TourDateID == A.TourDateID && H.RecordStatus == "Going"
                             select new ViewFriendPlans()
                    {
                        Email = H.Email,
                        ImageURL = H.ImageURL,
                        ThumbnailURL = H.ThumbnailURL,
                        UserID = H.UserID,
                        UserName = H.UserName
                    }).ToList()
                }).OrderBy(x => x.ArtistID).Skip(Pageindex * Pagesize).Take(Pagesize).ToList();

                RemainingRecord = RemainingRecord - _list.Count;

                var goingList = (from A in db.UserFriends
                                 join B in db.UserGoing on A.Matched_UserID equals B.UserID into AB
                                 from B in AB.DefaultIfEmpty()
                                 where A.UserID == UserID && A.Matched_UserID > 0 &&
                                 B.RecordStatus == "Going"
                                 select new
                {
                    TourDateID = B.TourDateID
                }).Distinct().ToList();

                List <int?> userlist1 = new List <int?>();
                foreach (var item in goingList)
                {
                    userlist1.Add(Convert.ToInt32(item.TourDateID));
                }

                if (RemainingRecord > 0)
                {
                    var list2 = (from A in db.TicketingEventTicketConfirmation
                                 join B in db.TicketingEventsNew on A.EventID equals B.EventID into AB
                                 from B in AB.DefaultIfEmpty()
                                 join C in db.Artists on B.ArtistId equals C.ArtistID into BC
                                 from C in BC.DefaultIfEmpty()
                                 join D in db.Venue on B.VenueName equals D.VenueName into CD
                                 from D in CD.DefaultIfEmpty()
                                 join E in db.TourDate on B.EventID equals E.TicketingEventID into DE
                                 from E in DE.DefaultIfEmpty()
                                 where A.EventID > 0 && userlist1.Contains(A.TourDateID)
                                 select new ViewYourFreiendplanlst()
                    {
                        TourDateID = E.TourDateID,
                        //  EventID = A.EventID,
                        ArtistID = B.ArtistId,
                        ArtistName = C.ArtistName,
                        ImageURL = C.ImageURL,
                        BannerImage_URL = C.BannerImage_URL,
                        //StartDate = B.StartDate,
                        //StartTime = B.StartTime,
                        VenueID = D.VenueID,
                        VenueName = D.VenueName,
                        Datetime_Local = B.StartDate.Value
                    }).Distinct().OrderBy(x => x.ArtistID).Skip(0).Take(RemainingRecord).ToList();


                    foreach (var item in list2)
                    {
                        item.Going = (from G in db.UserFriends
                                      join H in db.Users on G.Matched_UserID equals H.UserID into GH
                                      from H in GH.DefaultIfEmpty()
                                      join I in db.UserGoing on H.UserID equals I.UserID into HI
                                      from I in HI.DefaultIfEmpty()
                                      where G.UserID == UserID && I.TourDateID == item.TourDateID && I.RecordStatus == "Going" && G.Matched_UserID > 0
                                      select new ViewFriendPlans()
                        {
                            Email = H.Email,
                            ImageURL = H.ImageURL,
                            ThumbnailURL = H.ThumbnailURL,
                            UserID = H.UserID,
                            UserName = H.UserName
                        }).Distinct().ToList();
                        item.GoingCount = item.Going.Count();
                        item.Date_Local = item.Datetime_Local.ToString("d");
                    }
                    _list.AddRange(list2);
                }
                return(Request.CreateResponse(HttpStatusCode.OK, JsonResponse.GetResponse(ResponseCode.Success, _list, "FriendPlans")));
            }
            catch (Exception ex)
            {
                return(Request.CreateResponse(HttpStatusCode.OK, JsonResponse.GetResponse(ResponseCode.Info, ex.Message, "FriendPlans")));
            }
        }
Beispiel #30
0
        public void TestWriteReadValuesAndUpdatePositionVelocity()
        {
            var writer = new BitStream(2048);
            var src    = new DE();

            _dynamicEntityFactoryBase.Write(writer, src);
            var buffer = writer.GetBuffer();

            var reader = new BitStream(buffer);
            var dest   = (DE)_dynamicEntityFactoryBase.Read(reader);

            Assert.AreEqual(src.Position, dest.Position);
            Assert.AreEqual(src.Size, dest.Size);
            Assert.AreEqual(src.Velocity, dest.Velocity);
            Assert.AreEqual(src.Weight, dest.Weight);
            Assert.AreEqual(src.MapEntityIndex, dest.MapEntityIndex);
            Assert.AreEqual(src.Center, dest.Center);

            Assert.AreEqual(src.A, dest.A);
            Assert.AreEqual(src.B, dest.B);
            Assert.AreEqual(src.C, dest.C);
            Assert.AreEqual(src.D, dest.D);
            Assert.AreEqual(src.E, dest.E);
            Assert.AreEqual(src.F, dest.F);
            Assert.AreEqual(src.G, dest.G);
            Assert.AreEqual(src.H, dest.H);
            Assert.AreEqual(src.I, dest.I);
            Assert.AreEqual(src.J, dest.J);
            Assert.AreEqual(src.K, dest.K);
            Assert.AreEqual(src.L, dest.L);
            Assert.AreEqual(src.M, dest.M);
            Assert.AreEqual(src.N, dest.N);
            Assert.AreEqual(src.O, dest.O);
            Assert.AreEqual(src.P, dest.P);
            Assert.AreEqual(src.Q, dest.Q);
            Assert.AreEqual(src.R, dest.R);

            src.Position = new Vector2(10981, -123);
            src.SetVelocity(new Vector2(0.114f, 10.181f));

            writer = new BitStream(2048);
            src.SerializePositionAndVelocity(writer, 0);

            buffer = writer.GetBuffer();

            reader = new BitStream(buffer);
            dest.DeserializePositionAndVelocity(reader);

            Assert.AreEqual(src.Position, dest.Position);
            Assert.AreEqual(src.Size, dest.Size);
            Assert.AreEqual(src.Velocity, dest.Velocity);
            Assert.AreEqual(src.Weight, dest.Weight);
            Assert.AreEqual(src.MapEntityIndex, dest.MapEntityIndex);
            Assert.AreEqual(src.Center, dest.Center);

            Assert.AreEqual(src.A, dest.A);
            Assert.AreEqual(src.B, dest.B);
            Assert.AreEqual(src.C, dest.C);
            Assert.AreEqual(src.D, dest.D);
            Assert.AreEqual(src.E, dest.E);
            Assert.AreEqual(src.F, dest.F);
            Assert.AreEqual(src.G, dest.G);
            Assert.AreEqual(src.H, dest.H);
            Assert.AreEqual(src.I, dest.I);
            Assert.AreEqual(src.J, dest.J);
            Assert.AreEqual(src.K, dest.K);
            Assert.AreEqual(src.L, dest.L);
            Assert.AreEqual(src.M, dest.M);
            Assert.AreEqual(src.N, dest.N);
            Assert.AreEqual(src.O, dest.O);
            Assert.AreEqual(src.P, dest.P);
            Assert.AreEqual(src.Q, dest.Q);
            Assert.AreEqual(src.R, dest.R);
        }
        public void TestSkipNonSyncNetworkValues()
        {
            var writer = new BitStream(2048);
            var src = new DE { SkipA = 1, SkipB = 2, SkipC = 3 };
            _dynamicEntityFactoryBase.Write(writer, src);
            var buffer = writer.GetBuffer();

            var reader = new BitStream(buffer);
            var dest = (DE)_dynamicEntityFactoryBase.Read(reader);

            Assert.AreEqual(src.Position, dest.Position);
            Assert.AreEqual(src.Size, dest.Size);
            Assert.AreEqual(src.Velocity, dest.Velocity);
            Assert.AreEqual(src.Weight, dest.Weight);
            Assert.AreEqual(src.MapEntityIndex, dest.MapEntityIndex);
            Assert.AreEqual(src.Center, dest.Center);

            Assert.AreEqual(src.A, dest.A);
            Assert.AreEqual(src.B, dest.B);
            Assert.AreEqual(src.C, dest.C);
            Assert.AreEqual(src.D, dest.D);
            Assert.AreEqual(src.E, dest.E);
            Assert.AreEqual(src.F, dest.F);
            Assert.AreEqual(src.G, dest.G);
            Assert.AreEqual(src.H, dest.H);
            Assert.AreEqual(src.I, dest.I);
            Assert.AreEqual(src.J, dest.J);
            Assert.AreEqual(src.K, dest.K);
            Assert.AreEqual(src.L, dest.L);
            Assert.AreEqual(src.M, dest.M);
            Assert.AreEqual(src.N, dest.N);
            Assert.AreEqual(src.O, dest.O);
            Assert.AreEqual(src.P, dest.P);
            Assert.AreEqual(src.Q, dest.Q);
            Assert.AreEqual(src.R, dest.R);

            Assert.AreNotEqual(src.SkipA, dest.SkipA);
            Assert.AreNotEqual(src.SkipB, dest.SkipB);
            Assert.AreEqual(src.SkipC, dest.SkipC);

            src.A = false;
            src.D = 100;
            src.K = 5123;
            src.N = "asfdoiuweroijsadf";
            src.P = Alignment.Left;
            src.M = new GrhIndex(10091);
            src.L = new Vector2(213, 123);
            src.Q = new Vector3(123, 412, 1931);
            src.R = new Vector4(109, 12, 190, 51);

            writer = new BitStream(2048);
            src.Serialize(writer);

            buffer = writer.GetBuffer();

            reader = new BitStream(buffer);
            dest.Deserialize(reader);

            Assert.AreEqual(src.Position, dest.Position);
            Assert.AreEqual(src.Size, dest.Size);
            Assert.AreEqual(src.Velocity, dest.Velocity);
            Assert.AreEqual(src.Weight, dest.Weight);
            Assert.AreEqual(src.MapEntityIndex, dest.MapEntityIndex);
            Assert.AreEqual(src.Center, dest.Center);

            Assert.AreEqual(src.A, dest.A);
            Assert.AreEqual(src.B, dest.B);
            Assert.AreEqual(src.C, dest.C);
            Assert.AreEqual(src.D, dest.D);
            Assert.AreEqual(src.E, dest.E);
            Assert.AreEqual(src.F, dest.F);
            Assert.AreEqual(src.G, dest.G);
            Assert.AreEqual(src.H, dest.H);
            Assert.AreEqual(src.I, dest.I);
            Assert.AreEqual(src.J, dest.J);
            Assert.AreEqual(src.K, dest.K);
            Assert.AreEqual(src.L, dest.L);
            Assert.AreEqual(src.M, dest.M);
            Assert.AreEqual(src.N, dest.N);
            Assert.AreEqual(src.O, dest.O);
            Assert.AreEqual(src.P, dest.P);
            Assert.AreEqual(src.Q, dest.Q);
            Assert.AreEqual(src.R, dest.R);

            Assert.AreNotEqual(src.SkipA, dest.SkipA);
            Assert.AreNotEqual(src.SkipB, dest.SkipB);
            Assert.AreEqual(src.SkipC, dest.SkipC);
        }
 public void TestWrite()
 {
     var writer = new BitStream(2048);
     var src = new DE();
     _dynamicEntityFactoryBase.Write(writer, src);
 }
Beispiel #33
0
        public void TestWriteReadValuesAndUpdateExtensive()
        {
            var writer = new BitStream(2048);
            var src    = new DE();

            _dynamicEntityFactoryBase.Write(writer, src);
            var buffer = writer.GetBuffer();

            var reader = new BitStream(buffer);
            var dest   = (DE)_dynamicEntityFactoryBase.Read(reader);

            Assert.AreEqual(src.Position, dest.Position);
            Assert.AreEqual(src.Size, dest.Size);
            Assert.AreEqual(src.Velocity, dest.Velocity);
            Assert.AreEqual(src.Weight, dest.Weight);
            Assert.AreEqual(src.MapEntityIndex, dest.MapEntityIndex);
            Assert.AreEqual(src.Center, dest.Center);

            Assert.AreEqual(src.A, dest.A);
            Assert.AreEqual(src.B, dest.B);
            Assert.AreEqual(src.C, dest.C);
            Assert.AreEqual(src.D, dest.D);
            Assert.AreEqual(src.E, dest.E);
            Assert.AreEqual(src.F, dest.F);
            Assert.AreEqual(src.G, dest.G);
            Assert.AreEqual(src.H, dest.H);
            Assert.AreEqual(src.I, dest.I);
            Assert.AreEqual(src.J, dest.J);
            Assert.AreEqual(src.K, dest.K);
            Assert.AreEqual(src.L, dest.L);
            Assert.AreEqual(src.M, dest.M);
            Assert.AreEqual(src.N, dest.N);
            Assert.AreEqual(src.O, dest.O);
            Assert.AreEqual(src.P, dest.P);
            Assert.AreEqual(src.Q, dest.Q);
            Assert.AreEqual(src.R, dest.R);

            src.A = false;
            src.D = 100;
            src.K = 5123;
            src.N = "asfdoiuweroijsadf";
            src.P = Alignment.Left;
            src.M = new GrhIndex(10091);
            src.L = new Vector2(213, 123);

            writer = new BitStream(2048);
            src.Serialize(writer);

            buffer = writer.GetBuffer();

            reader = new BitStream(buffer);
            dest.Deserialize(reader);

            Assert.AreEqual(src.Position, dest.Position);
            Assert.AreEqual(src.Size, dest.Size);
            Assert.AreEqual(src.Velocity, dest.Velocity);
            Assert.AreEqual(src.Weight, dest.Weight);
            Assert.AreEqual(src.MapEntityIndex, dest.MapEntityIndex);
            Assert.AreEqual(src.Center, dest.Center);

            Assert.AreEqual(src.A, dest.A);
            Assert.AreEqual(src.B, dest.B);
            Assert.AreEqual(src.C, dest.C);
            Assert.AreEqual(src.D, dest.D);
            Assert.AreEqual(src.E, dest.E);
            Assert.AreEqual(src.F, dest.F);
            Assert.AreEqual(src.G, dest.G);
            Assert.AreEqual(src.H, dest.H);
            Assert.AreEqual(src.I, dest.I);
            Assert.AreEqual(src.J, dest.J);
            Assert.AreEqual(src.K, dest.K);
            Assert.AreEqual(src.L, dest.L);
            Assert.AreEqual(src.M, dest.M);
            Assert.AreEqual(src.N, dest.N);
            Assert.AreEqual(src.O, dest.O);
            Assert.AreEqual(src.P, dest.P);
            Assert.AreEqual(src.Q, dest.Q);
            Assert.AreEqual(src.R, dest.R);
        }
        public void TestWriteReadManyValuesExtensiveXml()
        {
            const int count = 100;

            var filePath = Path.GetTempFileName();

            try
            {
                var sources = new List<DE>(count);
                using (var writer = XmlValueWriter.Create(filePath, "DynamicEntities"))
                {
                    writer.Write("Count", count);
                    for (var i = 0; i < count; i++)
                    {
                        var src = new DE();
                        sources.Add(src);
                        var key = "Entity" + Parser.Invariant.ToString(i);
                        writer.WriteStartNode(key);
                        _dynamicEntityFactoryBase.Write(writer, src);
                        writer.WriteEndNode(key);
                    }
                }

                var reader = XmlValueReader.CreateFromFile(filePath, "DynamicEntities");
                for (var i = 0; i < count; i++)
                {
                    var key = "Entity" + Parser.Invariant.ToString(i);
                    var r = reader.ReadNode(key);

                    var src = sources[i];
                    var dest = (DE)_dynamicEntityFactoryBase.Read(r);

                    Assert.AreEqual(src.Position, dest.Position);
                    Assert.AreEqual(src.Size, dest.Size);
                    Assert.AreEqual(src.Velocity, dest.Velocity);
                    Assert.AreEqual(src.Weight, dest.Weight);
                    Assert.AreEqual(src.MapEntityIndex, dest.MapEntityIndex);
                    Assert.AreEqual(src.Center, dest.Center);

                    Assert.AreEqual(src.A, dest.A, "Index: " + i);
                    Assert.AreEqual(src.B, dest.B, "Index: " + i);
                    Assert.AreEqual(src.C, dest.C, "Index: " + i);
                    Assert.AreEqual(src.D, dest.D, "Index: " + i);
                    Assert.AreEqual(src.E, dest.E, "Index: " + i);
                    Assert.AreEqual(src.F, dest.F, "Index: " + i);
                    Assert.AreEqual(src.G, dest.G, "Index: " + i);
                    Assert.AreEqual(Math.Round(src.H), Math.Round(dest.H), "Index: " + i);
                    Assert.AreEqual(src.I, dest.I, "Index: " + i);
                    Assert.AreEqual(src.J, dest.J, "Index: " + i);
                    Assert.AreEqual(Math.Round(src.K), Math.Round(dest.K), "Index: " + i);
                    Assert.AreEqual(src.L.Round(), dest.L.Round(), "Index: " + i);
                    Assert.AreEqual(src.M, dest.M, "Index: " + i);
                    Assert.AreEqual(src.N, dest.N, "Index: " + i);
                    Assert.AreEqual(src.O, dest.O, "Index: " + i);
                    Assert.AreEqual(src.P, dest.P, "Index: " + i);
                    Assert.AreEqual(src.Q.Round(), dest.Q.Round(), "Index: " + i);
                    Assert.AreEqual(src.R.Round(), dest.R.Round(), "Index: " + i);
                }
            }
            finally
            {
                if (File.Exists(filePath))
                    File.Delete(filePath);
            }
        }
        public void TestWriteReadValues()
        {
            var writer = new BitStream(1024);
            var src = new DE();
            _dynamicEntityFactoryBase.Write(writer, src);
            var buffer = writer.GetBuffer();

            var reader = new BitStream(buffer);
            var dest = (DE)_dynamicEntityFactoryBase.Read(reader);

            Assert.AreEqual(src.Position, dest.Position);
            Assert.AreEqual(src.Size, dest.Size);
            Assert.AreEqual(src.Velocity, dest.Velocity);
            Assert.AreEqual(src.Weight, dest.Weight);
            Assert.AreEqual(src.MapEntityIndex, dest.MapEntityIndex);
            Assert.AreEqual(src.Center, dest.Center);
        }
Beispiel #36
0
 private void ldi()
 {
     ldx();
     DE.Inc();
     HL.Inc();
 }
        public void TestWriteReadValuesAndUpdateExtensive()
        {
            var writer = new BitStream(2048);
            var src = new DE();
            _dynamicEntityFactoryBase.Write(writer, src);
            var buffer = writer.GetBuffer();

            var reader = new BitStream(buffer);
            var dest = (DE)_dynamicEntityFactoryBase.Read(reader);

            Assert.AreEqual(src.Position, dest.Position);
            Assert.AreEqual(src.Size, dest.Size);
            Assert.AreEqual(src.Velocity, dest.Velocity);
            Assert.AreEqual(src.Weight, dest.Weight);
            Assert.AreEqual(src.MapEntityIndex, dest.MapEntityIndex);
            Assert.AreEqual(src.Center, dest.Center);

            Assert.AreEqual(src.A, dest.A);
            Assert.AreEqual(src.B, dest.B);
            Assert.AreEqual(src.C, dest.C);
            Assert.AreEqual(src.D, dest.D);
            Assert.AreEqual(src.E, dest.E);
            Assert.AreEqual(src.F, dest.F);
            Assert.AreEqual(src.G, dest.G);
            Assert.AreEqual(src.H, dest.H);
            Assert.AreEqual(src.I, dest.I);
            Assert.AreEqual(src.J, dest.J);
            Assert.AreEqual(src.K, dest.K);
            Assert.AreEqual(src.L, dest.L);
            Assert.AreEqual(src.M, dest.M);
            Assert.AreEqual(src.N, dest.N);
            Assert.AreEqual(src.O, dest.O);
            Assert.AreEqual(src.P, dest.P);
            Assert.AreEqual(src.Q, dest.Q);
            Assert.AreEqual(src.R, dest.R);

            src.A = false;
            src.D = 100;
            src.K = 5123;
            src.N = "asfdoiuweroijsadf";
            src.P = Alignment.Left;
            src.M = new GrhIndex(10091);
            src.L = new Vector2(213, 123);

            writer = new BitStream(2048);
            src.Serialize(writer);

            buffer = writer.GetBuffer();

            reader = new BitStream(buffer);
            dest.Deserialize(reader);

            Assert.AreEqual(src.Position, dest.Position);
            Assert.AreEqual(src.Size, dest.Size);
            Assert.AreEqual(src.Velocity, dest.Velocity);
            Assert.AreEqual(src.Weight, dest.Weight);
            Assert.AreEqual(src.MapEntityIndex, dest.MapEntityIndex);
            Assert.AreEqual(src.Center, dest.Center);

            Assert.AreEqual(src.A, dest.A);
            Assert.AreEqual(src.B, dest.B);
            Assert.AreEqual(src.C, dest.C);
            Assert.AreEqual(src.D, dest.D);
            Assert.AreEqual(src.E, dest.E);
            Assert.AreEqual(src.F, dest.F);
            Assert.AreEqual(src.G, dest.G);
            Assert.AreEqual(src.H, dest.H);
            Assert.AreEqual(src.I, dest.I);
            Assert.AreEqual(src.J, dest.J);
            Assert.AreEqual(src.K, dest.K);
            Assert.AreEqual(src.L, dest.L);
            Assert.AreEqual(src.M, dest.M);
            Assert.AreEqual(src.N, dest.N);
            Assert.AreEqual(src.O, dest.O);
            Assert.AreEqual(src.P, dest.P);
            Assert.AreEqual(src.Q, dest.Q);
            Assert.AreEqual(src.R, dest.R);
        }
        public void TestWriteRead()
        {
            var writer = new BitStream(2048);
            var src = new DE();
            _dynamicEntityFactoryBase.Write(writer, src);
            var buffer = writer.GetBuffer();

            var reader = new BitStream(buffer);
            _dynamicEntityFactoryBase.Read(reader);
        }
Beispiel #39
0
 private bool allDefinitives(List <DijkstraElement> VD)
 {
     return(VD.Count(DE => DE.getIsDefinitive()) == VD.Count);
 }