File: coding.tst

package info (click to toggle)
gap 4.15.1-1
  • links: PTS
  • area: main
  • in suites: forky, sid
  • size: 110,212 kB
  • sloc: ansic: 97,261; xml: 48,343; cpp: 13,946; sh: 4,900; perl: 1,650; javascript: 255; makefile: 252; ruby: 9
file content (133 lines) | stat: -rw-r--r-- 3,261 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#
# Test the GAP function coder
#
gap> START_TEST("coding.tst");

#
# Test coding of if-statements in which some conditions are true or false
#
#

# test if-statements with single branch
gap> f:=function(x) if x then return 1; fi; end;; Display(f);
function ( x )
    if x then
        return 1;
    fi;
    return;
end
gap> f:=function(x) if true then return 1; fi; end;; Display(f);
function ( x )
    return 1;
end
gap> f:=function(x) if false then return 1; fi; end;; Display(f);
function ( x )
    ;
    return;
end

# test if-statements with two branches (note that 'else' is equivalent to 'elif true'),
# first condition is neither true nor false
gap> f:=function(x) if x then return 1; else return 2; fi; end;; Display(f);
function ( x )
    if x then
        return 1;
    else
        return 2;
    fi;
    return;
end
gap> f:=function(x) if x then return 1; elif x then return 2; fi; end;; Display(f);
function ( x )
    if x then
        return 1;
    elif x then
        return 2;
    fi;
    return;
end
gap> f:=function(x) if x then return 1; elif false then return 2; fi; end;; Display(f);
function ( x )
    if x then
        return 1;
    fi;
    return;
end

# test if-statements with two branches (note that 'else' is equivalent to 'elif true'),
# first condition is true
gap> f:=function(x) if true then return 1; else return 2; fi; end;; Display(f);
function ( x )
    return 1;
end
gap> f:=function(x) if true then return 1; elif x then return 2; fi; end;; Display(f);
function ( x )
    return 1;
end
gap> f:=function(x) if true then return 1; elif false then return 2; fi; end;; Display(f);
function ( x )
    return 1;
end

# test if-statements with two branches (note that 'else' is equivalent to 'elif true'),
# first condition is false
gap> f:=function(x) if false then return 1; else return 2; fi; end;; Display(f);
function ( x )
    return 2;
end
gap> f:=function(x) if false then return 1; elif x then return 2; fi; end;; Display(f);
function ( x )
    if x then
        return 2;
    fi;
    return;
end
gap> f:=function(x) if false then return 1; elif false then return 2; fi; end;; Display(f);
function ( x )
    ;
    return;
end

# test some if-statements with three branches
gap> f:=function(x) if true then return 1; elif true then return 2; else return 3; fi; end;; Display(f);
function ( x )
    return 1;
end
gap> f:=function(x) if true then return 1; elif x then return 2; else return 3; fi; end;; Display(f);
function ( x )
    return 1;
end
gap> f:=function(x) if x then return 1; elif true then return 2; else return 3; fi; end;; Display(f);
function ( x )
    if x then
        return 1;
    else
        return 2;
    fi;
    return;
end
gap> f:=function(x) if x then return 1; elif false then return 2; else return 3; fi; end;; Display(f);
function ( x )
    if x then
        return 1;
    else
        return 3;
    fi;
    return;
end
gap> f:=function(x) if false then return 1; elif true then return 2; else return 3; fi; end;; Display(f);
function ( x )
    return 2;
end
gap> f:=function(x) if false then return 1; elif x then return 2; else return 3; fi; end;; Display(f);
function ( x )
    if x then
        return 2;
    else
        return 3;
    fi;
    return;
end

#
gap> STOP_TEST("coding.tst");