projects
/
mono.git
/ blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
history
|
raw
|
HEAD
2002-02-25 Ravi Pratap <ravi@ximian.com>
[mono.git]
/
mcs
/
tests
/
test-47.cs
1
//
2
// Short-circuit evaluation tests
3
//
4
using System;
5
6
class X {
7
8
static int t_count = 0;
9
static int f_count = 0;
10
11
static bool f ()
12
{
13
Console.WriteLine ("f");
14
f_count++;
15
return false;
16
}
17
18
static bool t ()
19
{
20
Console.WriteLine ("t");
21
t_count++;
22
return true;
23
}
24
25
static int Main ()
26
{
27
if (t () && t ()){
28
f_count--;
29
}
30
31
if (t_count != 2)
32
return 1;
33
34
if (f_count != -1)
35
return 3;
36
37
f_count = 0;
38
39
if (t () && f ())
40
if (t_count != 3 && f_count == 1)
41
return 2;
42
43
if (f () && f ())
44
return 3;
45
46
if (f_count != 2)
47
return 4;
48
49
if (f () && t ())
50
return 5;
51
52
if (f_count != 3)
53
return 6;
54
55
if (t_count != 3)
56
return 7;
57
58
//
59
// reset
60
//
61
Console.WriteLine ("or");
62
63
t_count = f_count = 0;
64
65
if (t () || t ()){
66
if (t_count != 1)
67
return 8;
68
} else
69
return 9;
70
71
if (t () || f ()){
72
if (f_count != 0)
73
return 10;
74
if (t_count != 2)
75
return 16;
76
} else
77
return 11;
78
79
if (f () || f ()){
80
return 12;
81
} else
82
if (f_count != 2)
83
return 13;
84
85
if (f () || t ()){
86
if (f_count != 3)
87
return 15;
88
if (t_count != 3)
89
return 17;
90
} else
91
return 14;
92
93
return 0;
94
}
95
}