Browse Source

added test for sin of value beyond two pi as well as corresponding functionality

remotes/origin/feature/feature-trigonometry
fdai7764 11 months ago
parent
commit
c5793cab02
  1. 2
      src/main/py/trigonometry.py
  2. 3
      src/test/py/test_trigonometry.py

2
src/main/py/trigonometry.py

@ -15,6 +15,8 @@ def rad2deg(radNumber):
return (radNumber * 180) / math.pi return (radNumber * 180) / math.pi
def sin_approx_bhaskara(radNumber): def sin_approx_bhaskara(radNumber):
while(radNumber > 2 * math.pi):
radNumber -= 2 * math.pi
shallFlipTheResult = 0 #the bhaskara function can only be used between zero and pi. For the rest of the sin period I simply mirrored the first arch of the curve to match the actual sine wave shallFlipTheResult = 0 #the bhaskara function can only be used between zero and pi. For the rest of the sin period I simply mirrored the first arch of the curve to match the actual sine wave
if math.pi < radNumber < 2 * math.pi: if math.pi < radNumber < 2 * math.pi:

3
src/test/py/test_trigonometry.py

@ -47,6 +47,9 @@ class MyTestCase(unittest.TestCase):
def test_sin_1point5_pi_should_be_negative_1(self): def test_sin_1point5_pi_should_be_negative_1(self):
self.assertEqual(sin_approx_bhaskara(1.5*math.pi), -1) self.assertEqual(sin_approx_bhaskara(1.5*math.pi), -1)
def test_sin_2point5_pi_should_be_1(self):
self.assertEqual(sin_approx_bhaskara(2.5*math.pi), 1)
if __name__ == '__main__': if __name__ == '__main__':
unittest.main() unittest.main()
Loading…
Cancel
Save