Переглянути джерело

Merge branch 'Ohne_Drag_and_Drop' of https://git.tk.informatik.tu-darmstadt.de/carlos.garcia/praktikum-holons into Ohne_Drag_and_Drop

Edgardo Palza 7 роки тому
батько
коміт
8aa83c0220

BIN
.gradle/2.2.1/taskArtifacts/cache.properties.lock


BIN
.gradle/2.2.1/taskArtifacts/fileHashes.bin


BIN
.gradle/2.2.1/taskArtifacts/fileSnapshots.bin


BIN
.gradle/2.2.1/taskArtifacts/outputFileStates.bin


BIN
.gradle/2.2.1/taskArtifacts/taskArtifacts.bin


+ 3 - 0
build.gradle

@@ -10,6 +10,9 @@
 
 // Apply the java plugin to add support for Java
 apply plugin: 'java'
+apply plugin: 'application'
+
+mainClassName = 'ui.view.Main'
 
 jar {
     manifest {

BIN
gradle/wrapper/gradle-wrapper.jar


+ 6 - 0
gradle/wrapper/gradle-wrapper.properties

@@ -0,0 +1,6 @@
+#Sat Sep 24 14:38:34 CEST 2016
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-bin.zip

+ 151 - 16
src/tests/praktikumHolonsTestLoadAndStoreController.java

@@ -1,11 +1,20 @@
 package tests;
 
+import java.awt.Point;
 import java.io.File;
 import java.io.IOException;
+import java.util.ArrayList;
+import java.util.LinkedList;
 
 import org.junit.Before;
 import org.junit.Test;
 
+import com.sun.security.auth.UnixNumericGroupPrincipal;
+
+import classes.Category;
+import classes.CpsEdge;
+import classes.CpsObject;
+import classes.HolonElement;
 import classes.HolonObject;
 
 import static org.junit.Assert.assertEquals;
@@ -19,6 +28,8 @@ import ui.controller.MultiPurposeController;
 import ui.controller.ObjectController;
 import ui.controller.StoreController;
 import ui.model.Model;
+import ui.model.idCounter;
+import ui.view.UnitGraph;
 
 public class praktikumHolonsTestLoadAndStoreController {
 
@@ -30,9 +41,9 @@ public class praktikumHolonsTestLoadAndStoreController {
 	protected ObjectController obj;
 	protected StoreController storeController;
 	protected LoadController loadController;
+	protected idCounter id;
 	protected String path = System.getProperty("user.home") + "/HolonGUI/Test/";
-	
-	
+
 	@Before
 	public void setUp() {
 		adapter = new praktikumHolonsAdapter();
@@ -43,29 +54,139 @@ public class praktikumHolonsTestLoadAndStoreController {
 		obj = new ObjectController(model, mp);
 		storeController = new StoreController(model);
 		loadController = new LoadController(model, cg, cvs, obj, mp);
+		// cg.initCategories();
+		// obj.initHolonElements();
 		File file = new File(path);
 		file.mkdirs();
 	}
-	
+
 	@Test
-	public void testStoreMinimal(){
-		cg.initCategories();
-		obj.initHolonElements();
+	public void testStoreMinimal() {
 		try {
 			File sav = new File(path + "TestSavMinimal.json");
 			storeController.writeSaveFile(sav.getAbsolutePath());
 			assertTrue("Save File was not created", new File(path + "TestSavMinimal.json").exists());
-			
-			File cat = new File(path + "TestCatMinimal.json");
+
+			File cat = new File(path + "TestCategoryMinimal.json");
 			storeController.writeCategoryFile(cat.getAbsolutePath());
-			assertTrue("Category File was not created", new File(path + "TestCatMinimal.json").exists());
-			
+			assertTrue("Category File was not created", new File(path + "TestCategoryMinimal.json").exists());
+
 			File canvas = new File(path + "TestCanvasMinimal.json");
 			storeController.writeCanvasFile(canvas.getAbsolutePath());
 			assertTrue("Canvas File was not created", new File(path + "TestCanvasMinimal.json").exists());
-			
+
+			assertTrue("Non Existant File exist", !new File(path + "TestDummyMinimal.json").exists());
+
+		} catch (IOException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+	}
+
+	@Test
+	public void testStoreBasic() {
+
+		for (int i = 1; i <= 10; i++) {
+			cg.addNewCategory(adapter.generate(i));
+			assertTrue("Number of Categories does not match", model.getCategories().size() == i + 3);
+			assertTrue("Category was not created", mp.searchCat(adapter.generate(i)) != null);
+			for (int j = 1; j <= 10; j++) {
+				cg.addNewHolonObject(mp.searchCat(adapter.generate(i)), adapter.generate(j), new ArrayList<>(), "");
+				assertTrue("Number of Objects does not match",
+						mp.searchCat(adapter.generate(i)).getObjects().size() == j);
+				assertTrue("Object was not created", mp.searchCat(adapter.generate(i)).getObjects().get(j - 1) != null);
+			}
+		}
+
+		// here some Objects were dropped on the canvas
+		for (int i = 1; i <= 10; i++) {
+			cvs.addNewObject(new HolonObject(mp.searchCatObj(mp.searchCat("Building"), "House")));
+			assertTrue("Size of Objects on Canvas does not match", model.getObjectsOnCanvas().size() == i);
+			assertTrue("Object was not added", model.getObjectsOnCanvas().get(i - 1) != null
+					&& model.getObjectsOnCanvas().get(i - 1).getObjName().equals("House"));
+		}
+
+		try {
+			File sav = new File(path + "TestSavBasic.json");
+			storeController.writeSaveFile(sav.getAbsolutePath());
+			assertTrue("Save File was not created", new File(path + "TestSavBasic.json").exists());
+
+			File canvas = new File(path + "TestCanvasBasic.json");
+			storeController.writeCanvasFile(canvas.getAbsolutePath());
+			assertTrue("Canvas File was not created", new File(path + "TestCanvasBasic.json").exists());
+
 			assertTrue("Non Existant File exist", !new File(path + "TestDummyMinimal.json").exists());
+
+		} catch (IOException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+	}
+
+	@Test
+	public void testStoreAdvanced() {
+
+		setGraphPoints((HolonObject) mp.searchCatObj(mp.searchCat("Building"), "House"));
+
+		int n = 0;
+		for (int i = 0; i < 10; i++) {
+			for (int j = 0; j < 10; j++) {
+				HolonObject h = new HolonObject(mp.searchCatObj(mp.searchCat("Building"), "House"));
+				h.setPosition(j * 50, i * 50);
+				cvs.addNewObject(h);
+				setGraphPoints(h);
+				for (CpsObject cps : model.getObjectsOnCanvas()) {
+					if (!cps.equals(h))
+						cvs.addEdgeOnCanvas(new CpsEdge(h, cps));
+				}
+
+				// vollständiger Graph
+				n = model.getObjectsOnCanvas().size();
+				assertTrue("Number of Edges does not Match", model.getEdgesOnCanvas().size() == (n * (n - 1)) / 2);
+			}
+		}
+
+		try {
+			File sav = new File(path + "TestSavAdvanced.json");
+			storeController.writeSaveFile(sav.getAbsolutePath());
+			assertTrue("Save File was not created", new File(path + "TestSavAdvanced.json").exists());
+
+		} catch (IOException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+
+	}
+
+	@Test
+	public void testLoadMinimal() {
+		try {
+			//Category Tests
+			Category building = mp.searchCat("Building");
+			assertTrue("Number of Categories does not match", model.getCategories().size() == 3);
+			assertTrue("TestFile was not found", new File(path + "TestCategoryMinimal.json").exists());
+			loadController.readJSON(path + "TestCategoryMinimal.json");
+			assertTrue("Number of Categories does not match", model.getCategories().size() == 3);
+			//Tests if its same instance and if Name is the same
+			assertTrue("Same instance of Category:Building", building != mp.searchCat("Building")
+					&& building.getName().equals(mp.searchCat("Building").getName()));
+			
+			//Canvas Tests.. basically nothing happens because nothing is on the Canvas
+			assertTrue("Number of Objects on Canvas does not match", model.getObjectsOnCanvas().size() == 0);
+			assertTrue("TestFile was not found", new File(path + "TestCanvasMinimal.json").exists());
+			loadController.readJSON(path + "TestCanvasMinimal.json");
+			assertTrue("Number of Objects on Canvas does not match", model.getObjectsOnCanvas().size() == 0);
 			
+			//Save File tests basically both Test from Above Combined
+			building = mp.searchCat("Building");
+			assertTrue("Number of Objects in Energy does not Match", mp.searchCat("Energy").getObjects().size() == 1);
+			assertTrue("TestFile was not found", new File(path + "TestSavMinimal.json").exists());
+			loadController.readJSON( path + "TestSavMinimal.json");
+			assertTrue("Number of Objects in Energy does not Match", mp.searchCat("Energy").getObjects().size() == 1);
+			assertTrue("Number of Objects on Canvas does not match", model.getObjectsOnCanvas().size() == 0);
+			assertTrue("Same instance of Category:Building", building != mp.searchCat("Building")
+					&& building.getName().equals(mp.searchCat("Building").getName()));
+
 		} catch (IOException e) {
 			// TODO Auto-generated catch block
 			e.printStackTrace();
@@ -73,11 +194,25 @@ public class praktikumHolonsTestLoadAndStoreController {
 	}
 	
 	@Test
-	public void testStoreCanvas() {
-		for (int i = 1; i < 11; i++) {
-			cvs.addNewObject(new HolonObject(adapter.generate(i)));
-			assertTrue("Size of Objects on Canvas does not match", model.getObjectsOnCanvas().size() == i);
-			assertTrue("Object was not created", mp.searchByID(i) != null && mp.searchByID(i).getObjName().equals(adapter.generate(i)));
+	public void testLoadBasic() {
+		
+	}
+
+	/**
+	 * 
+	 * @param obj
+	 */
+	public void setGraphPoints(HolonObject obj) {
+		LinkedList<Point> list = new LinkedList<>();
+		list.add(new Point(0, 0));
+		list.add(new Point(125, 50));
+		list.add(new Point(249, 0));
+		UnitGraph u = new UnitGraph(model, null);
+		u.repaintWithNewElement(obj.getElements());
+		u.fillArrayofValue();
+		for (HolonElement ele : obj.getElements()) {
+			ele.setGraphPoints(list);
 		}
+
 	}
 }

+ 5 - 0
src/tests/praktikumHolonsTestStressAnalysis.java

@@ -0,0 +1,5 @@
+package tests;
+
+public class praktikumHolonsTestStressAnalysis {
+
+}

+ 0 - 1
src/tests/praktikumHolonsTestSuite.java

@@ -14,7 +14,6 @@ public class praktikumHolonsTestSuite {
 		suite.addTest(new JUnit4TestAdapter(praktikumHolonsTestCanvasController.class));
 		suite.addTest(new JUnit4TestAdapter(praktikumHolonsTestObjectController.class));
 		suite.addTest(new JUnit4TestAdapter(praktikumHolonsTestLoadAndStoreController.class));
-//		suite.addTest(new JUnit4TestAdapter(praktikumHolonsTestLoadController.class));
 //		suite.addTest(new JUnit4TestAdapter(praktikumHolonsTestMultiPurposeController.class));
 //		suite.addTest(new JUnit4TestAdapter(praktikumHolonsTestGlobalController.class));
 //		suite.addTest(new JUnit4TestAdapter(praktikumHolonsTestAutoSaveController.class));

+ 0 - 1
src/ui/model/Model.java

@@ -77,7 +77,6 @@ public class Model {
 	 * default values.
 	 */
 	public Model() {
-
 		setCategories(new ArrayList<Category>());
 		setObjectsOnCanvas(new ArrayList<CpsObject>());
 		setEdgesOnCanvas(new ArrayList<CpsEdge>());

+ 1 - 0
src/ui/view/TimePanel.java

@@ -119,6 +119,7 @@ public class TimePanel extends JPanel {
 			public void actionPerformed(ActionEvent ae) {
 				timeSlider.setValue(timeSlider.getMinimum());
 				controller.setCurIteration(timeSlider.getValue());
+				controller.calculateStateForCurrentTimeStep();
 			}
 		});
 		timeForwardBtn.setToolTipText("Forward");

+ 1 - 1
src/ui/view/UnitGraph.java

@@ -26,7 +26,7 @@ import classes.HolonSwitch;
 
 import java.awt.Cursor;
 
-class UnitGraph extends JPanel implements MouseListener, MouseMotionListener, ComponentListener {
+public class UnitGraph extends JPanel implements MouseListener, MouseMotionListener, ComponentListener {
 
 	private static final long serialVersionUID = 1L;
 	private float MAXIMUM = 0;