From c15b9118b74135318c22ccc0c4813b07d6dc4b4e Mon Sep 17 00:00:00 2001 From: abrime Date: Thu, 13 Oct 2016 16:51:50 +0300 Subject: [PATCH] 7. Simple formulas with errors --- bin/Spreadsheet.class | Bin 613 -> 2478 bytes bin/SpreadsheetTest.class | Bin 490 -> 1457 bytes src/Spreadsheet.java | 73 +++++++++++++++++++++++++++++++++++-- tests/SpreadsheetTest.java | 47 ++++++++++++++++++++++-- 4 files changed, 114 insertions(+), 6 deletions(-) diff --git a/bin/Spreadsheet.class b/bin/Spreadsheet.class index 92b411f05752a6cee6d06c9769e1b70d40aa0840..0008f88f47cc409f8ced638b39ab9486f85f694c 100644 GIT binary patch literal 2478 zcmdT`U2hXt5IxtsYdg+{T$?z=Apt@tI0=xFhNK0OHspgClJH@iU?Nr8INQY3aiaAG z@m8tgsXqXfK2Zr3sVb^lLE1t^#Y12EEBaLRH&hkvxx2gSg?v~gBMqB*g01qxM8_Y{+2-7^735m zcAA^TwbKG&tFX0ht=KdTEKkz@Oum?R#|5-x-=cs%xw&dbprOS?6Cxo5o4`0G41X0f z5kgp?buM4D7q&N6Z0D-AQm_SLbDKG790*O(zUCffx(p19rw3lRb;65GYu*)akiD}F*sV&PX+1z^rgH#B!0{d&n z{eGF*bl9WQw{rHDo8K%_qnuqRs0ON8R@>Dm*sfzSF(#rFw>P-T^P3VdZd!$H_MKMz zh}ctixM3J}T}#@vav#rITb1V2*a-qh8i-%#tdfapr?9O;S}wyy(wo~(&YsDu&X;w~ zeOz%s4`)W>;0E~R;1Hq4hNz~Ab46_C)gQdeGN9c51I&Ke8P)#$6}tkD(aMXTjjSdo zGFe@o&14NZnaKv_R3;me)0u2o&SbJOD9;f?a+VmDDPog6PmIV5#AZ21H03<8MJ^C` z$&18Rd5I|HWnxrbA;x5yxLaN&w#f`JE*FXIa*4P{UL$tMEHNRkXC5Q^9diy~H!%jC z$cGU>QL_1#>o)F~J}<=4&MU=vkIz}CM~Twr$^VRV|9~pX(O1}adbN$zv2VsBa{mb} zo(czirWF;)+3N;X@h4tC1gJ>|623ARGYXypUyKM{{_dK-wR@Ib(m6Qa!&|UFWpGfq-iF7nfWFPi7N~Eq+{6xAKuKNv% zs0mRD9Ps9c^C9j~*$_!RAJBGiaBM&)j%y?O1AIk|qH%q=>mEK=a>ezb?x9mg!iXhz z(0>b)J%A{aZZwt2yWoz;WNV2pcTyfk?Kbzkb1(6dNmsNYBZv2BgO-Cc||gYyYFF_S0rO7t{+X`Hbh+YxRT~~ z)v3NB`@HPW(%B@(XNvkvV;^Ry#T0p_Jci?bs4BzJ3PXnXI0ShAgvXU{FjP=+)gh^? v;%a!j_;&LGyU8oAh%CNrHpbu|AF~OtTCdLDLS4fKs<8u=*aAzQ{k4Aqz0|-X literal 613 zcma)2%T5A85Ug32hdcyd=us~U9OPoWVDw<(X`=@W_hFg9kaaQ3!guM(#DgE;M;WVk zH%i1rFWuGCT~*!l{_*+-;0y;vI0}{iV`TJbJ~1XP!c}NY^-^~O9ge$q!>RFOg~Ejm zZG5SaYqbXo?)7YB%E)1(iaZJmb8p! zWsjm`LyzN@_ifydBO8u;?e!%sKCK&YAi7>)Q_iMZD0V2~5>KdeS=e&!h}aq#x*r2*l5= z&sM%|Ij#KL#<^?;0%HfZV+Th9BiUSCAo9{Zl~IgfJcdz>QKxD<@=fQWA-xl;(Ut>DA;)L*#Tk^Sy_b5$UG)|m7-ji4 z0i7p)E3P`NJa@r;bn^9y84d6aWOW+=FHB9xQ;@5G&2g++aFMUVi z{S~IGTgjPZ>Js;pDV{E|^cCq)KZyuqCty%BPQ^v)DOReh(PJ5yK?Ww70@>lIIYr&N zl{!u8EU76{=LS%BhNtc->Z4n!3#2ZQx=iZI0P5cG)WY4pu9CV=>ISKq0o2m))cw1u mo1|`&xsm~O(eCvewNG+0DB6WWN^^ku}!_jYrg6jPM delta 173 zcmdnU{fe3E)W2Q(7#J8#7^Ek1^|P>)q!v$HV4%psAjHTZ?3Z7nP?=hykeOSMlbV~F zSCX2-#UR2U#?Bx*xqwkrNt{7~k%1*GF*ApeK~%#hE3qt5KPNFST|c;_C^IkJS~F~N z8IwLE)8u7LVfH2rj6lf1z$PTPgF$#Bkj2En1thtEGy?-S11keBkYr%sfv5t~yg(i! LgCvk-Vvqs=$4(&% diff --git a/src/Spreadsheet.java b/src/Spreadsheet.java index e4f120b..e9f4085 100644 --- a/src/Spreadsheet.java +++ b/src/Spreadsheet.java @@ -1,18 +1,85 @@ public class Spreadsheet { + String[][] matrix = new String [26][1000]; + char[] alphabet = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'}; + + public Spreadsheet(){} + + public Spreadsheet(String[][] matrix, char[] alphabet) { + super(); + this.matrix = matrix; + this.alphabet = alphabet; + } + + public String[][] getMatrix() { + return matrix; + } + + public void setMatrix(String[][] matrix) { + this.matrix = matrix; + } + + public char[] getAlphabet() { + return alphabet; + } + + public void setAlphabet(char[] alphabet) { + this.alphabet = alphabet; + } + public String get(String cell) { // to be implemented + char letra = cell.charAt(0); + char num = cell.charAt(1); + for (int i = 0; i < alphabet.length; i++) { + if(alphabet[i] == letra){ // You know if its A, B ... + + String value = matrix[i][num]; + + if(value.startsWith("'") && value.endsWith("'")){ + return value.substring(1, value.length()-1); + }else if(value.startsWith("'") && value.endsWith("")){ + return "#Error"; + }else if(value.startsWith("") && value.endsWith("'") && !value.startsWith("=")){ + return "#Error"; + }else if(value.startsWith("='") && value.endsWith("'")) + return value.substring(2, value.length()-1); + + + try { + Integer.parseInt(value); + return value; + } catch (NumberFormatException nfe){ + return "#Error"; + } + } + + } return null; } - + + public void set(String cell, String value) { // to be implemented + + char letra = cell.charAt(0); + char num = cell.charAt(1); + for (int i = 0; i < alphabet.length; i++) { + if(alphabet[i] == letra){ + matrix[i][num] = value; + } + } } - + public String evaluate(String cell) { // to be implemented + return null; + + } - + + + } diff --git a/tests/SpreadsheetTest.java b/tests/SpreadsheetTest.java index 9e0936a..3274694 100644 --- a/tests/SpreadsheetTest.java +++ b/tests/SpreadsheetTest.java @@ -7,9 +7,50 @@ public class SpreadsheetTest { @Test - public void test() { - fail("Not yet implemented"); + public void testGet() { + Spreadsheet ss = new Spreadsheet(); + ss.set("A3", "3"); + assertEquals("3", ss.get("A3")); } - + + @Test + public void testGet2() { + Spreadsheet ss = new Spreadsheet(); + + ss.set("A3", "3A"); + assertEquals("#Error", ss.get("A3")); + } + @Test + public void testGet3() { + Spreadsheet ss = new Spreadsheet(); + + ss.set("A3", "'is a String'"); + assertEquals("is a String", ss.get("A3")); + } + + @Test + public void testGet4() { + Spreadsheet ss = new Spreadsheet(); + + ss.set("A3", "'3A"); + assertEquals("#Error", ss.get("A3")); + } + + @Test + public void testGet5() { + Spreadsheet ss = new Spreadsheet(); + + ss.set("A3", "3A'"); + assertEquals("#Error", ss.get("A3")); + } + + @Test + public void testGet6() { + Spreadsheet ss = new Spreadsheet(); + + ss.set("A3", "='a String'"); + assertEquals("a String",ss.get("A3")); + } + }