public void TestGPNode() { //pai: PAI(FILHO,NUMBER) GPSemantica semanticaPai = new GPSemanticaFormula("PAI", 2, 2); GPSemantica semanticaPai2 = new GPSemanticaFormula("PAI2", 2, 3); Assert.IsFalse(semanticaPai.IsTerminal); //filho: TERMINAL GPSemantica semanticaNumber = new GPSemanticaNumber("Numero de 0 a 10", 0, 10000); GPSemantica semanticaFilho = new GPSemanticaFormula("FILHO", 0, 0); //neto: NETO(NUMBER) GPSemantica semanticaNeto = new GPSemanticaFormula("NETO", 1, 2); // GPSemantica semanticaNumber2 = new GPSemantica("NETO"); Assert.IsTrue(semanticaFilho.IsTerminal); GPAbstractNode nodePai = new GPNode(semanticaPai); GPAbstractNode nodePai2 = new GPNode(semanticaPai2); GPAbstractNode nodeFilho = new GPNode(semanticaFilho); GPAbstractNode nodeNeto = new GPNode(semanticaNeto); GPAbstractNode nodeNumber = new GPNodeNumber(semanticaNumber, 10); GPAbstractNode nodeNumber2 = new GPNodeNumber(semanticaNumber, 1050.123f); Assert.IsTrue(nodePai.CanAddNode(nodeFilho)); Assert.IsTrue(nodePai.CanAddNode(nodeNumber)); nodePai.AddNode(nodeFilho); Assert.IsFalse(nodePai.CanAddNode(nodeFilho));//já foi adicionado Assert.IsTrue(nodePai.CanAddNode(nodeNumber)); nodePai.AddNode(nodeNumber); Assert.IsFalse(nodePai.CanAddNode(nodeFilho)); Assert.IsFalse(nodePai.CanAddNode(nodeNumber)); Assert.IsFalse(nodeNumber.CanAddNode(nodeFilho)); Assert.IsFalse(nodeNumber.CanAddNode(nodeNumber)); Assert.IsFalse(nodeFilho.CanAddNode(nodeNumber)); Assert.IsFalse(nodeFilho.CanAddNode(nodeFilho)); Assert.IsFalse(nodeFilho.CanAddNode(nodeNeto)); Assert.IsTrue(nodePai.ToString() == "PAI(FILHO,10)", nodePai.ToString() + "<>" + "PAI(FILHO,10)"); Assert.IsFalse(nodeNeto.CanAddNode(nodeFilho)); Assert.IsTrue(nodePai.ContainsNode(nodeFilho)); Assert.IsFalse(nodePai.ContainsNode(nodeNeto)); nodePai2.AddNode(nodeNeto); Assert.IsTrue(nodePai2.ContainsNode(nodeNeto)); Assert.IsTrue(nodeNeto.nodePai == nodePai2); Assert.IsTrue(nodePai.TransferNode(nodeFilho, nodeNeto)); Assert.IsFalse(nodePai.ContainsNode(nodeFilho)); Assert.IsTrue(nodePai.ContainsNode(nodeNeto)); Assert.IsTrue(nodePai2.ContainsNode(nodeFilho)); Assert.IsTrue(nodeNeto.nodePai == nodePai, nodeNeto.nodePai + "<>" + nodePai); Assert.IsTrue(nodeFilho.nodePai == nodePai2, nodeFilho.nodePai.ToString()); nodeNeto.AddNode(nodeNumber2); Assert.IsTrue(nodePai.ToString() == "PAI(NETO(1050.123),10)", nodePai.ToString() + "<>" + "PAI(NETO(1050.123),10)"); Assert.IsTrue(nodePai.Size() == 4, nodePai.Size() + "<>" + 4); Assert.IsTrue(nodeNumber.Size() == 1, nodeNumber.Size() + "<>" + 1); Assert.IsTrue(nodePai.SizeLevel() == 3, nodePai.SizeLevel() + "<>" + 3); }