*Bug #13655 fixed - acos([2 %nan]) and asin([2 %nan]) returned wrong results (0 inste...
[scilab.git] / scilab / modules / elementary_functions / tests / unit_tests / asin.tst
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2008 - INRIA - Pierre MARECHAL <pierre.marechal@scilab.org>
4 // Copyright (C) 2012 - Scilab Enterprises - Cedric Delamarre
5 //
6 //  This file is distributed under the same license as the Scilab package.
7 // =============================================================================
8
9 // <-- CLI SHELL MODE -->
10
11 // unit tests for asin() function (element wise coasine inverse)
12 // =============================================================================
13
14
15 // 1. Interface
16 // ============
17
18 assert_checkfalse(execstr("asin()", "errcatch") == 0);
19 assert_checkfalse(execstr("asin(1,2)", "errcatch") == 0);
20
21 // 2. Singular Values
22 // ==================
23
24 rt2 = sqrt(2);
25 rt3 = sqrt(3);
26 v   = [0 , %pi/6 , %pi/4 , %pi/3 , %pi/2    , %pi/3 , %pi/4 , %pi/6 , 0 ];
27 x   = [0 , 1/2   , rt2/2 , rt3/2 , 1        , rt3/2 , rt2/2 , 1/2   , 0 ];
28
29 y = asin(x);
30 assert_checkalmostequal(y,v);
31
32
33 // 3. Not A Number
34 // ===============
35
36 assert_checktrue(isnan(asin(%nan)));
37 assert_checktrue(isnan(asin(-%nan)));
38
39
40 // 4. Limit values
41 // ===============
42
43 assert_checkequal(imag(asin(%inf)),-%inf);
44 assert_checkequal(imag(asin(-%inf)),%inf);
45
46
47 // 5. Properties
48 // =============
49
50 A = rand(100,100);
51
52 // asin(-x) = - asin(x)
53 assert_checkalmostequal(asin(-A), -asin(A));
54
55
56 // asin(x) = acos(-x) - pi/2
57 assert_checkalmostequal(asin(A), acos(-A) - %pi / 2);
58