private void InitializeInstanceFields() { startCode = new Startcode(this); de1 = new DE(this); de2 = new DE(this); de3 = new DE(this); }
public void TestWrite() { var writer = new BitStream(2048); var src = new DE(); _dynamicEntityFactoryBase.Write(writer, src); }
/// <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; }
private DijkstraElement sigDefinitivo(List <DijkstraElement> VD) { return(( from DE in VD where !DE.getIsDefinitive() orderby DE.getWeigth() ascending select DE ).First()); }
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); }
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()) + ". "; }
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()) + ";"; }
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; } } } }
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); } }
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(); } } }
// 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(); }
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); }
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); }
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); }
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; }
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(); }
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(""); }
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); }
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); }
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(); }
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); } }
/* 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)); } } }
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)))); }
private void ldd() { ldx(); DE.Dec(); HL.Dec(); }
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"))); } }
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 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); } }
private void ldi() { ldx(); DE.Inc(); HL.Inc(); }
private bool allDefinitives(List <DijkstraElement> VD) { return(VD.Count(DE => DE.getIsDefinitive()) == VD.Count); }