name:
src/test/java/io/protobase/f7/spreadsheet/GeneralTypeCastingTest.java
-rw-r--r--
6326
1package io.protobase.f7.spreadsheet;
2
3import io.protobase.f7.errors.RefException;
4import io.protobase.f7.testutils.TestExecution;
5import org.junit.Test;
6
7public class GeneralTypeCastingTest extends TestExecution {
8 @Test
9 public void test_StringToNumber_Integer() {
10 runner().addCell("Alpha", "A1", "= \"0\" * 1").addExpectedValue("Alpha", "A1", 0.0).run();
11 runner().addCell("Alpha", "A1", "= \"1\" * 1").addExpectedValue("Alpha", "A1", 1.0).run();
12 runner().addCell("Alpha", "A1", "= \"2738281\" * 1").addExpectedValue("Alpha", "A1", 2738281.0).run();
13 runner().addCell("Alpha", "A1", "= \"0001776\" * 1").addExpectedValue("Alpha", "A1", 1776.0).run();
14 }
15
16 @Test
17 public void test_StringToNumber_Decimal() {
18 runner().addCell("Alpha", "A1", "= \"0.0\" * 1").addExpectedValue("Alpha", "A1", 0.0).run();
19 runner().addCell("Alpha", "A1", "= \"0.187328\" * 1").addExpectedValue("Alpha", "A1", 0.187328).run();
20 runner().addCell("Alpha", "A1", "= \"38133.09128901\" * 1").addExpectedValue("Alpha", "A1", 38133.09128901).run();
21 runner().addCell("Alpha", "A1", "= \"4.00000000000001\" * 1").addExpectedValue("Alpha", "A1", 4.00000000000001).run();
22 runner().addCell("Alpha", "A1", "= \"33.0000000000000\" * 1").addExpectedValue("Alpha", "A1", 33.0).run();
23 }
24
25 @Test
26 public void test_StringToNumber_InferredPositiveScientificNotation() {
27 runner().addCell("Alpha", "A1", "= \"12387e0\" * 1").addExpectedValue("Alpha", "A1", 12387.0).run();
28 runner().addCell("Alpha", "A1", "= \"12387e1\" * 1").addExpectedValue("Alpha", "A1", 123870.0).run();
29 runner().addCell("Alpha", "A1", "= \"1.0e4\" * 1").addExpectedValue("Alpha", "A1", 10000.0).run();
30 runner().addCell("Alpha", "A1", "= \"0.0009e4\" * 1").addExpectedValue("Alpha", "A1", 9.0).run();
31 }
32
33 @Test
34 public void test_StringToNumber_PositiveScientificNotation() {
35 runner().addCell("Alpha", "A1", "= \"12387e+0\" * 1").addExpectedValue("Alpha", "A1", 12387.0).run();
36 runner().addCell("Alpha", "A1", "= \"12387e+1\" * 1").addExpectedValue("Alpha", "A1", 123870.0).run();
37 runner().addCell("Alpha", "A1", "= \"1.0e+4\" * 1").addExpectedValue("Alpha", "A1", 10000.0).run();
38 runner().addCell("Alpha", "A1", "= \"0.0009e+4\" * 1").addExpectedValue("Alpha", "A1", 9.0).run();
39 }
40
41 @Test
42 public void test_StringToNumber_NegativeScientificNotation() {
43 runner().addCell("Alpha", "A1", "= \"12387e-0\" * 1").addExpectedValue("Alpha", "A1", 12387e-0).run();
44 runner().addCell("Alpha", "A1", "= \"12387e-1\" * 1").addExpectedValue("Alpha", "A1", 12387e-1).run();
45 runner().addCell("Alpha", "A1", "= \"1.0e-4\" * 1").addExpectedValue("Alpha", "A1", 1.0e-4).run();
46 runner().addCell("Alpha", "A1", "= \"0.0009e-4\" * 1").addExpectedValue("Alpha", "A1", 0.0009e-4).run();
47 }
48
49 @Test
50 public void test_BooleanToNumber() {
51 runner().addCell("Alpha", "A1", "= FALSE * 1").addExpectedValue("Alpha", "A1", 0.0).run();
52 runner().addCell("Alpha", "A1", "= TRUE * 1").addExpectedValue("Alpha", "A1", 1.0).run();
53 }
54
55 @Test
56 public void test_NumberToString_Integer() {
57 runner().addCell("Alpha", "A1", "= 0 & \"\"").addExpectedValue("Alpha", "A1", "0").run();
58 runner().addCell("Alpha", "A1", "= 1 & \"\"").addExpectedValue("Alpha", "A1", "1").run();
59 runner().addCell("Alpha", "A1", "= 2738281 & \"\"").addExpectedValue("Alpha", "A1", "2738281").run();
60 runner().addCell("Alpha", "A1", "= 0001776 & \"\"").addExpectedValue("Alpha", "A1", "1776").run();
61 }
62
63 @Test
64 public void test_NumberToString_Decimal() {
65 runner().addCell("Alpha", "A1", "= 0.0 & \"\"").addExpectedValue("Alpha", "A1", "0").run();
66 runner().addCell("Alpha", "A1", "= 0.187328 & \"\"").addExpectedValue("Alpha", "A1", "0.187328").run();
67 runner().addCell("Alpha", "A1", "= 38133.09128901 & \"\"").addExpectedValue("Alpha", "A1", "38133.09128901").run();
68 runner().addCell("Alpha", "A1", "= 4.00000000000001 & \"\"").addExpectedValue("Alpha", "A1", "4.00000000000001").run();
69 runner().addCell("Alpha", "A1", "= 33.0000000000000 & \"\"").addExpectedValue("Alpha", "A1", "33").run();
70 }
71
72 @Test
73 public void test_NumberToString_PositiveScientificNotation() {
74 runner().addCell("Alpha", "A1", "= 12387183718789125223e0 & \"\"").addExpectedValue("Alpha", "A1", "12387183718789126000").run();
75 runner().addCell("Alpha", "A1", "= 31287e42 & \"\"")
76 .addExpectedValue("Alpha", "A1", "31287000000000000000000000000000000000000000000").run();
77 runner().addCell("Alpha", "A1", "= 1.0e4 & \"\"").addExpectedValue("Alpha", "A1", "10000").run();
78 runner().addCell("Alpha", "A1", "= 0.0009e4 & \"\"").addExpectedValue("Alpha", "A1", "9").run();
79 }
80
81 @Test
82 public void test_NumberToBoolean_False() {
83 runner().addCell("Alpha", "A1", "= IF(0, TRUE, FALSE)").addExpectedValue("Alpha", "A1", false).run();
84 }
85
86 @Test
87 public void test_NumberToBoolean_True() {
88 runner().addCell("Alpha", "A1", "= IF(0.00001, TRUE, FALSE)").addExpectedValue("Alpha", "A1", true).run();
89 runner().addCell("Alpha", "A1", "= IF(1, TRUE, FALSE)").addExpectedValue("Alpha", "A1", true).run();
90 runner().addCell("Alpha", "A1", "= IF(2, TRUE, FALSE)").addExpectedValue("Alpha", "A1", true).run();
91 runner().addCell("Alpha", "A1", "= IF(-823178, TRUE, FALSE)").addExpectedValue("Alpha", "A1", true).run();
92 runner().addCell("Alpha", "A1", "= IF(31287e42, TRUE, FALSE)").addExpectedValue("Alpha", "A1", true).run();
93 }
94
95 @Test
96 public void test_ListToNumber() {
97 runner().addCell("Alpha", "A1", "= {2, 4, 8} * 1").addExpectedValue("Alpha", "A1", 2.0).run();
98 runner().addCell("Alpha", "A1", "= {2, \"Nope.\"} * 1").addExpectedValue("Alpha", "A1", 2.0).run();
99 runner().addCell("Alpha", "A1", "= {} * 1").addExpectedValue("Alpha", "A1", new RefException()).run();
100 }
101
102 @Test
103 public void test_ListToBoolean() {
104 runner().addCell("Alpha", "A1", "= IF({2, 4, 8}, TRUE, FALSE)").addExpectedValue("Alpha", "A1", true).run();
105 runner().addCell("Alpha", "A1", "= IF({2, \"Nope.\"}, TRUE, FALSE)").addExpectedValue("Alpha", "A1", true).run();
106 runner().addCell("Alpha", "A1", "= IF({TRUE, \"Nope.\"}, TRUE, FALSE)").addExpectedValue("Alpha", "A1", true).run();
107 runner().addCell("Alpha", "A1", "= IF({}, TRUE, FALSE)").addExpectedValue("Alpha", "A1", new RefException()).run();
108 }
109}