diff --git a/.besouro/20161007143530388/actions.txt b/.besouro/20161007143530388/actions.txt new file mode 100644 index 0000000..c924ca8 --- /dev/null +++ b/.besouro/20161007143530388/actions.txt @@ -0,0 +1,156 @@ +FileOpenedAction 1475840130617 SpreadsheetTest.java 238 1 1 0 +RefactoringAction 1475840134467 SpreadsheetTest.java ADD Spreadsheet test FIELD +EditAction 1475840165755 SpreadsheetTest.java 237 1 2 1 +UnitTestCaseAction 1475840166304 SpreadsheetTest.java FAIL +UnitTestSessionAction 1475840166305 SpreadsheetTest.java FAIL +UnitTestCaseAction 1475840276083 SpreadsheetTest.java FAIL +UnitTestSessionAction 1475840276084 SpreadsheetTest.java FAIL +RefactoringAction 1475840332575 Spreadsheet.java ADD String cell FIELD +RefactoringAction 1475840340105 Spreadsheet.java ADD String value FIELD +RefactoringAction 1475840455972 Spreadsheet.java REMOVE cell FIELD +RefactoringAction 1475840455973 Spreadsheet.java REMOVE value FIELD +EditAction 1475840623831 Spreadsheet.java 247 3 2 0 +UnitTestCaseAction 1475840624116 SpreadsheetTest.java FAIL +UnitTestSessionAction 1475840624116 SpreadsheetTest.java FAIL +EditAction 1475840636637 Spreadsheet.java 254 3 2 0 +CompilationAction 1475840636737 Spreadsheet.java +CompilationAction 1475840636737 Spreadsheet.java +CompilationAction 1475840646615 Spreadsheet.java +CompilationAction 1475840646616 Spreadsheet.java +EditAction 1475840659716 SpreadsheetTest.java 239 1 2 1 +RefactoringAction 1475840935848 Spreadsheet.java ADD String cells FIELD +RefactoringAction 1475841010430 Spreadsheet.java REMOVE cells FIELD +RefactoringAction 1475841032996 Spreadsheet.java ADD String vc FIELD +RefactoringAction 1475841035006 Spreadsheet.java RENAME vc=>String cells FIELD +RefactoringAction 1475841063069 Spreadsheet.java REMOVE cells FIELD +RefactoringAction 1475841065593 Spreadsheet.java ADD String cells FIELD +RefactoringAction 1475841088700 Spreadsheet.java REMOVE cells FIELD +RefactoringAction 1475841184234 Spreadsheet.java ADD Vector FIELD +RefactoringAction 1475841315787 Spreadsheet.java RENAME cells=>List al FIELD +RefactoringAction 1475841322179 Spreadsheet.java ADD import java.util.ArrayList IMPORT +RefactoringAction 1475841342859 Spreadsheet.java RENAME al=>ArrayList cells FIELD +RefactoringAction 1475841396573 Spreadsheet.java REMOVE cells FIELD +RefactoringAction 1475841404096 Spreadsheet.java ADD ArrayList cells FIELD +EditAction 1475841492045 Spreadsheet.java 392 3 4 0 +UnitTestCaseAction 1475841494069 SpreadsheetTest.java OK +UnitTestSessionAction 1475841494070 SpreadsheetTest.java OK +RefactoringAction 1475841517607 SpreadsheetTest.java RENAME test()=>void test1() METHOD +RefactoringAction 1475841525623 SpreadsheetTest.java ADD void test1()/2 METHOD +RefactoringAction 1475841557708 SpreadsheetTest.java RENAME test1()/2=>void test2() METHOD +EditAction 1475841558646 SpreadsheetTest.java 346 2 4 2 +UnitTestCaseAction 1475841560449 SpreadsheetTest.java OK +UnitTestSessionAction 1475841560450 SpreadsheetTest.test2 OK +UnitTestCaseAction 1475841566486 SpreadsheetTest.java OK +UnitTestSessionAction 1475841566486 SpreadsheetTest.test2 OK +EditAction 1475841579097 SpreadsheetTest.java 350 2 4 2 +UnitTestCaseAction 1475841581096 SpreadsheetTest.java FAIL +UnitTestSessionAction 1475841581096 SpreadsheetTest.java FAIL +UnitTestCaseAction 1475841608270 SpreadsheetTest.java FAIL +UnitTestSessionAction 1475841608270 SpreadsheetTest.java FAIL +EditAction 1475841623813 Spreadsheet.java 391 3 4 0 +EditAction 1475841631711 SpreadsheetTest.java 350 2 4 2 +UnitTestCaseAction 1475841633409 SpreadsheetTest.java OK +UnitTestSessionAction 1475841633410 SpreadsheetTest.java OK +RefactoringAction 1475841656284 SpreadsheetTest.java ADD void test2()/2 METHOD +RefactoringAction 1475841661306 SpreadsheetTest.java RENAME test2()/2=>void test3() METHOD +EditAction 1475843327379 Spreadsheet.java 2181 3 3 0 +CompilationAction 1475843327862 Spreadsheet.java +CompilationAction 1475843515796 Spreadsheet.java +CompilationAction 1475843515905 Spreadsheet.java +EditAction 1475843555576 Spreadsheet.java 1971 3 4 0 +CompilationAction 1475843555669 Spreadsheet.java +EditAction 1475843566745 Spreadsheet.java 1978 3 4 0 +CompilationAction 1475843566839 Spreadsheet.java +CompilationAction 1475843738517 Spreadsheet.java +EditAction 1475844034841 Spreadsheet.java 1970 3 5 0 +EditAction 1475844182542 SpreadsheetTest.java 460 3 6 3 +UnitTestCaseAction 1475844183793 SpreadsheetTest.java FAIL +UnitTestSessionAction 1475844183793 SpreadsheetTest.java FAIL +EditAction 1475844349699 Spreadsheet.java 1970 3 5 0 +UnitTestCaseAction 1475844350014 SpreadsheetTest.java OK +UnitTestSessionAction 1475844350014 SpreadsheetTest.java OK +EditAction 1475844544516 Spreadsheet.java 2020 3 5 0 +UnitTestCaseAction 1475844546828 SpreadsheetTest.java OK +UnitTestSessionAction 1475844546828 SpreadsheetTest.java OK +RefactoringAction 1475845266739 SpreadsheetTest.java ADD void test3()/2 METHOD +EditAction 1475845321654 Spreadsheet.java 2128 3 5 0 +EditAction 1475845323853 SpreadsheetTest.java 568 4 8 4 +CompilationAction 1475845323947 SpreadsheetTest.java +RefactoringAction 1475845350217 SpreadsheetTest.java RENAME test3()/2=>void test4() METHOD +EditAction 1475845350966 SpreadsheetTest.java 568 4 8 4 +UnitTestCaseAction 1475845352545 SpreadsheetTest.java OK +UnitTestSessionAction 1475845352545 SpreadsheetTest.java OK +EditAction 1475845756212 Spreadsheet.java 2404 3 5 0 +EditAction 1475845919232 Spreadsheet.java 2404 3 5 0 +EditAction 1475845935222 SpreadsheetTest.java 578 4 8 4 +UnitTestCaseAction 1475845937737 SpreadsheetTest.java FAIL +UnitTestSessionAction 1475845937737 SpreadsheetTest.java FAIL +EditAction 1475845991869 Spreadsheet.java 2435 3 5 0 +CompilationAction 1475845992088 Spreadsheet.java +CompilationAction 1475846006705 Spreadsheet.java +UnitTestCaseAction 1475846008471 SpreadsheetTest.java FAIL +UnitTestSessionAction 1475846008471 SpreadsheetTest.java FAIL +EditAction 1475846016583 Spreadsheet.java 2414 3 5 0 +UnitTestCaseAction 1475846017163 SpreadsheetTest.java FAIL +UnitTestSessionAction 1475846017163 SpreadsheetTest.java FAIL +EditAction 1475846042873 Spreadsheet.java 2416 3 5 0 +UnitTestCaseAction 1475846044935 SpreadsheetTest.java OK +UnitTestSessionAction 1475846044935 SpreadsheetTest.java OK +RefactoringAction 1475846080128 SpreadsheetTest.java ADD void test4()/2 METHOD +EditAction 1475846096883 SpreadsheetTest.java 693 5 10 5 +CompilationAction 1475846097101 SpreadsheetTest.java +EditAction 1475846100097 SpreadsheetTest.java 693 5 10 5 +UnitTestCaseAction 1475846103485 SpreadsheetTest.java OK +UnitTestSessionAction 1475846103485 SpreadsheetTest.test5 OK +EditAction 1475846250328 Spreadsheet.java 2510 3 5 0 +EditAction 1475846293555 SpreadsheetTest.java 713 5 10 5 +EditAction 1475846587444 Spreadsheet.java 2884 3 5 0 +RefactoringAction 1475846596961 SpreadsheetTest.java ADD void test5()/2 METHOD +RefactoringAction 1475846600050 SpreadsheetTest.java RENAME test5()/2=>void test6() METHOD +EditAction 1475846625572 SpreadsheetTest.java 832 6 12 6 +RefactoringAction 1475846629909 SpreadsheetTest.java RENAME test6()=>void test7() METHOD +RefactoringAction 1475846639690 SpreadsheetTest.java ADD void test5()/2 METHOD +RefactoringAction 1475846644323 SpreadsheetTest.java RENAME test5()/2=>void test6() METHOD +EditAction 1475846669221 SpreadsheetTest.java 954 7 14 7 +UnitTestCaseAction 1475846671002 SpreadsheetTest.java OK +UnitTestSessionAction 1475846671002 SpreadsheetTest.java OK +EditAction 1475847115150 Spreadsheet.java 3124 3 5 0 +EditAction 1475847372349 Spreadsheet.java 3308 3 5 0 +RefactoringAction 1475847380976 SpreadsheetTest.java ADD void test7()/2 METHOD +RefactoringAction 1475847424734 SpreadsheetTest.java RENAME test7()/2=>void test8() METHOD +EditAction 1475847463656 SpreadsheetTest.java 1066 8 16 8 +UnitTestCaseAction 1475847465313 SpreadsheetTest.java OK +UnitTestSessionAction 1475847465313 SpreadsheetTest.java OK +EditAction 1475847476841 SpreadsheetTest.java 1073 8 16 8 +UnitTestCaseAction 1475847477983 SpreadsheetTest.java FAIL +UnitTestSessionAction 1475847477983 SpreadsheetTest.java FAIL +EditAction 1475847546748 SpreadsheetTest.java 1098 8 17 8 +UnitTestCaseAction 1475847548826 SpreadsheetTest.java OK +UnitTestSessionAction 1475847548826 SpreadsheetTest.java OK +RefactoringAction 1475847665139 SpreadsheetTest.java ADD void test8()/2 METHOD +RefactoringAction 1475847669258 SpreadsheetTest.java RENAME test8()/2=>void test9() METHOD +EditAction 1475847715232 SpreadsheetTest.java 1227 9 20 9 +EditAction 1475847719304 Spreadsheet.java 3327 3 5 0 +UnitTestCaseAction 1475847720726 SpreadsheetTest.java OK +UnitTestSessionAction 1475847720726 SpreadsheetTest.java OK +EditAction 1475847755577 SpreadsheetTest.java 1234 9 20 9 +UnitTestCaseAction 1475847758247 SpreadsheetTest.java FAIL +UnitTestSessionAction 1475847758247 SpreadsheetTest.java FAIL +EditAction 1475847850397 Spreadsheet.java 3305 3 5 0 +UnitTestCaseAction 1475847852069 SpreadsheetTest.java FAIL +UnitTestSessionAction 1475847852069 SpreadsheetTest.java FAIL +EditAction 1475847880617 SpreadsheetTest.java 1234 9 20 9 +UnitTestCaseAction 1475847882303 SpreadsheetTest.java OK +UnitTestSessionAction 1475847882303 SpreadsheetTest.java OK +EditAction 1475848021237 SpreadsheetTest.java 1234 9 20 9 +EditAction 1475848024435 Spreadsheet.java 3326 3 3 0 +CompilationAction 1475848024653 Spreadsheet.java +CompilationAction 1475848039318 Spreadsheet.java +UnitTestCaseAction 1475848041021 SpreadsheetTest.java OK +UnitTestSessionAction 1475848041021 SpreadsheetTest.java OK +EditAction 1475848455795 Spreadsheet.java 3551 3 5 0 +RefactoringAction 1475848464516 SpreadsheetTest.java ADD void test9()/2 METHOD +RefactoringAction 1475848468119 SpreadsheetTest.java RENAME test9()/2=>void test10() METHOD +EditAction 1475848500068 SpreadsheetTest.java 1377 10 23 10 +UnitTestCaseAction 1475848501574 SpreadsheetTest.java OK +UnitTestSessionAction 1475848501574 SpreadsheetTest.java OK diff --git a/.besouro/20161007143530388/besouroEpisodes.txt b/.besouro/20161007143530388/besouroEpisodes.txt new file mode 100644 index 0000000..bc3286a --- /dev/null +++ b/.besouro/20161007143530388/besouroEpisodes.txt @@ -0,0 +1,43 @@ +1475841494070 test-first 3 1363 true +1475841494071 test-first 3 1363 true +1475841494072 test-first 3 1363 true +1475841494073 test-first 3 1363 true +1475841494074 test-first 3 1363 true +1475841494075 test-first 3 1363 true +1475841560450 test-addition 1 42 true +1475841560451 test-addition 1 42 true +1475841566486 regression 1 0 true +1475841633410 refactoring 2A 54 true +1475844350014 test-first 4 2693 true +1475844350015 test-first 4 2693 true +1475844350016 test-first 4 2693 true +1475844350017 test-first 4 2693 true +1475844350018 test-last 1 2693 false +1475844350019 test-last 1 2693 false +1475844350020 test-last 1 2693 false +1475844350021 test-last 1 2693 false +1475844546828 refactoring 2A 2 true +1475845352545 test-first 4 85 true +1475845352546 test-last 1 85 false +1475846044935 refactoring 2A 288 true +1475846103485 test-addition 1 23 true +1475846103486 test-addition 1 23 true +1475846671002 test-last 1 420 false +1475846671003 test-last 1 420 false +1475846671004 test-last 1 420 false +1475846671005 test-last 1 420 false +1475846671006 test-last 1 420 false +1475846671007 test-last 1 420 false +1475846671008 test-last 1 420 false +1475846671009 test-last 1 420 false +1475847465313 test-last 1 350 false +1475847465314 test-last 1 350 false +1475847465315 test-last 1 350 false +1475847465316 test-last 1 350 false +1475847548826 refactoring 1A 71 true +1475847720726 test-first 4 55 true +1475847720727 test-first 4 55 true +1475847882303 refactoring 2A 126 true +1475848041021 refactoring 2A 19 true +1475848501574 test-last 1 45 false +1475848501575 test-last 1 45 false diff --git a/.besouro/20161007143530388/disagreements.txt b/.besouro/20161007143530388/disagreements.txt new file mode 100644 index 0000000..e69de29 diff --git a/.besouro/20161007143530388/randomHeuristicEpisodes.txt b/.besouro/20161007143530388/randomHeuristicEpisodes.txt new file mode 100644 index 0000000..19eed9b --- /dev/null +++ b/.besouro/20161007143530388/randomHeuristicEpisodes.txt @@ -0,0 +1,16 @@ +1475841494070 test-first 3 1363 true +1475841560450 test-addition 1 42 true +1475841566486 regression 1 0 false +1475841633410 refactoring 2A 54 false +1475844350014 test-first 4 2693 true +1475844546828 refactoring 2A 2 true +1475845352545 test-first 4 85 true +1475846044935 refactoring 2A 288 true +1475846103485 test-addition 1 23 false +1475846671002 test-last 1 420 false +1475847465313 test-last 1 350 false +1475847548826 refactoring 1A 71 true +1475847720726 test-first 4 55 true +1475847882303 refactoring 2A 126 false +1475848041021 refactoring 2A 19 true +1475848501574 test-last 1 45 false diff --git a/.besouro/20161007143530388/userComments.txt b/.besouro/20161007143530388/userComments.txt new file mode 100644 index 0000000..e69de29 diff --git a/.besouro/20161007143530388/zorroEpisodes.txt b/.besouro/20161007143530388/zorroEpisodes.txt new file mode 100644 index 0000000..0da220d --- /dev/null +++ b/.besouro/20161007143530388/zorroEpisodes.txt @@ -0,0 +1,16 @@ +1475841494070 test-first 3 1363 true +1475841560450 test-addition 1 66 true +1475841566486 regression 1 6 true +1475841633410 refactoring 2A 66 true +1475844350014 test-first 4 2716 true +1475844546828 refactoring 2A 196 true +1475845352545 test-first 4 805 true +1475846044935 refactoring 2A 692 true +1475846103485 test-addition 1 58 true +1475846671002 test-last 1 567 false +1475847465313 test-last 1 794 false +1475847548826 refactoring 1A 83 true +1475847720726 test-first 4 171 true +1475847882303 refactoring 2A 161 true +1475848041021 refactoring 2A 158 true +1475848501574 test-last 1 460 false diff --git a/.besouro/20161014142533738/actions.txt b/.besouro/20161014142533738/actions.txt new file mode 100644 index 0000000..e69de29 diff --git a/.besouro/20161014142533738/zorroEpisodes.txt b/.besouro/20161014142533738/zorroEpisodes.txt new file mode 100644 index 0000000..e69de29 diff --git a/.besouro/2016101414261064/actions.txt b/.besouro/2016101414261064/actions.txt new file mode 100644 index 0000000..e69de29 diff --git a/.besouro/2016101414261064/zorroEpisodes.txt b/.besouro/2016101414261064/zorroEpisodes.txt new file mode 100644 index 0000000..e69de29 diff --git a/bin/.gitignore b/bin/.gitignore new file mode 100644 index 0000000..1238de0 --- /dev/null +++ b/bin/.gitignore @@ -0,0 +1,3 @@ +/Spreadsheet.class +/SpreadsheetTest.class +/Spreadsheet$1.class diff --git a/bin/Spreadsheet.class b/bin/Spreadsheet.class index 92b411f..1e44009 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..d928f95 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..fa5b913 100644 --- a/src/Spreadsheet.java +++ b/src/Spreadsheet.java @@ -1,18 +1,193 @@ - +import java.util.ArrayList; public class Spreadsheet { + ArrayList cells=new ArrayList(); + static boolean error; public String get(String cell) { - // to be implemented - return null; + + return cells.get(cells.lastIndexOf(cell)+1); // 1 + } public void set(String cell, String value) { - // to be implemented + cells.add(cell); + cells.add(value); + } public String evaluate(String cell) { - // to be implemented - return null; + if (cells.get(cells.lastIndexOf(cell)+1).startsWith("0") || // starts with numbers or signs + cells.get(cells.lastIndexOf(cell)+1).startsWith("1") || + cells.get(cells.lastIndexOf(cell)+1).startsWith("2") || + cells.get(cells.lastIndexOf(cell)+1).startsWith("3") || + cells.get(cells.lastIndexOf(cell)+1).startsWith("4") || + cells.get(cells.lastIndexOf(cell)+1).startsWith("5") || + cells.get(cells.lastIndexOf(cell)+1).startsWith("6") || + cells.get(cells.lastIndexOf(cell)+1).startsWith("7") || + cells.get(cells.lastIndexOf(cell)+1).startsWith("8") || + cells.get(cells.lastIndexOf(cell)+1).startsWith("9") || + cells.get(cells.lastIndexOf(cell)+1).startsWith("-") || + cells.get(cells.lastIndexOf(cell)+1).startsWith("+")){ + + for(int i=1; i= 'A'&& ch<= 'Z')||(ch>='a' && ch<='z') + ){ + + + return "#Error"; + } + } + + + if((operation.contains("(")&& !operation.contains(")"))||(!operation.contains("(") && operation.contains(")"))){ + return "#Error"; + } + + return eval(operation); + + + } + }else{ + return cells.get(cells.lastIndexOf(cell)+1); + } + return cells.get(cells.lastIndexOf(cell)+1); + } + public static String eval(final String str) { + return new Object() { + int pos = -1, ch; + + void nextChar() { + ch = (++pos < str.length()) ? str.charAt(pos) : -1; + } + + boolean eat(int charToEat) { + while (ch == ' ') nextChar(); + if (ch == charToEat) { + nextChar(); + return true; + } + return false; + } + + String parse() { + nextChar(); + int x = parseExpression(); + if (pos < str.length()) throw new RuntimeException("Unexpected: " + (char)ch); + return Integer.toString(x); + } + + // Grammar: + // expression = term | expression `+` term | expression `-` term + // term = factor | term `*` factor | term `/` factor + // factor = `+` factor | `-` factor | `(` expression `)` + // | number | functionName factor | factor `^` factor + + int parseExpression() { + int x = parseTerm(); + for (;;) { + if (eat('+')) x += parseTerm(); // addition + else if (eat('-')) x -= parseTerm(); // subtraction + else if (eat('*')) x *= parseTerm(); + else if (eat('/')) x /= parseTerm(); + else return x; + } + } + + int parseTerm() { + if (eat('+')) return parseTerm(); // unary plus + if (eat('-')) return -parseTerm(); // unary minus + + /* int x = parseFactor(); + for (;;) { + if (eat('*')) x *= parseFactor(); // multiplication + else if (eat('/')) x /= parseFactor(); // division + else return x; + } + */ + int x; + int startPos = this.pos; + if (eat('(')) { // parentheses + x = parseExpression(); + eat(')'); + } else if ((ch >= '0' && ch <= '9') || ch == '.') { // numbers + while ((ch >= '0' && ch <= '9') || ch == '.') nextChar(); + x = Integer.parseInt(str.substring(startPos, this.pos)); + + } else { + error = true; + throw new RuntimeException("Unexpected: " + (char)ch); + } + + return x; + } + + }.parse(); } - } diff --git a/tests/SpreadsheetTest.java b/tests/SpreadsheetTest.java index 9e0936a..16176c4 100644 --- a/tests/SpreadsheetTest.java +++ b/tests/SpreadsheetTest.java @@ -1,15 +1,98 @@ import static org.junit.Assert.*; - import org.junit.Test; - public class SpreadsheetTest { - + + Spreadsheet test = new Spreadsheet(); + + @Test + public void test1() { + test.set("A1", "1"); + assertTrue(test.get("A1").equals("1")); + } + + @Test + public void test2() { + test.set("A2", "-1"); + assertTrue(test.evaluate("A2").equals("-1")); + } + @Test + public void test3() { + test.set("A3", "5A"); + assertTrue(test.evaluate("A3").equals("#Error")); + } + @Test + public void test4() { + test.set("A4", "’an animal’"); + assertTrue(test.evaluate("A4").equals("an animal")); + } + @Test + public void test5() { + test.set("A1", "’a string"); + assertTrue(test.evaluate("A1").equals("#Error")); + }@Test + public void test6() { + test.set("A5", "=’a string’"); + assertTrue(test.evaluate("A5").equals("a string")); + }@Test + public void test7() { + test.set("B1", "=’a string"); + assertTrue(test.evaluate("B1").equals("#Error")); + } + @Test + public void test8() { + test.set("A4", "wizard"); + test.set("B2", "=A4"); + assertTrue(test.evaluate("B2").equals("wizard")); + } + @Test + public void test9() { + test.set("A6", "5A"); + test.set("C6", "=A6"); + assertTrue(test.evaluate("C6").equals("#Error")); + } + @Test + public void test10() { + test.set("O6", "=P6"); + test.set("P6", "=O6"); + assertTrue(test.evaluate("P6").equals("#Circular")); + } + @Test + public void test11() { + test.set("A1", "=1+1*2"); + assertTrue(test.evaluate("A1").equals("4")); + } + @Test + public void test12(){ + test.set("A2", "=1+A1"); + assertTrue(test.evaluate("A2").equals("#Error")); + } + + @Test + public void test13(){ + test.set("A5", "=’a’&’String’"); + assertTrue(test.evaluate("A5").equals("aString")); + } + @Test + public void test14(){ + test.set("A6", "=’a&’String’"); + assertTrue(test.evaluate("A6").equals("#Error")); + } + @Test + public void test15(){ + test.set("A9", "=1+(1*2)"); + assertTrue(test.evaluate("A9").equals("3")); + } + @Test + public void test16(){ + test.set("G1", "=1+(1*2"); + assertTrue(test.evaluate("G1").equals("#Error")); + } @Test - public void test() { - fail("Not yet implemented"); - + public void test17(){ + test.set("A9", "=1 + ( 1 * 2)"); + assertEquals(test.evaluate("A9"),"3"); } -} +} \ No newline at end of file