1function gbtest35
2%GBTEST35 test reshape
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')
8
9for m = 0:6
10    for n = 0:10
11        A = rand (m, n) ;
12        G = GrB (A) ;
13        mn = m*n ;
14        if (mn == 0)
15            C1 = reshape (A, n, m) ;
16            C2 = reshape (G, n, m) ;
17            assert (gbtest_eq (C1, C2)) ;
18        else
19            f = factor (mn) ;
20            for k = 1:length (f)
21                S = nchoosek (f, k) ;
22                for i = 1:size(S,1)
23                    m2 = prod (S (i,:)) ;
24                    n2 = mn / m2 ;
25                    C1 = reshape (A, m2, n2) ;
26                    C2 = reshape (G, m2, n2) ;
27                    assert (gbtest_eq (C1, C2)) ;
28                    C1 = reshape (A, [m2 n2]) ;
29                    C2 = reshape (G, [m2 n2]) ;
30                    assert (gbtest_eq (C1, C2)) ;
31                end
32            end
33        end
34    end
35end
36
37fprintf ('gbtest35: all tests passed\n') ;
38