From 26570cd5cfb5e3c9172933f1cb07fbcbb1d67e88 Mon Sep 17 00:00:00 2001 From: patsijee Date: Fri, 14 Oct 2016 16:59:35 +0300 Subject: [PATCH] =?UTF-8?q?4.=20String=20handling=20ready=20-=20Juha=20E.E?= =?UTF-8?q?.P=C3=A4tsi?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bin/.gitignore | 2 ++ bin/Spreadsheet.class | Bin 613 -> 1189 bytes bin/SpreadsheetTest.class | Bin 490 -> 1685 bytes src/Spreadsheet.java | 46 +++++++++++++++++++++++++++++------- tests/SpreadsheetTest.java | 47 +++++++++++++++++++++++++++++++++---- 5 files changed, 82 insertions(+), 13 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..6d3f4b591199c64ef0558f9c27cc105311d4006c 100644 GIT binary patch literal 1189 zcmZuvOHUI~6#nka(CK3eZGrj%ErPUDhKGot^3a4}(xjD`5*DC|)Arg94lPcn#HD{j zSMJh$t-#zC$-+BD}^X)r;B|K6gF~rJ84mWG<2IsB{ zg&}cZ9-H&F*{siRR}Og9Wf-V(+io+A?C%%PU(2pzHS4Pkp*5>%xf={}PTyrvHd{3w zg^ZX66=4;j2p9%63?RfXRJ5A>N$0S_ogK4cbB0v0RWzwpV=Pt_7FG3_m2p1XpsFvG;D%*$ZqPHk(;MlY~Bsa{3VY*b}7_O@r|EFbsQ#9N_ zh9T1KRN7vb7}B{yp^wHeZZfc0!8N7f7N)74{B_3^?H=vb=FehP-xIDmkw6z7{W)id zGbGeHccFpRml6e#iHCk?UoGO28iLoboCOaqQ zg9%y_nO2iQ61zf{LN=`soe{ci(JQ0>aQ-Wz`6S-b_XC>r1@TV=OBkYa(4&wkR7HyH z1Yw#Vh9n_^ei$PGmm7{?~<;Wi;pF@+su@f#RsCC^AAGYhID-#2th3 R8yOX23sQ`#-XKWA!@nNB+b944 delta 320 zcmZ3=`ILq0)W2Q(7#J8#7$hcgX-*81VC0-wadC1blV&{w0}BHq11kd?kYooc(Ff9u zK$=x+I|Ii?AcKj43rK>bL2Pay$pcXUq$4Pye*qC~ie RA8eW;rjuYU5(9fd8~}~}5{Cc) diff --git a/bin/SpreadsheetTest.class b/bin/SpreadsheetTest.class index e7086bd9ef1b6a8b7afcfb717afbaddbf99a7876..de27e723d2c228be1239b0217dc345959fedef43 100644 GIT binary patch literal 1685 zcma)*YfsZq7{~u-AS+v8W87p6EOHqempKF!L3H3ilL^L=CB7`5^3g6L(4p6eHS zrly;f%<<_tFAIjS(>}*AQ1D#aX6V~7OhfE4^em=I488l-84sZcVHH6rK@5<9=SB!B z!u=qSiU;T;FA9dqkKFnxw@>ub8fSD!>9!&5)@HA$8V;-hN{qs~i)V~|wNG%cYE!!k)JTCnU&=G-OcGYugH6AXb|R>35_ zSF+O6DHYRrM6nTqA-Py+XQwD^!>nxI-AR=c%rKJ$uTx&P zd{jN6&2oDKYVF9fPBwC!m;UO4f2eu$tYDRaQQn>~tX?1KKJ+yePi5!|Z>cjRI%s#w z>ht^LtJSKyf@iXPYYf93D!C0=Wd$!}kvA0VQ0va-ZQHUL;vFaVE!(EXZx&d=D@tQh z*PKSZlL~U=>a{5=u&?3`@(gM-*ZD85UZei%XqJ0(8!B3^UFHXdZ2l3?tVoAfWyfKL z2BwEbm(fF0Lu-(}X})OfCu@)X%74-H6+-FXP(NK^@CPE_XfJ>vS_d2VX~gM#gl@)Y zPi@}8Fha_vNg2#c9NoX~*NoNf2j>IMcqIjjlMG&3HEN zi)WTNbHthVXZL?JV`ASX39HLoN!g^NLiL5!V2l#xLozbIWls}yLCzGHE5 zYEcOfgE)f((6F?`%p67r(aDaC!jmU6>(?_dFflMPurja#Np_$c^no-ZkY?4|&cLw| z$Y5gN0+JwU2A~3NAjtz!0Hk?=JVpjSpez#uKU9?fSRKeS5QEr+1a~k9BTV7~s$~G0 V!wS^R%^(Rgjty=cPzb0*3IG5XCNuy5 diff --git a/src/Spreadsheet.java b/src/Spreadsheet.java index e4f120b..8d5088d 100644 --- a/src/Spreadsheet.java +++ b/src/Spreadsheet.java @@ -1,18 +1,46 @@ +import java.util.ArrayList; -public class Spreadsheet { +public class Spreadsheet +{ - public String get(String cell) { - // to be implemented - return null; + // the limit of array is hard coded to 128 x 128 + private String[][] cells = new String[128][128]; + + public String get(String cell) + { + return cells[0][0]; } - public void set(String cell, String value) { - // to be implemented + public void set(String cell, String value) + { + cells[0][0] = value; } - public String evaluate(String cell) { - // to be implemented - return null; + public String evaluate(String cell) + { + String tempCell = cells[0][0]; + if (tempCell.substring(0,1).equals("-")) + { + tempCell = tempCell.substring(1); + } + else if (tempCell.substring(0, 1).equals("'")) + { + tempCell = tempCell.substring(1); + if (tempCell.indexOf('\'') == tempCell.length() - 1) + { + tempCell = tempCell.substring(0, tempCell.length() - 1); + return tempCell; + } + else + { + return "#Error"; + } + } + if (!tempCell.matches("\\d+")) + { + return "#Error"; + } + return cells[0][0]; } } diff --git a/tests/SpreadsheetTest.java b/tests/SpreadsheetTest.java index 9e0936a..a82aa10 100644 --- a/tests/SpreadsheetTest.java +++ b/tests/SpreadsheetTest.java @@ -4,12 +4,51 @@ import org.junit.Test; -public class SpreadsheetTest { +public class SpreadsheetTest +{ + Spreadsheet spreadsheet = new Spreadsheet(); @Test - public void test() { - fail("Not yet implemented"); - + public void setA1GetMinusOneIntTest() + { + spreadsheet.set("A1", "-1"); + assertSame("Get result doesn't match to the set value", "-1", spreadsheet.get("A1")); + } + + @Test + public void setA1EvaluatePlusOneIntTest() + { + spreadsheet.set("A1", "1"); + assertSame("Evaluate result doesn't match to the set value", "1", spreadsheet.evaluate("A1")); + } + + @Test + public void setA1EvaluateMinusOneIntTest() + { + spreadsheet.set("A1", "-1"); + assertSame("Evaluate result doesn't match to the set value", "-1", spreadsheet.evaluate("A1")); + } + + @Test + public void setA1EvaluateMinusTwoIntTest() + { + spreadsheet.set("A1", "-2"); + assertSame("Evaluate result doesn't match to the set value", "-2", spreadsheet.evaluate("A1")); + } + + @Test + public void setA1EvaluateA5Test() + { + spreadsheet.set("A1", "A5"); + assertSame("Evaluate result doesn't match to the set value", "#Error", spreadsheet.evaluate("A1")); + } + + @Test + public void setA1EvaluateCorrectString() + { + spreadsheet.set("A1", "'a string'"); + assertEquals("a string", spreadsheet.evaluate("A1")); } + }