Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .classpath
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
<classpathentry kind="output" path="bin"/>
</classpath>
12 changes: 9 additions & 3 deletions src/debug/ContainerArray.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,16 @@


public class ContainerArray<E> {
private int initialCapacity = 10;
private int limit = 10;
private int currentSize = 0;
private Object[] internalArray;

public ContainerArray () {
this(10);
}

public ContainerArray (int initialCapacity) {
internalArray = new Object[initialCapacity];
public ContainerArray (int limit) {
internalArray = new Object[limit];
}

public void add (E element) {
Expand All @@ -23,11 +23,17 @@ public int size () {
}

public void remove (E objectToRemove) {
if (currentSize == 0 ) return;
currentSize--;
}

@SuppressWarnings("unchecked")
public E get (int index) {
if(index>=currentSize && index < internalArray.length){
return null;
} else if ( index >= internalArray.length ) {
throw new IndexOutOfBoundsException();
}
return (E)internalArray[index];
}
}
38 changes: 38 additions & 0 deletions src/debug/ContainerArrayTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -44,4 +44,42 @@ public void testObjectIsRemoved () {
myContainer.remove("Bear");
assertEquals("Remove should be same reference", alligator, myContainer.get(0));
}

// New Tests

@Test(expected = IndexOutOfBoundsException.class)
public void testOutOfBounds(){
myContainer.add("Alligator");
myContainer.get(11);
}

@Test
public void testGetOnNull(){
myContainer.add("Alligator");
assertEquals(null,myContainer.get(5));
}

@Test
public void testCorrectRemove () {
myContainer.add("Alligator");
myContainer.add("Bear");
myContainer.remove("Alligator");
assertEquals(null, myContainer.get(1));

}

@Test
public void testSizeLimit () {
myContainer.remove(" ");
assertEquals(0, myContainer.size());
}

@Test
public void testIfRightObjectRemoved () {
myContainer.add("Aligator");
myContainer.add("Bear");
myContainer.remove("Aligator");
assertEquals("Bear", myContainer.get(0));
}

}
32 changes: 32 additions & 0 deletions src/tdd/Sheet.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package tdd;

import java.util.HashMap;

public class Sheet {
private HashMap<String,String> myCells = new HashMap<String,String>();

public String get(String string){
if(myCells.containsKey(string)){
return trim(myCells.get(string));
}
return "";
}

public void put(String key, String value){
myCells.put(key, value);
}

public String getLiteral(String key){
if(myCells.containsKey(key)){
return (myCells.get(key));
}
return "";
}
private String trim (String value) {
String regex = "\\s*\\d+\\s*";
if(value.matches(regex)){
return value.replaceAll("\\s+", "");
}
return value;
}
}
86 changes: 86 additions & 0 deletions src/tdd/TestSheet.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
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));
}

}
37 changes: 37 additions & 0 deletions src/voogasalad/FormDataManagerTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package voogasalad;

import static org.junit.Assert.*;
import java.util.ArrayList;
import java.util.Arrays;
import org.junit.Before;
import org.junit.Test;
import gameauthoring.characters.FormData;
import gameauthoring.characters.FormDataManager;

public class FormDataManagerTest {

private FormDataManager dataManager;

@Before
public void setup () {
dataManager = new FormDataManager();
}

@Test
public void testAdd () {
FormData data = new FormData("Label", new ArrayList<String>(Arrays.asList("value")));
dataManager.add(data);
assertEquals("value", dataManager.getValue("Label"));
}

@Test
public void testAddList () {
ArrayList<String> dataList = new ArrayList<String>( Arrays.asList("data1", "data2", "data3"));
FormData data = new FormData("Label", dataList);
dataManager.add(data);

assertEquals(dataList, dataManager.getValues("Label"));

}

}
43 changes: 43 additions & 0 deletions src/voogasalad/SpriteControllerTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
package voogasalad;

import static org.junit.Assert.*;
import org.junit.Before;
import org.junit.Test;
import engine.ILevel;
import engine.Level;
import engine.sprite.ISprite;
import engine.sprite.Sprite;
import gameauthoring.levels.sprites.SpriteController;
import javafx.beans.property.ObjectProperty;
import javafx.beans.property.SimpleObjectProperty;
import util.Coordinate;

public class SpriteControllerTest {

ObjectProperty<ILevel> level;
SpriteController controller;

@Before
public void setup () {
level = new SimpleObjectProperty<>(new Level());
controller = new SpriteController(level.get());
}

@Test
public void testMoveSprite () {
ObjectProperty<ISprite> sprite = new SimpleObjectProperty<>(new Sprite());
controller.moveSprite(sprite, 5, 5);
Coordinate point = sprite.get().getLocation().get();
assertEquals(5, point.getX(), .01);
assertEquals(5, point.getY(), .01);
}

@Test
public void testSpriteDelete() {
ObjectProperty<ISprite> sprite = new SimpleObjectProperty<>(new Sprite());
level.get().add(sprite.get(), new Coordinate(0,0));
controller.deleteSprite(sprite);
assertEquals(0, level.get().getSprites().size());
}

}