f7
f7 is a spreadsheet formula execution library
git clone https://git.vogt.world/f7.git
Log | Files | README.md | LICENSE.md
← All files
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}