970e508287e73f39a698478763b7b989c652b615
[scilab.git] / scilab / modules / elementary_functions / tests / unit_tests / intersect.tst
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) ????-2008 - INRIA
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // =============================================================================
7
8 // <-- CLI SHELL MODE -->
9
10 [v,ka,kb] = intersect([],[]);
11 if v <> [] then pause,end
12 if ka <> [] then pause,end
13 if kb <> [] then pause,end
14
15 [v,ka,kb] = intersect([1 2],[3 4]);
16 if v <> [] then pause,end
17 if ka <> [] then pause,end
18 if kb <> [] then pause,end
19
20
21
22
23 A = [ 1 8 4 5 2 1];
24 B = [ 9 7 4 2 1 4];
25
26 [v,ka,kb] = intersect(A,B);
27 if or(A(ka) <> B(kb)) then pause,end
28 if or(A(ka) <> v) then pause,end
29 if or(v<>intersect(A,B))  then pause,end
30 if (or(v<>[1,2,4])) then pause,end
31
32 A = 'a'+string(A);
33 B = 'b'+string(B);
34 [v,ka,kb] = intersect(A,B);
35 if or(A(ka) <> B(kb)) then pause,end
36 if or(A(ka) <> v) then pause,end
37 if or(v<>intersect(A,B))  then pause,end
38 if v <> [] then pause,end
39
40
41 A = [ "elt1" "elt3" "elt4"];
42 B = [ "elt5" "elt1" "elt3"];
43 [v, ka, kb] = intersect(A,B);
44 if or(A(ka) <> B(kb)) then pause,end
45 if or(A(ka) <> v) then pause,end
46 if or(v<>intersect(A,B))  then pause,end
47 if (or(v<>["elt1","elt3"])) then pause,end
48
49
50 A = [ "elt1" "elt3" "elt4"];
51 B = [ "elt5" "elt6" "elt2" "elt1" "elt3"];
52
53 [v, ka, kb] = intersect(A,B);
54 if or(A(ka) <> B(kb)) then pause,end
55 if or(A(ka) <> v) then pause,end
56 if or(v<>intersect(A,B))  then pause,end
57 if (or(v<>["elt1","elt3"])) then pause,end
58
59 //with integers
60 A = int16([ 1 8 4 5 2 1]);
61 B = int16([ 9 7 4 2 1 4]);
62
63 [v, ka, kb]=intersect(A,B);
64 if or(A(ka) <> B(kb)) then pause,end
65 if or(A(ka) <> v) then pause,end
66 if or(v<>intersect(A,B))  then pause,end
67 if (or(v<>int16([1,2,4]))) then pause,end
68
69 A = uint8([ 1 8 4 5 2 1]);
70 B = uint8([ 9 7 4 2 1 4]);
71
72 [v, ka, kb]=intersect(A,B);
73 if or(A(ka) <> B(kb)) then pause,end
74 if or(A(ka) <> v) then pause,end
75 if or(v<>intersect(A,B))  then pause,end
76 if (or(v<>uint8([1,2,4]))) then pause,end
77
78 //with matrices
79  A = [0,0,1,1 1;
80       0,1,1,1,1;
81       2,0,1,1,1;
82       0,2,2,2,2;
83       2,0,1,1,1;
84       0,0,1,1,3];
85 B = [1,0,1;
86      1,0,2;
87      1,2,3;
88      2,0,4;
89      1,2,5;
90      3,0,6];
91 [v,ka,kb] = intersect(A,B,'c');
92 if or(A(:,ka) <> B(:,kb)) then pause,end
93 if or(A(:,ka) <> v) then pause,end
94 if or(v<>intersect(A,B,'c'))  then pause,end
95 if (or(v<>[0,1;0,1;2,1;0,2;2,1;0,3])) then pause,end
96
97 A=A';B=B';
98 [v,ka,kb] = intersect(A,B,'r');
99 if or(A(ka,:) <> B(kb,:)) then pause,end
100 if or(A(ka,:) <> v) then pause,end
101 if or(v<>intersect(A,B,'r'))  then pause,end
102 if (or(v<>[0,0,2,0,2,0;1,1,1,2,1,3])) then pause,end
103
104 A=uint32(A);B=uint32(B);
105 [v,ka,kb] = intersect(A,B,'r');
106 if or(A(ka,:) <> B(kb,:)) then pause,end
107 if or(A(ka,:) <> v) then pause,end
108 if or(v<>intersect(A,B,'r'))  then pause,end
109 if (or(v<>uint32([0,0,2,0,2,0;1,1,1,2,1,3]))) then pause,end
110
111 //with Nan
112  A = [0,0,1,1 1;
113       0,1,1,1,1;
114       2,0,1,1,1;
115       0,2,2,2,2;
116       2,0,1,1,1;
117       0,0,1,1,%nan];
118 B = [1,0,1;
119      1,0,2;
120      1,2,3;
121      2,0,4;
122      1,2,5;
123      %nan,0,6];
124
125 [v,ka,kb] = intersect(A,B,'c');
126 if or(A(:,ka) <> B(:,kb)) then pause,end
127 if or(A(:,ka) <> v) then pause,end
128 if or(v<>intersect(A,B,'c'))  then pause,end
129 if (or(v<>[0;0;2;0;2;0])) then pause,end
130
131
132
133 // =============================================================================