diff --git a/exercises/complex-numbers/complex_numbers.example b/exercises/complex-numbers/complex_numbers.example index 6462af6c..925f8808 100644 --- a/exercises/complex-numbers/complex_numbers.example +++ b/exercises/complex-numbers/complex_numbers.example @@ -12,3 +12,6 @@ mul((Ra,Ia), (Rb,Ib), (Rr,Ir)) :- div((Ra,Ia), (Rb,Ib), (Rr,Ir)) :- Y is (Rb^2 + Ib^2), Rr is (Ra*Rb + Ia*Ib)/Y, Ir is (Ia*Rb - Ra*Ib)/Y. + +exponent((R,I), (Rr,Ir)) :- + mul((e**R,0), (cos(I),sin(I)), (Rr,Ir)). diff --git a/exercises/complex-numbers/complex_numbers.pl b/exercises/complex-numbers/complex_numbers.pl index f08611c2..198981e7 100644 --- a/exercises/complex-numbers/complex_numbers.pl +++ b/exercises/complex-numbers/complex_numbers.pl @@ -9,3 +9,5 @@ mul(false). div(false). + +exponent(false). diff --git a/exercises/complex-numbers/complex_numbers_tests.plt b/exercises/complex-numbers/complex_numbers_tests.plt index 69ea2b7a..d70fb58c 100644 --- a/exercises/complex-numbers/complex_numbers_tests.plt +++ b/exercises/complex-numbers/complex_numbers_tests.plt @@ -120,3 +120,20 @@ pending :- conjugate((1,1), (1,-1)). :- end_tests(conjugate). + + +:- begin_tests(exponent). + + test(eulers_identity, condition(pending)) :- + exponent((0,pi), (X,Y)), X > -1.001, X < -0.999, Y > -0.001, Y< 0.001. + + test(exponential_of_zero, condition(pending)) :- + exponent((0,0), (X,Y)), X > 0.999, X < 1.001, Y > -0.001, Y < 0.001. + + test(exponential_of_purely_real_number, condition(pending)) :- + exponent((1,0), (X,Y)), X > e - 0.001, X < e + 0.001, Y > -0.001, Y < 0.001. + + test(exponential_of_number_with_real_and_imaginary_part, condition(pending)) :- + exponent((log(2),pi), (X,Y)), X > -2.001, X < -1.999, Y > -0.001, Y < 0.001. + +:- end_tests(exponent).