Skip to content

Commit f696707

Browse files
committed
Fix power and hyp.
1 parent 61463fa commit f696707

File tree

2 files changed

+23
-14
lines changed

2 files changed

+23
-14
lines changed

src/power/power.cpp

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,8 +92,16 @@ namespace steppable::__internals::arithmetic
9292
return "0";
9393
}
9494

95-
auto numberNoTrailingZeros = removeTrailingZeros(number);
96-
size_t numberTrailingZeros = number.length() - numberNoTrailingZeros.length();
95+
auto numberNoTrailingZeros = standardizeNumber(number);
96+
size_t numberTrailingZeros = 0;
97+
if (isInteger(number))
98+
{
99+
number = splitNumber(number, "0", false, false, true).splitNumberArray[0];
100+
numberNoTrailingZeros = removeTrailingZeros(number);
101+
numberTrailingZeros = number.length() - numberNoTrailingZeros.length();
102+
}
103+
else
104+
numberTrailingZeros = 0;
97105
// Remove the zeros to reduce the workload.
98106
number = numberNoTrailingZeros;
99107

tests/testHyp.cpp

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -63,24 +63,25 @@ SECTION_END()
6363

6464
// TODO: FIX THESE
6565
// - Incorrect return values.
66-
// SECTION(Test inverse hyperbolic cosine)
67-
// _.assertIsEqual(acosh("1.25", 4), "0.6931");
68-
// SECTION_END()
66+
SECTION(Test inverse hyperbolic cosine)
67+
_.assertIsEqual(acosh("1.25", 4), "0.6931");
68+
SECTION_END()
6969

70-
// SECTION(Test inverse hyperbolic tangent)
71-
// _.assertIsEqual(atanh("0.75", 4), "0.9730");
72-
// SECTION_END()
70+
SECTION(Test inverse hyperbolic tangent)
71+
_.assertIsEqual(atanh("0.75", 4), "0.9725");
72+
SECTION_END()
7373

74-
// SECTION(Test inverse hyperbolic cotangent)
75-
// _.assertIsEqual(acoth("1.25", 4), "1.0986");
76-
// SECTION_END()
74+
SECTION(Test inverse hyperbolic cotangent)
75+
_.assertIsEqual(acoth("5", 4), "0.2028");
76+
_.assertIsEqual(acoth("1.5", 4), "0.8047");
77+
SECTION_END()
7778

7879
SECTION(Test inverse hyperbolic secant)
7980
_.assertIsEqual(asech("0.75", 4), "0.7953");
8081
SECTION_END()
8182

82-
// SECTION(Test inverse hyperbolic cosecant)
83-
// _.assertIsEqual(acsch("0.25", 4), "2.0947");
84-
// SECTION_END()
83+
SECTION(Test inverse hyperbolic cosecant)
84+
_.assertIsEqual(acsch("0.25", 4), "2.0929");
85+
SECTION_END()
8586

8687
TEST_END()

0 commit comments

Comments
 (0)