public void CircuitStateEndDefinitionTest() { ProjectTester.InitResources(); CircuitProject project = CircuitProject.Create(null); CircuitButton button = null; CircuitSymbol buttonSymbol = null; Gate led = null; CircuitSymbol ledSymbol = null; project.InTransaction(() => { button = project.CircuitButtonSet.Create("b", false, PinSide.Right); buttonSymbol = project.CircuitSymbolSet.Create(button, project.ProjectSet.Project.LogicalCircuit, 1, 1); led = project.GateSet.Gate(GateType.Led, 1, false); ledSymbol = project.CircuitSymbolSet.Create(led, project.ProjectSet.Project.LogicalCircuit, 5, 1); }); CircuitState target = new CircuitState(3); int buttonResult = target.ReserveState(); FunctionButton functionButton = new FunctionButton(target, new CircuitSymbol[] { buttonSymbol }, buttonResult); FunctionLed functionLed = new FunctionLed(target, new CircuitSymbol[] { ledSymbol }, buttonResult); target.EndDefinition(); Assert.IsTrue(functionButton.Dependent != null && functionButton.Dependent.Length == 1 && functionButton.Dependent[0] == functionLed); Assert.IsTrue(functionLed.Dependent == null); }
public void CircuitProjectSaveLoadTest() { string dir = Path.Combine(this.TestContext.TestRunDirectory, this.TestContext.TestName + DateTime.UtcNow.Ticks, "Some Test Sub Directory"); string file = Path.Combine(dir, "My Test File.CircuitProject"); // save in inexistent folder CircuitProject project1 = CircuitProject.Create(null); project1.InTransaction(() => { LogicalCircuit main = project1.ProjectSet.Project.LogicalCircuit; CircuitButton button = project1.CircuitButtonSet.Create("b", false, PinSide.Right); CircuitSymbol buttonSymbol = project1.CircuitSymbolSet.Create(button, main, 1, 2); Gate led = project1.GateSet.Gate(GateType.Led, 1, false); project1.CircuitSymbolSet.Create(led, main, 6, 2); Wire wire = project1.WireSet.Create(main, new GridPoint(3, 3), new GridPoint(6, 3)); }); Assert.IsTrue(!Directory.Exists(dir)); project1.Save(file); Assert.IsTrue(File.Exists(file)); CircuitProject project2 = CircuitProject.Create(file); Assert.IsTrue(ProjectTester.Equal(project1, project2)); // save in existing folder and existing file. CircuitProject project3 = ProjectTester.Load(this.TestContext, Properties.Resources.Digital_Clock, null); Assert.IsTrue(File.Exists(file)); project3.Save(file); CircuitProject project4 = CircuitProject.Create(file); File.Delete(file); Assert.IsTrue(ProjectTester.Equal(project3, project4)); }
public void XmlLoadReadElementTextTest() { string text = Properties.Resources.XmlLoadReadElementTextTest; XmlDocument xml = new XmlDocument(); xml.LoadXml(text); Assert.AreEqual(@"http://LogicCircuit.net/1.0.0.2/CircuitProject.xsd", xml.DocumentElement.NamespaceURI); CircuitProject circuitProject = ProjectTester.Load(this.TestContext, text, null); Assert.IsNotNull(circuitProject); Assert.AreEqual(1, circuitProject.CircuitButtonSet.Count()); CircuitButton button = circuitProject.CircuitButtonSet.First(); Assert.AreEqual(@"<a>", button.Notation); Assert.AreEqual(@"<a>b</a>", button.Note); Assert.AreEqual(1, circuitProject.CircuitSymbolSet.SelectByCircuit(button).Count()); CircuitSymbol buttonSymbol = circuitProject.CircuitSymbolSet.SelectByCircuit(button).First(); Assert.AreEqual(3, buttonSymbol.X); Assert.AreEqual(8, buttonSymbol.Y); Assert.AreEqual(2, circuitProject.CircuitSymbolSet.Count()); CircuitSymbol ledSymbol = circuitProject.CircuitSymbolSet.First(s => s != buttonSymbol); Assert.IsNotNull(ledSymbol); Assert.AreEqual(9, ledSymbol.X); Assert.AreEqual(8, ledSymbol.Y); Assert.AreEqual(1, circuitProject.WireSet.Count()); Wire wire = circuitProject.WireSet.First(); Assert.IsNotNull(wire); Assert.AreEqual(5, wire.X1); Assert.AreEqual(9, wire.Y1); Assert.AreEqual(9, wire.X2); Assert.AreEqual(9, wire.Y1); }