1function gbtest36
2%GBTEST36 test abs, sign
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
9types = gbtest_types ;
10for k = 1:length (types)
11    type = types {k} ;
12
13    A = floor (100 * (rand (3, 3) - 0.5)) ;
14    A (1,1) = 0 ;
15
16    if (type (1) == 'u')
17        A = max (A, 0) ;
18    end
19    G = GrB (A, type) ;
20    B = gbtest_cast (A, type) ;
21    assert (gbtest_eq (B, G))
22
23    H = abs (G) ;
24    C = abs (B) ;
25    assert (gbtest_eq (double (C), double (H)))
26
27    H = sign (G) ;
28    if (isequal (type, 'logical'))
29        C = double (B) ;
30    else
31        C = sign (B) ;
32    end
33    assert (gbtest_err (C, H) == 0)
34
35end
36
37fprintf ('gbtest36: all tests passed\n') ;
38
39