name:
src/test/java/io/protobase/f7/spreadsheet/GeneralExponentTest.java
-rw-r--r--
3761
1package io.protobase.f7.spreadsheet;
2
3import io.protobase.f7.errors.NumException;
4import io.protobase.f7.testutils.TestExecution;
5import org.junit.Test;
6
7public class GeneralExponentTest extends TestExecution {
8 @Test
9 public void test_Numbers_PositiveNumeratorPositiveExponent() {
10 runner().addCell("Alpha", "A1", "= 3^5").addExpectedValue("Alpha", "A1", 243.0).run();
11 runner().addCell("Alpha", "A1", "= 4^5").addExpectedValue("Alpha", "A1", 1024.0).run();
12 runner().addCell("Alpha", "A1", "= 1^1").addExpectedValue("Alpha", "A1", 1.0).run();
13 runner().addCell("Alpha", "A1", "= 1^5").addExpectedValue("Alpha", "A1", 1.0).run();
14 runner().addCell("Alpha", "A1", "= 2^0").addExpectedValue("Alpha", "A1", 1.0).run();
15 runner().addCell("Alpha", "A1", "= 0^10").addExpectedValue("Alpha", "A1", 0.0).run();
16 }
17
18 @Test
19 public void test_Numbers_PositiveNumeratorNegativeExponent() {
20 runner().addCell("Alpha", "A1", "= 3^-5").addExpectedValue("Alpha", "A1", 0.00411522633744856).run();
21 runner().addCell("Alpha", "A1", "= 4^-5").addExpectedValue("Alpha", "A1", 9.765625E-4).run();
22 runner().addCell("Alpha", "A1", "= 1^-1").addExpectedValue("Alpha", "A1", 1.0).run();
23 runner().addCell("Alpha", "A1", "= 1^-5").addExpectedValue("Alpha", "A1", 1.0).run();
24 runner().addCell("Alpha", "A1", "= 2^-0").addExpectedValue("Alpha", "A1", 1.0).run();
25 // TODO/HACK: This is different in Excel and Google Sheets.
26 runner().addCell("Alpha", "A1", "= 0^-10").addExpectedValue("Alpha", "A1", new NumException()).run();
27 }
28
29 @Test
30 public void test_Numbers_NegativeNumeratorNegativeExponent() {
31 runner().addCell("Alpha", "A1", "= -3^-1").addExpectedValue("Alpha", "A1", -0.3333333333333333).run();
32 runner().addCell("Alpha", "A1", "= -3^-2").addExpectedValue("Alpha", "A1", 0.1111111111111111).run();
33 runner().addCell("Alpha", "A1", "= -3^-3").addExpectedValue("Alpha", "A1", -0.037037037037037035).run();
34 runner().addCell("Alpha", "A1", "= -2^-3").addExpectedValue("Alpha", "A1", -0.125).run();
35 runner().addCell("Alpha", "A1", "= -1^-3").addExpectedValue("Alpha", "A1", -1.0).run();
36 runner().addCell("Alpha", "A1", "= -1^-2").addExpectedValue("Alpha", "A1", 1.0).run();
37 }
38
39 @Test
40 public void test_Numbers_NegativeNumeratorPositiveExponent() {
41 runner().addCell("Alpha", "A1", "= -3^1").addExpectedValue("Alpha", "A1", -3.0).run();
42 runner().addCell("Alpha", "A1", "= -3^2").addExpectedValue("Alpha", "A1", 9.0).run();
43 runner().addCell("Alpha", "A1", "= -3^3").addExpectedValue("Alpha", "A1", -27.0).run();
44 runner().addCell("Alpha", "A1", "= -2^3").addExpectedValue("Alpha", "A1", -8.0).run();
45 runner().addCell("Alpha", "A1", "= -1^3").addExpectedValue("Alpha", "A1", -1.0).run();
46 runner().addCell("Alpha", "A1", "= -1^2").addExpectedValue("Alpha", "A1", 1.0).run();
47 }
48
49 @Test
50 public void test_Order() {
51 runner().addCell("Alpha", "A1", "= 2 ^ 3 ^ 4").addExpectedValue("Alpha", "A1", 4096.0).run();
52 runner().addCell("Alpha", "A1", "= 3 ^ 2 ^ 4").addExpectedValue("Alpha", "A1", 6561.0).run();
53 runner().addCell("Alpha", "A1", "= 4 ^ 2 ^ 3").addExpectedValue("Alpha", "A1", 4096.0).run();
54 }
55
56 @Test
57 public void test_Boolean() {
58 runner().addCell("Alpha", "A1", "= 9 ^ TRUE").addExpectedValue("Alpha", "A1", 9.0).run();
59 runner().addCell("Alpha", "A1", "= 9 ^ FALSE").addExpectedValue("Alpha", "A1", 1.0).run();
60 }
61
62 @Test
63 public void test_String() {
64 runner().addCell("Alpha", "A1", "= 2 ^ \"3\"").addExpectedValue("Alpha", "A1", 8.0).run();
65 runner().addCell("Alpha", "A1", "= 2 ^ \"3e1\"").addExpectedValue("Alpha", "A1", 1.073741824E9).run();
66 runner().addCell("Alpha", "A1", "= 2 ^ \"2\"").addExpectedValue("Alpha", "A1", 4.0).run();
67 }
68}