From a7c0a8e03141a01127105aa3544e0450c9c8434b Mon Sep 17 00:00:00 2001 From: alang Date: Fri, 14 Oct 2016 16:45:31 +0300 Subject: [PATCH] Finished exercise - #5 --- bin/.gitignore | 2 ++ bin/Spreadsheet.class | Bin 613 -> 1723 bytes bin/SpreadsheetTest.class | Bin 490 -> 1473 bytes src/Spreadsheet.java | 47 ++++++++++++++++++++++++++++++++----- tests/SpreadsheetTest.java | 40 +++++++++++++++++++++++++++---- 5 files changed, 79 insertions(+), 10 deletions(-) create mode 100644 bin/.gitignore 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 92b411f05752a6cee6d06c9769e1b70d40aa0840..0effaa5326fccf498ac3305a1bda2fc9e963a752 100644 GIT binary patch literal 1723 zcmZ`&O>^5+6g|(9Eys}@N02~B8d3s@Ka{vFZ3!ez+M1La@&Pdu2BsU?5w?ozWF)!& zB|CO(x_}vQr!d2?=0{P^ljK+>WfDtQ=iPhmxgYQEe}4ZHz)c)!$Ouff&V0u{33`qb zYET7AkL{;+-Lw1M`eFOA(+TMlocV6(w4{%~)L!H<2wktfZ=Y=nOtjo?-wp@9BXH~0 z)2;Y3qHBe|+wX2(Mz+b3+j9GExGkWRE5`zAR^_Y979osv$eOG=bpc?kvK)~2b6;BOHSJt;uzO1lv z8Jfg9SkN#}nz1fw((x9q{D&oO_zDX5`s`ksImAL{lpA|Ah-=pT-jMjx_9$;}WoB`EM7nh;RBE|dX~>fsIzGfro_J2b8}_1+H)Zf`9UozX1-b!e==g3&U?wdvX+h;X z>HUe0O>7C|-C)$UY`M{phl|+Ov4gv$3I^>U+B<>SaG-!xuB)g4z9~-<0^|&ctr&=a;y2)_?1CEvUwYbOcJ?IFTr=I z`W$-o4-~(Bj?!^&{MHM6px~Ra z*qD5Z0!t}!WQ?oRob`Ck+%+h z!cuicoyiXI@i|OO9XZ|MNzS}?uqG>3qKd1m8I+S_w+!}bj(=BqisY`YT)|xq zyg^iUr((>&20mrH$~+bx(8}U7GS;BH#0qj6 zgoZ`_LkM8*B?HG8VTrQcyhcgWRFOg~Ejm zZG5SaYqbXo?)7YB%E)1(iaZJmb8p! zWsjm`LyzN@_ifydBO8u;?e!OS_ALYmw540<5+Pbu3REg6Qm>E`M#0F~;DzhHMjxX$ zfLf^!(8uV5R6UcpB+y*s#^V|N=Re<>`G5WS{u96x6k~`83>=)h(m3``r1TG^=f}`3 zkT^9ijl5;pwfx7*sjT_}(QVT<{nr9r%h|F(_l|QcjIt z`@st;Y{WZfaVs)$V+!}Z^fgSfqPVGHT0m?m>scLhnCDe_k~g>1+V#M9O}kcT@d;0| zWu;uyv4mwRYf8D;Mw$Izs)DZQ$YE7LZ$#R?2n>r?b;rB$l&#+3Nj+orQaxESf5;_} zQbBhw4J+Ww9GSK+Ytq%Q$+Vk_`LWJnBC{sL8iBDpl8eCcStkNy z@GQc${|5#?Ut_40yFsei@Il?Z4;tI3MyheTAqX35q#DC`ooAx0g~c8!!{n_+GLxLT z!b~oixx&I;a%%Mk*`{Zj9l__(kVFDQ7(ogdPKxrLZgjf!PKVwj46}xHk_p~TyP$0; zHvUmO+DmSiK$3xh2cil{^8$H{ L43a>Si9regb#EfV 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); + } + }