Add nthroot function
[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 // <-- JVM NOT MANDATORY -->
8 // unit tests for nthroot() function 
9 // =============================================================================
10 // 1. Interface
11 // ============
12 assert_checkfalse(execstr("nthroot()"   ,"errcatch") == 0);
13 lasterror(execstr("10000","errcatch") == 0)
14  ans  =
15  
16  nthroot : Nombre erroné d'argument(s) d'entrée : 2 attendu.   
17 assert_checkfalse(execstr("nthroot(1)","errcatch") == 0);
18 lasterror(execstr("10000","errcatch") == 0)
19  ans  =
20  
21  nthroot : Nombre erroné d'argument(s) d'entrée : 2 attendu.   
22 assert_checkfalse(execstr("nthroot(%i,1)","errcatch") == 0);
23 lasterror(execstr("10000","errcatch") == 0)
24  ans  =
25  
26  nthroot: Wrong type for input argument(s) 2: real arguments expected.  
27 assert_checkfalse(execstr("nthroot(%t,1)","errcatch") == 0);
28 lasterror(execstr("10000","errcatch") == 0)
29  ans  =
30  
31  nthroot: Wrong type for input argument(s) 2: real arguments expected.  
32 assert_checkfalse(execstr("nthroot(3,[])","errcatch") == 0);
33 lasterror(execstr("10000","errcatch") == 0)
34  ans  =
35  
36  nthroot: Wrong type for input argument(s) 1: n must be a scalar.   
37 assert_checkfalse(execstr("nthroot(-2,%nan)","errcatch") == 0);
38 lasterror(execstr("10000","errcatch") == 0)
39  ans  =
40  
41  nthroot: If x is negative, n must be an odd integer   
42 assert_checkfalse(execstr("nthroot(-2,%eps)","errcatch") == 0);
43 lasterror(execstr("10000","errcatch") == 0)
44  ans  =
45  
46  nthroot: If x is negative, n must be an odd integer   
47 assert_checkfalse(execstr("nthroot(-3,6)","errcatch") == 0);
48 lasterror(execstr("10000","errcatch") == 0)
49  ans  =
50  
51  nthroot: If x is negative, n must be an odd integer   
52 assert_checkfalse(execstr("nthroot(-3,0)","errcatch") == 0);
53 lasterror(execstr("10000","errcatch") == 0)
54  ans  =
55  
56  nthroot: If x is negative, n must be an odd integer   
57 assert_checkfalse(execstr("nthroot(-%inf,-2)","errcatch") == 0);
58 lasterror(execstr("10000","errcatch") == 0)
59  ans  =
60  
61  nthroot: If x is negative, n must be an odd integer   
62 assert_checkfalse(execstr("nthroot(-2,-2)","errcatch") == 0);
63 lasterror(execstr("10000","errcatch") == 0)
64  ans  =
65  
66  nthroot: If x is negative, n must be an odd integer   
67 assert_checkfalse(execstr("nthroot(-2,2)","errcatch") == 0);
68 lasterror(execstr("10000","errcatch") == 0)
69  ans  =
70  
71  nthroot: If x is negative, n must be an odd integer   
72 // 2. Singular Values
73 // ==================
74 assert_checkalmostequal(nthroot(2,-2),0.7071068, 1.e-5);
75 assert_checkalmostequal(nthroot(2,2),1.4142136, 1.e-5);
76 assert_checkalmostequal(nthroot(%eps,3),0.0000061, 1.e-2);
77 assert_checkalmostequal(nthroot([1 2],2),[1 1.4142136], 1.e-5);
78 assert_checkequal(nthroot(-2,%inf),-1);
79 assert_checkequal(nthroot(3,%inf),1);
80 assert_checkequal(nthroot(3,-%inf),1);
81 assert_checkequal(nthroot(-3,%inf),-1);
82 assert_checkequal(nthroot(3,%nan),%nan);
83 assert_checkequal(nthroot(3,-%nan),%nan);
84 assert_checkequal(nthroot(3,%eps),%inf);
85 assert_checkequal(nthroot(3,-%eps),0);
86 assert_checkequal(nthroot(3,0),%inf);
87 assert_checkequal(nthroot(1,0),%nan);
88 assert_checkequal(nthroot([1 2],%inf),[1 1]);
89 assert_checkequal(nthroot([1 2],%nan),[%nan %nan]);
90 assert_checkequal(nthroot([1 2],%eps),[1 %inf]);
91 assert_checkequal(nthroot([1 2],0),[%nan %inf]);
92 assert_checkequal(nthroot(0,0),0);
93 assert_checkequal(nthroot(0,7),0);
94 assert_checkequal(nthroot(0,-7),%inf);
95 assert_checkequal(nthroot(0,%inf),1);
96 assert_checkequal(nthroot(0,-%inf),1);
97 assert_checkequal(nthroot(0,%nan),%nan);
98 assert_checkequal(nthroot(0,%eps),0);
99 assert_checkequal(nthroot(0,-%eps),%inf);
100 assert_checkequal(nthroot([0;-1],%inf),[1;-1]);
101 assert_checkequal(nthroot([0;1],0),[0;%nan]);
102 // 3. Empty Matrix
103 //==================
104 assert_checkequal(nthroot([],-2),[]);
105 assert_checkequal(nthroot([],3),[]);
106 assert_checkequal(nthroot([],%nan),[]);
107 assert_checkequal(nthroot([],%inf),[]);
108 assert_checkequal(nthroot([],-%inf),[]);
109 assert_checkequal(nthroot([],%eps),[]);
110 assert_checkequal(nthroot([],-%eps),[]);
111 assert_checkequal(nthroot([],0),[]);
112 // 4. Limit Values
113 // ================
114 assert_checkequal(nthroot(-%inf,-7),0);
115 assert_checkequal(nthroot(-%inf,7),-%inf);
116 assert_checkequal(nthroot(%inf,-7),0);
117 assert_checkequal(nthroot(%inf,7),%inf);
118 assert_checkequal(nthroot(%inf,%inf),1);
119 assert_checkequal(nthroot(%inf,-%inf),1);
120 assert_checkequal(nthroot(-%inf,%inf),-1);
121 assert_checkequal(nthroot(-%inf,-%inf),-1);
122 assert_checkequal(nthroot(%inf,%inf),1);
123 assert_checkequal(nthroot(%inf,%nan),%nan);
124 assert_checkequal(nthroot(%inf,%eps),%inf);
125 assert_checkequal(nthroot(%inf,-%eps),0);
126 assert_checkequal(nthroot(%inf,0),%inf);
127 assert_checkequal(nthroot([%inf;%nan],3),[%inf;%nan]);
128 assert_checkequal(nthroot([%inf;%nan],%nan),[%nan;%nan]);
129 assert_checkequal(nthroot([%inf;%nan],0),[%inf;%nan]);
130 assert_checkequal(nthroot([%inf;%eps],%eps),[%inf;0]);
131 assert_checkequal(nthroot([%inf;%eps],%nan),[%nan;%nan]);
132 assert_checkequal(nthroot([%inf;1],0),[%inf;%nan]);
133 // 5. Not A Number
134 // =================
135 assert_checkequal(nthroot(%nan,-2),%nan);
136 assert_checkequal(nthroot(%nan,%inf),%nan);
137 assert_checkequal(nthroot(%nan,-%inf),%nan);
138 assert_checkequal(nthroot(%nan,-%eps),%nan);
139 assert_checkequal(nthroot(%nan,0),%nan);
140 // 6. X = %eps
141 // ===========
142 assert_checkequal(nthroot(%eps,%inf),1);
143 assert_checkequal(nthroot(%eps,-%inf),1);
144 assert_checkequal(nthroot(-%eps,%inf),-1);
145 assert_checkequal(nthroot(-%eps,-%inf),-1);
146 assert_checkequal(nthroot(%eps,%inf),1);
147 assert_checkequal(nthroot(%eps,%nan),%nan);
148 assert_checkequal(nthroot(%eps,%eps),0);
149 assert_checkequal(nthroot(%eps,-%eps),%inf);
150 assert_checkequal(nthroot(%eps,0),0);