ca1351da2e2417e0956994436a32cf8e5e665e9f
[scilab.git] / scilab / modules / elementary_functions / tests / unit_tests / nthroot.dia.ref
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2012 - DIGITEO - Adeline CARNIS
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // =============================================================================
7 // <-- ENGLISH IMPOSED -->
8 // <-- CLI SHELL MODE -->
9 // unit tests for nthroot() function 
10 // =============================================================================
11 // Run with test_run('elementary_functions', 'nthroot', ['no_check_error_output'])
12 // 1. Interface
13 // ============
14 assert_checkfalse(execstr("nthroot()",          "errcatch") == 0);
15 lasterror(execstr("10000","errcatch") == 0)
16  ans  =
17  
18  nthroot: Wrong number of input argument(s): 2 expected.   
19 assert_checkfalse(execstr("nthroot(1)",         "errcatch") == 0);
20 lasterror(execstr("10000","errcatch") == 0)
21  ans  =
22  
23  nthroot: Wrong number of input argument(s): 2 expected.   
24 assert_checkfalse(execstr("nthroot(%i, 1)",    "errcatch") == 0);
25 lasterror(execstr("10000","errcatch") == 0)
26  ans  =
27  
28  nthroot: Wrong type for input argument(s) #2: Real arguments expected. 
29 assert_checkfalse(execstr("nthroot(%t, 1)",    "errcatch") == 0);
30 lasterror(execstr("10000","errcatch") == 0)
31  ans  =
32  
33  nthroot: Wrong type for input argument(s) #2: Real arguments expected. 
34 assert_checkfalse(execstr("nthroot(-2, %nan)", "errcatch") == 0);
35 lasterror(execstr("10000","errcatch") == 0)
36  ans  =
37  
38  nthroot: If x is negative, then n must contain odd integers only.   
39 assert_checkfalse(execstr("nthroot(-2, %eps)", "errcatch") == 0);
40 lasterror(execstr("10000","errcatch") == 0)
41  ans  =
42  
43  nthroot: If x is negative, then n must contain odd integers only.   
44 assert_checkfalse(execstr("nthroot(-3, 6)",     "errcatch") == 0);
45 lasterror(execstr("10000","errcatch") == 0)
46  ans  =
47  
48  nthroot: If x is negative, then n must contain odd integers only.   
49 assert_checkfalse(execstr("nthroot(-3, 0)",     "errcatch") == 0);
50 lasterror(execstr("10000","errcatch") == 0)
51  ans  =
52  
53  nthroot: If x is negative, then n must contain odd integers only.   
54 assert_checkfalse(execstr("nthroot(-%inf, -2)", "errcatch") == 0);
55 lasterror(execstr("10000","errcatch") == 0)
56  ans  =
57  
58  nthroot: If x is negative, then n must contain odd integers only.   
59 assert_checkfalse(execstr("nthroot(-2, -2)",     "errcatch") == 0);
60 lasterror(execstr("10000","errcatch") == 0)
61  ans  =
62  
63  nthroot: If x is negative, then n must contain odd integers only.   
64 assert_checkfalse(execstr("nthroot(-2, 2)",      "errcatch") == 0);
65 lasterror(execstr("10000","errcatch") == 0)
66  ans  =
67  
68  nthroot: If x is negative, then n must contain odd integers only.   
69 assert_checktrue(nthroot(3, []) == 3);
70 // 2. Singular Values
71 // ==================
72 assert_checkalmostequal(nthroot(2   ,-2), 0.7071068, 1.e-5);
73 assert_checkalmostequal(nthroot(2   , 2), 1.4142136, 1.e-5);
74 assert_checkalmostequal(nthroot(%eps, 3), 0.0000061, 1.e-2);
75 assert_checkalmostequal(nthroot([1 2], 2)    , [1 1.4142136], 1.e-5);
76 assert_checkalmostequal(nthroot([1 2], [2 2]), [1 1.4142136], 1.e-5);
77 assert_checkequal(nthroot(-2,  %inf), -1);
78 assert_checkequal(nthroot( 3 , %inf), 1);
79 assert_checkequal(nthroot( 3 ,-%inf), 1);
80 assert_checkequal(nthroot(-3,  %inf), -1);
81 assert_checkequal(nthroot( 3 , %nan), %nan);
82 assert_checkequal(nthroot( 3 ,-%nan), %nan);
83 assert_checkequal(nthroot( 3 , %eps), %inf);
84 assert_checkequal(nthroot( 3 ,-%eps), 0);
85 assert_checkequal(nthroot( 3 , 0), %inf);
86 assert_checkequal(nthroot( 1 , 0), %nan);
87 assert_checkequal(nthroot([1 2], %inf), [1 1]);
88 assert_checkequal(nthroot([1 2], %nan), [%nan %nan]);
89 assert_checkequal(nthroot([1 2], %eps), [1 %inf]);
90 assert_checkequal(nthroot([1 2], 0),    [%nan %inf]);
91 assert_checkequal(nthroot([1 2], [%inf %inf]), [1 1]);
92 assert_checkequal(nthroot([1 2], [%nan %nan]), [%nan %nan]);
93 assert_checkequal(nthroot([1 2], [%eps %eps]), [1 %inf]);
94 assert_checkequal(nthroot([1 2], [0 0]),       [%nan %inf]);
95 assert_checkequal(nthroot(0, 0),    0);
96 assert_checkequal(nthroot(0, 7),    0);
97 assert_checkequal(nthroot(0,-7),    %inf);
98 assert_checkequal(nthroot(0, %inf), 1);
99 assert_checkequal(nthroot(0,-%inf), 1);
100 assert_checkequal(nthroot(0, %nan), %nan);
101 assert_checkequal(nthroot(0, %eps), 0);
102 assert_checkequal(nthroot(0,-%eps), %inf);
103 assert_checkequal(nthroot([0;-1], %inf), [1; -1]);
104 assert_checkequal(nthroot([0; 1], 0),    [0; %nan]);
105 assert_checkequal(nthroot([0;-1], [%inf; %inf]), [1; -1]);
106 assert_checkequal(nthroot([0; 1], [0; 0]),       [0; %nan]);
107 // 3. Empty Matrix
108 //==================
109 assert_checkequal(nthroot([],-2),    []);
110 assert_checkequal(nthroot([], 3),    []);
111 assert_checkequal(nthroot([], %nan), []);
112 assert_checkequal(nthroot([], %inf), []);
113 assert_checkequal(nthroot([],-%inf), []);
114 assert_checkequal(nthroot([], %eps), []);
115 assert_checkequal(nthroot([],-%eps), []);
116 assert_checkequal(nthroot([], 0),    []);
117 // 4. Limit Values
118 // ================
119 assert_checkequal(nthroot(-%inf,-7),    0);
120 assert_checkequal(nthroot(-%inf, 7),   -%inf);
121 assert_checkequal(nthroot( %inf,-7),    0);
122 assert_checkequal(nthroot( %inf, 7),    %inf);
123 assert_checkequal(nthroot( %inf, %inf), 1);
124 assert_checkequal(nthroot( %inf,-%inf), 1);
125 assert_checkequal(nthroot(-%inf, %inf), -1);
126 assert_checkequal(nthroot(-%inf,-%inf), -1);
127 assert_checkequal(nthroot( %inf, %inf), 1);
128 assert_checkequal(nthroot( %inf, %nan), %nan);
129 assert_checkequal(nthroot( %inf, %eps), %inf);
130 assert_checkequal(nthroot( %inf,-%eps), 0);
131 assert_checkequal(nthroot( %inf, 0),    %inf);
132 assert_checkequal(nthroot([%inf; %nan], 3),    [%inf; %nan]);
133 assert_checkequal(nthroot([%inf; %nan], %nan), [%nan; %nan]);
134 assert_checkequal(nthroot([%inf; %nan], 0),    [%inf; %nan]);
135 assert_checkequal(nthroot([%inf; %nan], [3; 3]),       [%inf; %nan]);
136 assert_checkequal(nthroot([%inf; %nan], [%nan; %nan]), [%nan; %nan]);
137 assert_checkequal(nthroot([%inf; %nan], [0; 0]),       [%inf; %nan]);
138 assert_checkequal(nthroot([%inf; %eps], %eps), [%inf; 0]);
139 assert_checkequal(nthroot([%inf; %eps], %nan), [%nan; %nan]);
140 assert_checkequal(nthroot([%inf; 1],    0),    [%inf; %nan]);
141 assert_checkequal(nthroot([%inf; %eps], [%eps; %eps]), [%inf; 0]);
142 assert_checkequal(nthroot([%inf; %eps], [%nan; %nan]), [%nan; %nan]);
143 assert_checkequal(nthroot([%inf; 1],    [0; 0]),       [%inf; %nan]);
144 // 5. Not A Number
145 // =================
146 assert_checkequal(nthroot(%nan,-2),   %nan);
147 assert_checkequal(nthroot(%nan, %inf), %nan);
148 assert_checkequal(nthroot(%nan,-%inf), %nan);
149 assert_checkequal(nthroot(%nan,-%eps), %nan);
150 assert_checkequal(nthroot(%nan, 0),    %nan);
151 // 6. X = %eps
152 // ===========
153 assert_checkequal(nthroot( %eps, %inf), 1);
154 assert_checkequal(nthroot( %eps,-%inf), 1);
155 assert_checkequal(nthroot(-%eps, %inf),-1);
156 assert_checkequal(nthroot(-%eps,-%inf),-1);
157 assert_checkequal(nthroot( %eps, %inf), 1);
158 assert_checkequal(nthroot( %eps, %nan), %nan);
159 assert_checkequal(nthroot( %eps, %eps), 0);
160 assert_checkequal(nthroot( %eps,-%eps), %inf);
161 assert_checkequal(nthroot( %eps, 0),    0);