diff --git a/bin/.gitignore b/bin/.gitignore new file mode 100644 index 0000000..2079672 --- /dev/null +++ b/bin/.gitignore @@ -0,0 +1,2 @@ +/Spreadsheet.class +/SpreadsheetTest.class diff --git a/bin/Spreadsheet.class b/bin/Spreadsheet.class index 92b411f..0effaa5 100644 Binary files a/bin/Spreadsheet.class and b/bin/Spreadsheet.class differ diff --git a/bin/SpreadsheetTest.class b/bin/SpreadsheetTest.class index e7086bd..3d98d91 100644 Binary files a/bin/SpreadsheetTest.class and b/bin/SpreadsheetTest.class differ diff --git a/src/Spreadsheet.java b/src/Spreadsheet.java index e4f120b..3ab828e 100644 --- a/src/Spreadsheet.java +++ b/src/Spreadsheet.java @@ -1,18 +1,53 @@ +import java.util.HashMap; +import java.util.Map; public class Spreadsheet { + + private Map spriteSheet = new HashMap(); public String get(String cell) { - // to be implemented - return null; + String cellValue = spriteSheet.get(cell); + + return cellValue; } public void set(String cell, String value) { - // to be implemented + spriteSheet.put(cell, value); } public String evaluate(String cell) { - // to be implemented - return null; + + String cellValue = get(cell); + String returnValue; + char first = cellValue.charAt(0); + char last = cellValue.charAt(cellValue.length() -1); + + if(isNumeric(cellValue) == true){ + returnValue = cellValue; + }else if(isString(first, last) == true){ + returnValue = cellValue.substring(1, cellValue.length()-1); + }else{ + returnValue = "#Error"; + } + + return returnValue; + } + + public boolean isNumeric(String s){ + + if(s.matches("-?\\d+(\\.\\d+)?")){ + return true; + }else{ + return false; + } } -} + public boolean isString(char a, char b){ + + if(a == '’' && b == '’'){ + return true; + }else{ + return false; + } + } +} \ No newline at end of file diff --git a/tests/SpreadsheetTest.java b/tests/SpreadsheetTest.java index 9e0936a..267f1d4 100644 --- a/tests/SpreadsheetTest.java +++ b/tests/SpreadsheetTest.java @@ -7,9 +7,41 @@ public class SpreadsheetTest { @Test - public void test() { - fail("Not yet implemented"); - + public void testCreate() { + Spreadsheet sp = new Spreadsheet(); + assertNotNull(sp); } - + + @Test + public void testGet() { + Spreadsheet sp = new Spreadsheet(); + sp.set("A1", "5"); + String cv = sp.get("A1"); + assertEquals("5", cv); + } + + @Test + public void testEvaluate_integer() { + Spreadsheet sp = new Spreadsheet(); + sp.set("A1", "1"); + String cv = sp.evaluate("A1"); + assertEquals("1", cv); + } + + @Test + public void testEvaluate_quoted_string() { + Spreadsheet sp = new Spreadsheet(); + sp.set("A1", "’abc’"); + String cv = sp.evaluate("A1"); + assertEquals("abc", cv); + } + + @Test + public void testEvaluate_incorrect_value() { + Spreadsheet sp = new Spreadsheet(); + sp.set("A1", "’abc1"); + String cv = sp.evaluate("A1"); + assertEquals("#Error", cv); + } + }