package de.gaalop.testbenchTbaGapp.tba;
import de.gaalop.api.cfg.AssignmentNodeCollector;
import de.gaalop.cfg.AssignmentNode;
import de.gaalop.dfg.Variable;
import de.gaalop.testbenchTbaGapp.graphstorage.GraphStoragePlugin;
import de.gaalop.testbenchTbaGapp.tba.framework.TBATestCase;
import de.gaalop.testbenchTbaGapp.tba.framework.TestDummy;
import de.gaalop.visualizer.zerofinding.RayMethod;
import java.util.Arrays;
import java.util.HashMap;
import java.util.LinkedList;
import org.junit.Test;
import static org.junit.Assert.*;
/**
*
* @author Christian Steinmetz
*/
public class TestAssignmentCopy {
@Test
public void testAssignmentCopy() {
TBATestCase tC = new TBATestCase() {
@Override
public String getCLUScript() {
return
"G = createEllipsoid(2,3,3,2,2,4);\n"+
"H = createCylinder(2,3,0,2);\n"+
":S = (G^H);\n";
}
@Override
public void testOutputs(HashMap<Variable, Double> outputs) {
}
@Override
public HashMap<Variable, Double> getInputValues() {
return new HashMap<Variable, Double>();
}
@Override
public String getAlgebraName() {
return "9d";
}
};
GraphStoragePlugin graphStoragePlugin = new GraphStoragePlugin();
assertTrue(TestDummy.compile(tC, graphStoragePlugin));
AssignmentNodeCollector collector = new AssignmentNodeCollector();
graphStoragePlugin.getGraph().accept(collector);
LinkedList<AssignmentNode> graphAssignmentNodes = collector.getAssignmentNodes();
LinkedList<String> graphAssignmentNodesStr = new LinkedList<String>();
for (AssignmentNode n: graphAssignmentNodes)
graphAssignmentNodesStr.add(n.toString());
String[] arr1 = graphAssignmentNodesStr.toArray(new String[0]);
//Copy List
LinkedList<AssignmentNode> list = new LinkedList<AssignmentNode>();
for (AssignmentNode node: graphAssignmentNodes)
list.add(node.copyElements());
RayMethod.replace(list);
LinkedList<String> graphAssignmentNodesStr2 = new LinkedList<String>();
for (AssignmentNode n: graphAssignmentNodes)
graphAssignmentNodesStr2.add(n.toString());
String[] arr2 = graphAssignmentNodesStr2.toArray(new String[0]);
assertArrayEquals(arr1, arr2);
}
}