name:
src/test/java/io/protobase/f7/spreadsheet/GeneralUnaryPercentTest.java
-rw-r--r--
2218
1package io.protobase.f7.spreadsheet;
2
3import io.protobase.f7.errors.ParseException;
4import io.protobase.f7.testutils.TestExecution;
5import org.junit.Test;
6
7public class GeneralUnaryPercentTest extends TestExecution {
8 @Test
9 public void test_Number() {
10 runner().addCell("Alpha", "A1", "= 0%").addExpectedValue("Alpha", "A1", 0.0).run();
11 runner().addCell("Alpha", "A1", "= 1%").addExpectedValue("Alpha", "A1", 0.01).run();
12 runner().addCell("Alpha", "A1", "= 10%").addExpectedValue("Alpha", "A1", 0.1).run();
13 runner().addCell("Alpha", "A1", "= 100%").addExpectedValue("Alpha", "A1", 1.0).run();
14 runner().addCell("Alpha", "A1", "= 1000%").addExpectedValue("Alpha", "A1", 10.0).run();
15 runner().addCell("Alpha", "A1", "= 0.2318937%").addExpectedValue("Alpha", "A1", 0.002318937).run();
16 runner().addCell("Alpha", "A1", "= 10.167531%").addExpectedValue("Alpha", "A1", 0.10167531).run();
17 }
18
19 @Test
20 public void test_String() {
21 runner().addCell("Alpha", "A1", "= \"1\"%").addExpectedValue("Alpha", "A1", 0.01).run();
22 runner().addCell("Alpha", "A1", "= \"10\"%").addExpectedValue("Alpha", "A1", 0.1).run();
23 runner().addCell("Alpha", "A1", "= \"100\"%").addExpectedValue("Alpha", "A1", 1.0).run();
24 runner().addCell("Alpha", "A1", "= \"1000\"%").addExpectedValue("Alpha", "A1", 10.0).run();
25 runner().addCell("Alpha", "A1", "= \"0.2318937\"%").addExpectedValue("Alpha", "A1", 0.002318937).run();
26 runner().addCell("Alpha", "A1", "= \"10.167531\"%").addExpectedValue("Alpha", "A1", 0.10167531).run();
27 }
28
29 @Test
30 public void test_Boolean() {
31 runner().addCell("Alpha", "A1", "= TRUE%").addExpectedValue("Alpha", "A1", 0.01).run();
32 runner().addCell("Alpha", "A1", "= FALSE%").addExpectedValue("Alpha", "A1", 0.0).run();
33 }
34
35 @Test
36 public void test_ArrayLiteral() {
37 runner().addCell("Alpha", "A1", "= {1, 2, 3}%").addExpectedValue("Alpha", "A1", 0.01).run();
38 }
39
40 @Test
41 public void test_MultiplePercentReturnsParseError() {
42 // TODO/HACK: Multiple percent postfixes are allowed in Excel, but not in Google Sheets. Another one for the books.
43 runner().addCell("Alpha", "A1", "= 1%%").addExpectedValue("Alpha", "A1", new ParseException()).run();
44 }
45}