diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..3e0fb27 --- /dev/null +++ b/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/debug/ContainerArray.java b/src/debug/ContainerArray.java index 124ece6..7766467 100755 --- a/src/debug/ContainerArray.java +++ b/src/debug/ContainerArray.java @@ -1,8 +1,11 @@ package debug; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; public class ContainerArray { - private int initialCapacity = 10; + private int limit = 10; private int currentSize = 0; private Object[] internalArray; @@ -23,7 +26,10 @@ public int size () { } public void remove (E objectToRemove) { - currentSize--; + List list = new ArrayList(Arrays.asList(internalArray)); + list.remove(objectToRemove); + internalArray = list.toArray(); + currentSize--; } @SuppressWarnings("unchecked") diff --git a/src/debug/ContainerArrayTest.java b/src/debug/ContainerArrayTest.java index c566d50..bf348ce 100755 --- a/src/debug/ContainerArrayTest.java +++ b/src/debug/ContainerArrayTest.java @@ -44,4 +44,14 @@ public void testObjectIsRemoved () { myContainer.remove("Bear"); assertEquals("Remove should be same reference", alligator, myContainer.get(0)); } + + @Test + public void testRemoveMiddleObject () { + String dog = "dog"; + String cat = "cat"; + myContainer.add("dog"); + myContainer.add("cat"); + myContainer.remove(dog); + assertEquals("Remove should work for any object", cat, myContainer.get(0)); + } } diff --git a/src/tdd/Sheet.java b/src/tdd/Sheet.java new file mode 100644 index 0000000..47a5257 --- /dev/null +++ b/src/tdd/Sheet.java @@ -0,0 +1,35 @@ +package tdd; + +import java.util.HashMap; + +public class Sheet { + + HashMap cellStorage = new HashMap(); + HashMap literals = new HashMap(); + + public String get(String string) { + if(!cellStorage.keySet().contains(string)){ + return ""; + } + return cellStorage.get(string); + } + + public void put(String cell, String string){ + literals.put(cell, string); + try{ + Integer.parseInt(string.trim()); + } catch (Exception e){ + cellStorage.put(cell, string); + return; + } + cellStorage.put(cell, string.trim()); + } + + public String getLiteral(String string){ + if(!literals.keySet().contains(string)){ + return ""; + } + return literals.get(string); + } + +} diff --git a/src/tdd/TestSheet.java b/src/tdd/TestSheet.java new file mode 100644 index 0000000..bbcb6cd --- /dev/null +++ b/src/tdd/TestSheet.java @@ -0,0 +1,83 @@ +package tdd; + +import static org.junit.Assert.*; + +import org.junit.Test; + +public class TestSheet { + + @Test + public void testThatCellsAreEmptyByDefault() { + Sheet sheet = new Sheet(); + assertEquals("", sheet.get("A1")); + assertEquals("", sheet.get("ZX347")); + } + + @Test + public void testThatTextCellsAreStored() { + Sheet sheet = new Sheet(); + String theCell = "A21"; + + sheet.put(theCell, "A string"); + assertEquals("A string", sheet.get(theCell)); + + sheet.put(theCell, "A different string"); + assertEquals("A different string", sheet.get(theCell)); + + sheet.put(theCell, ""); + assertEquals("", sheet.get(theCell)); + } + + @Test + public void testThatManyCellsExist() { + Sheet sheet = new Sheet(); + sheet.put("A1", "First"); + sheet.put("X27", "Second"); + sheet.put("ZX901", "Third"); + + assertEquals("A1", "First", sheet.get("A1")); + assertEquals("X27", "Second", sheet.get("X27")); + assertEquals("ZX901", "Third", sheet.get("ZX901")); + + sheet.put("A1", "Fourth"); + assertEquals("A1 after", "Fourth", sheet.get("A1")); + assertEquals("X27 same", "Second", sheet.get("X27")); + assertEquals("ZX901 same", "Third", sheet.get("ZX901")); + } + + @Test + public void testThatNumericCellsAreIdentifiedAndStored() { + Sheet sheet = new Sheet(); + String theCell = "A21"; + + sheet.put(theCell, "X99"); // "Obvious" string + assertEquals("X99", sheet.get(theCell)); + + sheet.put(theCell, "14"); // "Obvious" number + assertEquals("14", sheet.get(theCell)); + + sheet.put(theCell, " 99 X"); // Whole string must be numeric + assertEquals(" 99 X", sheet.get(theCell)); + + sheet.put(theCell, " 1234 "); // Blanks ignored + assertEquals("1234", sheet.get(theCell)); + + sheet.put(theCell, " "); // Just a blank + assertEquals(" ", sheet.get(theCell)); + } + + @Test + public void testThatWeHaveAccessToCellLiteralValuesForEditing() { + Sheet sheet = new Sheet(); + String theCell = "A21"; + + sheet.put(theCell, "Some string"); + assertEquals("Some string", sheet.getLiteral(theCell)); + + sheet.put(theCell, " 1234 "); + assertEquals(" 1234 ", sheet.getLiteral(theCell)); + + sheet.put(theCell, "=7"); // Foreshadowing formulas:) + assertEquals("=7", sheet.getLiteral(theCell)); + } +} diff --git a/src/voogasalad/ItemWindowTester.java b/src/voogasalad/ItemWindowTester.java new file mode 100644 index 0000000..a7c8b77 --- /dev/null +++ b/src/voogasalad/ItemWindowTester.java @@ -0,0 +1,21 @@ +package voogasalad; + +import static org.junit.Assert.*; + +import org.junit.Test; + +public class ItemWindowTester { + + PlayerSpritesTab myTab = new PlayerSpritesTab(); + + @Test + public void testSetTitle(){ + myTab.setTabTitle(""); + assertEquals("", myTab.getTab().getText()); + myTab.setTabTitle(" "); + assertEquals(" ", myTab.getTab().getText()); + myTab.setTabTitle(" Title "); + assertEquals("Title", myTab.getTab().getText()); + } + +} \ No newline at end of file diff --git a/src/voogasalad/PlayerSpritesTab.java b/src/voogasalad/PlayerSpritesTab.java new file mode 100644 index 0000000..288cd87 --- /dev/null +++ b/src/voogasalad/PlayerSpritesTab.java @@ -0,0 +1,50 @@ +package voogasalad; + +/** + * Created by davidyan on 4/4/16. + */ + +import authoringEnvironment.ViewSprite; +import javafx.geometry.Insets; +import javafx.scene.control.Tab; +import javafx.scene.layout.TilePane; + + +import java.util.ArrayList; + +public class PlayerSpritesTab implements ITab{ + + Tab tab; + TilePane tilepane; + + public PlayerSpritesTab(){ + tab = new Tab(); + tilepane = new TilePane(); + } + + public void populateTab(ArrayList viewSprites){ + setTilePaneSettings(); + for(ViewSprite x : viewSprites){ +// img.setFitHeight(myTabPane.getPrefWidth()*0.25); +// img.setFitWidth(myTabPane.getPrefWidth()*0.25); + tilepane.getChildren().add(x); + } + tab.setContent(tilepane); + } + + public void setTabTitle(String tabTitle){ + tab.setText(tabTitle.trim()); + } + + private void setTilePaneSettings(){ + tilepane.setPrefTileHeight(200); + tilepane.setPrefTileWidth(200); + double inset = 5; + tilepane.setPadding(new Insets(inset, inset, inset, inset)); + tilepane.setHgap(inset); + } + + public Tab getTab(){ + return tab; + } +} \ No newline at end of file