1function gbtest23
2%GBTEST23 test min and max
3
4% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2021, All Rights Reserved.
5% SPDX-License-Identifier: GPL-3.0-or-later
6
7rng ('default') ;
8for trial = 1:10
9    fprintf ('.') ;
10    for m = 1:5
11        for n = 1:5
12
13            MA = sprand (m, n, 0.5) ;
14            S = -(sprand (m, n, 0.5) > 0.5) ;
15            MA = MA .* S ;
16
17            MB = sprand (m, n, 0.5) ;
18            S = -(sprand (m, n, 0.5) > 0.5) ;
19            MB = MB .* S ;
20
21            GA = GrB (MA) ;
22            GB = GrB (MB) ;
23
24            c1 = max (MA) ;
25            c2 = max (GA) ;
26            assert (gbtest_eq (c1, c2)) ;
27
28            c1 = min (MA) ;
29            c2 = min (GA) ;
30            assert (gbtest_eq (c1, c2)) ;
31
32            C1 = max (MA,MB) ;
33            C2 = max (MA,GB) ;
34            C3 = max (GA,MB) ;
35            C4 = max (GA,GB) ;
36            assert (gbtest_eq (C1, C2)) ;
37            assert (gbtest_eq (C1, C3)) ;
38            assert (gbtest_eq (C1, C4)) ;
39
40            C1 = min (MA,MB) ;
41            C2 = min (MA,GB) ;
42            C3 = min (GA,MB) ;
43            C4 = min (GA,GB) ;
44            assert (gbtest_eq (C1, C2)) ;
45            assert (gbtest_eq (C1, C3)) ;
46            assert (gbtest_eq (C1, C4)) ;
47
48            % c1 = max (MA, [ ], 'all') ;
49            c1 = max (max (MA)) ;
50            c2 = max (GA, [ ], 'all') ;
51            assert (gbtest_eq (c1, c2)) ;
52
53            % c1 = min (MA, [ ], 'all') ;
54            c1 = min (min (MA)) ;
55            c2 = min (GA, [ ], 'all') ;
56            assert (gbtest_eq (c1, c2)) ;
57
58            C1 = max (MA, [ ], 1) ;
59            C2 = max (GA, [ ], 1) ;
60            assert (gbtest_eq (C1, C2)) ;
61
62            C1 = min (MA, [ ], 1) ;
63            C2 = min (GA, [ ], 1) ;
64            assert (gbtest_eq (C1, C2)) ;
65
66            C1 = max (MA, [ ], 2) ;
67            C2 = max (GA, [ ], 2) ;
68            assert (gbtest_eq (C1, C2)) ;
69
70            C1 = min (MA, [ ], 2) ;
71            C2 = min (GA, [ ], 2) ;
72            assert (gbtest_eq (C1, C2)) ;
73
74        end
75    end
76end
77
78fprintf ('\ngbtest23: all tests passed\n') ;
79
80