spreadsheet
typeScript/javascript spreadsheet parser, with formulas.
git clone https://git.vogt.world/spreadsheet.git
Log | Files | README.md
← Commit log
commit
message
Formulas.ASIN written and tested.
author
Ben Vogt <[email protected]>
date
2017-01-16 23:48:39
stats
2 file(s) changed, 30 insertions(+), 0 deletions(-)
files
src/RawFormulas.ts
tests/FormulasTest.ts
 1diff --git a/src/RawFormulas.ts b/src/RawFormulas.ts
 2index e9172dc..fbcefe1 100644
 3--- a/src/RawFormulas.ts
 4+++ b/src/RawFormulas.ts
 5@@ -228,7 +228,24 @@ var ARABIC = function (text?) {
 6   return r;
 7 };
 8 
 9-var ASIN = Formula["ASIN"];
10+/**
11+ * Returns the inverse sine of a value, in radians.
12+ * @param value The value for which to calculate the inverse sine. Must be between -1 and 1, inclusive.
13+ * @returns {number} inverse sine of input value
14+ * @constructor
15+ */
16+var ASIN = function (value?) {
17+  checkArgumentsLength(arguments, 1);
18+  value = valueToNumber(value);
19+  if (value === -1) {
20+    return Math.PI;
21+  } else if (value > 1 || value < -1) {
22+    throw new CellError(ERRORS.NUM_ERROR, "Function ____ parameter 1 value is " + value + ". Valid values are between -1 and 1 inclusive.");
23+  }
24+  return Math.asin(value);
25+};
26+
27+
28 var ASINH = Formula["ASINH"];
29 var ATAN = Formula["ATAN"];
30 var ATAN2 = function (x, y) {
31diff --git a/tests/FormulasTest.ts b/tests/FormulasTest.ts
32index 0b3f409..9ad9499 100644
33--- a/tests/FormulasTest.ts
34+++ b/tests/FormulasTest.ts
35@@ -120,7 +120,18 @@ catchAndAssertEquals(function() {
36   return ARABIC(10);
37 }, ERRORS.VALUE_ERROR);
38 
39-assertEquals(ASIN(0.1), 0.1001674211615598);
40+// Test ASIN
41+assertEquals(ASIN(0), 0);
42+assertEquals(ASIN(1), 1.5707963267948966);
43+assertEquals(ASIN("1"), 1.5707963267948966);
44+assertEquals(ASIN(false), 0);
45+catchAndAssertEquals(function() {
46+  return ASIN(2);
47+}, ERRORS.NUM_ERROR);
48+catchAndAssertEquals(function() {
49+  return ASIN("str");
50+}, ERRORS.VALUE_ERROR);
51+
52 
53 assertEquals(ASINH(0.1), 0.09983407889920758);
54