name:
src/test/java/io/protobase/f7/spreadsheet/GeneralArrayLiteralTest.java
-rw-r--r--
5498
1package io.protobase.f7.spreadsheet;
2
3import io.protobase.f7.errors.RefException;
4import io.protobase.f7.errors.ValueException;
5import io.protobase.f7.testutils.TestExecution;
6import org.junit.Test;
7
8public class GeneralArrayLiteralTest extends TestExecution {
9 @Test
10 public void test_EmptyArrayLiteralCausesRefError() {
11 runner().addCell("Alpha", "A1", "= {}").addExpectedValue("Alpha", "A1", new RefException()).run();
12 }
13
14 @Test
15 public void test_SingleValue() {
16 runner().addCell("Alpha", "A1", "= {1}")
17 .addExpectedValue("Alpha", "A1", 1.0)
18 .run();
19 }
20
21 @Test
22 public void test_SingleValue_Nested() {
23 runner().addCell("Alpha", "A1", "= {{{{{{1}}}}}}")
24 .addExpectedValue("Alpha", "A1", 1.0)
25 .run();
26 }
27
28 @Test
29 public void test_ColumnWise_ProjectsIntoNextColumns() {
30 runner().addCell("Alpha", "A1", "= {1, 2, 3, 4}")
31 .addExpectedValue("Alpha", "A1", 1.0)
32 .addExpectedValue("Alpha", "B1", 2.0)
33 .addExpectedValue("Alpha", "C1", 3.0)
34 .addExpectedValue("Alpha", "D1", 4.0)
35 .run();
36 }
37
38 @Test
39 public void test_ColumnWise_Nested() {
40 runner().addCell("Alpha", "A1", "= {1, {2, {3, {4}}}}")
41 .addExpectedValue("Alpha", "A1", 1.0)
42 .addExpectedValue("Alpha", "B1", 2.0)
43 .addExpectedValue("Alpha", "C1", 3.0)
44 .addExpectedValue("Alpha", "D1", 4.0)
45 .run();
46 }
47
48 @Test
49 public void test_RowWise_ProjectsIntoNextRows() {
50 runner().addCell("Alpha", "A1", "= {1; 2; 3; 4}")
51 .addExpectedValue("Alpha", "A1", 1.0)
52 .addExpectedValue("Alpha", "A2", 2.0)
53 .addExpectedValue("Alpha", "A3", 3.0)
54 .addExpectedValue("Alpha", "A4", 4.0)
55 .run();
56 runner()
57 .addCell("Alpha", "A1", "= {11;9;5;3;1}")
58 .addExpectedValue("Alpha", "A1", 11.0)
59 .addExpectedValue("Alpha", "A2", 9.0)
60 .addExpectedValue("Alpha", "A3", 5.0)
61 .addExpectedValue("Alpha", "A4", 3.0)
62 .addExpectedValue("Alpha", "A5", 1.0)
63 .run();
64 }
65
66 @Test
67 public void test_RowWise_Nested() {
68 runner().addCell("Alpha", "A1", "= {1; {2; {3; {4}}}}")
69 .addExpectedValue("Alpha", "A1", 1.0)
70 .addExpectedValue("Alpha", "A2", 2.0)
71 .addExpectedValue("Alpha", "A3", 3.0)
72 .addExpectedValue("Alpha", "A4", 4.0)
73 .run();
74 runner()
75 .addCell("Alpha", "A1", "= {1;{2;{3;4}};{5}}")
76 .addExpectedValue("Alpha", "A1", 1.0)
77 .addExpectedValue("Alpha", "A2", 2.0)
78 .addExpectedValue("Alpha", "A3", 3.0)
79 .addExpectedValue("Alpha", "A4", 4.0)
80 .addExpectedValue("Alpha", "A5", 5.0)
81 .run();
82 }
83
84 @Test
85 public void test_ColumnAndRow_Row() {
86 runner().addCell("Alpha", "A1", "= {1, 2;3, 4}")
87 .addExpectedValue("Alpha", "A1", 1.0)
88 .addExpectedValue("Alpha", "B1", 2.0)
89 .addExpectedValue("Alpha", "A2", 3.0)
90 .addExpectedValue("Alpha", "B2", 4.0)
91 .run();
92 runner().addCell("Alpha", "A1", "= {1, 2, 3;4, 5, 6}")
93 .addExpectedValue("Alpha", "A1", 1.0)
94 .addExpectedValue("Alpha", "B1", 2.0)
95 .addExpectedValue("Alpha", "C1", 3.0)
96 .addExpectedValue("Alpha", "A2", 4.0)
97 .addExpectedValue("Alpha", "B2", 5.0)
98 .addExpectedValue("Alpha", "C2", 6.0)
99 .run();
100 }
101
102 @Test
103 public void test_ColumnAndRow_Column() {
104 runner().addCell("Alpha", "A1", "= {{1; 2},{3; 4}}")
105 .addExpectedValue("Alpha", "A1", 1.0)
106 .addExpectedValue("Alpha", "B1", 3.0)
107 .addExpectedValue("Alpha", "A2", 2.0)
108 .addExpectedValue("Alpha", "B2", 4.0)
109 .run();
110 runner().addCell("Alpha", "A1", "= {{{}; {}},{{}; {}}}")
111 .addExpectedValue("Alpha", "A1", new RefException())
112 .addExpectedValue("Alpha", "B1", new RefException())
113 .addExpectedValue("Alpha", "A2", new RefException())
114 .addExpectedValue("Alpha", "B2", new RefException())
115 .run();
116 runner()
117 .addCell("Alpha", "A1", "= {{{0.0, 1.0, 2.0};{0.1, 1.1, 2.1}};{{0.2, 1.2, 2.2};{0.3, 1.3, 2.3}};{{0.4, 1.4, 2.4};{0.5, 1.5, 2.5}}}")
118 .addExpectedValue("Alpha", "A1", 0.0)
119 .addExpectedValue("Alpha", "A2", 0.1)
120 .addExpectedValue("Alpha", "A3", 0.2)
121 .addExpectedValue("Alpha", "A4", 0.3)
122 .addExpectedValue("Alpha", "A5", 0.4)
123 .addExpectedValue("Alpha", "A6", 0.5)
124 .addExpectedValue("Alpha", "B1", 1.0)
125 .addExpectedValue("Alpha", "B2", 1.1)
126 .addExpectedValue("Alpha", "B3", 1.2)
127 .addExpectedValue("Alpha", "B4", 1.3)
128 .addExpectedValue("Alpha", "B5", 1.4)
129 .addExpectedValue("Alpha", "B6", 1.5)
130 .addExpectedValue("Alpha", "C1", 2.0)
131 .addExpectedValue("Alpha", "C2", 2.1)
132 .addExpectedValue("Alpha", "C3", 2.2)
133 .addExpectedValue("Alpha", "C4", 2.3)
134 .addExpectedValue("Alpha", "C5", 2.4)
135 .addExpectedValue("Alpha", "C6", 2.5)
136 .run();
137 }
138
139 @Test
140 public void test_ColumnAndRow_ErrorFromArrayDimensionMismatch() {
141 runner().addCell("Alpha", "A1", "= {1,2;3}").addExpectedValue("Alpha", "A1", new ValueException()).run();
142 runner().addCell("Alpha", "A1", "= {1,2;3,4,5}").addExpectedValue("Alpha", "A1", new ValueException()).run();
143 runner().addCell("Alpha", "A1", "= {11;9;5;3;1,2}")
144 .addExpectedValue("Alpha", "A1", new ValueException()).run();
145 runner().addCell("Alpha", "A1", "= {{};{};{},{}}")
146 .addExpectedValue("Alpha", "A1", new ValueException()).run();
147 }
148}