annotate test/bug9.d @ 175:c44e6a711885 trunk

[svn r191] Fixed: array literals did not support all type/storage combinations. Fixed: with expression had broke somewhere along the way.
author lindquist
date Wed, 07 May 2008 00:01:13 +0200
parents 8b0e809563df
children d9d5d59873d8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
40
8b0e809563df [svn r44] Lots of bug fixes.
lindquist
parents:
diff changeset
1 module bug9;
8b0e809563df [svn r44] Lots of bug fixes.
lindquist
parents:
diff changeset
2 struct rgb
8b0e809563df [svn r44] Lots of bug fixes.
lindquist
parents:
diff changeset
3 {
8b0e809563df [svn r44] Lots of bug fixes.
lindquist
parents:
diff changeset
4 ubyte[3] values;
8b0e809563df [svn r44] Lots of bug fixes.
lindquist
parents:
diff changeset
5 rgb average(rgb other)
8b0e809563df [svn r44] Lots of bug fixes.
lindquist
parents:
diff changeset
6 {
8b0e809563df [svn r44] Lots of bug fixes.
lindquist
parents:
diff changeset
7 rgb res;
8b0e809563df [svn r44] Lots of bug fixes.
lindquist
parents:
diff changeset
8 foreach (id, ref v; res.values) v=(values[id]+other.values[id])/2;
8b0e809563df [svn r44] Lots of bug fixes.
lindquist
parents:
diff changeset
9 return res;
8b0e809563df [svn r44] Lots of bug fixes.
lindquist
parents:
diff changeset
10 }
8b0e809563df [svn r44] Lots of bug fixes.
lindquist
parents:
diff changeset
11 void print()
8b0e809563df [svn r44] Lots of bug fixes.
lindquist
parents:
diff changeset
12 {
8b0e809563df [svn r44] Lots of bug fixes.
lindquist
parents:
diff changeset
13 printf("[%d,%d,%d]\n", values[0], values[1], values[2]);
8b0e809563df [svn r44] Lots of bug fixes.
lindquist
parents:
diff changeset
14 }
8b0e809563df [svn r44] Lots of bug fixes.
lindquist
parents:
diff changeset
15 }
8b0e809563df [svn r44] Lots of bug fixes.
lindquist
parents:
diff changeset
16
8b0e809563df [svn r44] Lots of bug fixes.
lindquist
parents:
diff changeset
17 void main()
8b0e809563df [svn r44] Lots of bug fixes.
lindquist
parents:
diff changeset
18 {
8b0e809563df [svn r44] Lots of bug fixes.
lindquist
parents:
diff changeset
19 rgb a,b;
8b0e809563df [svn r44] Lots of bug fixes.
lindquist
parents:
diff changeset
20 a.values[0] = 10;
8b0e809563df [svn r44] Lots of bug fixes.
lindquist
parents:
diff changeset
21 a.values[1] = 20;
8b0e809563df [svn r44] Lots of bug fixes.
lindquist
parents:
diff changeset
22 a.values[2] = 30;
8b0e809563df [svn r44] Lots of bug fixes.
lindquist
parents:
diff changeset
23 b.values[0] = 30;
8b0e809563df [svn r44] Lots of bug fixes.
lindquist
parents:
diff changeset
24 b.values[1] = 20;
8b0e809563df [svn r44] Lots of bug fixes.
lindquist
parents:
diff changeset
25 b.values[2] = 10;
8b0e809563df [svn r44] Lots of bug fixes.
lindquist
parents:
diff changeset
26 rgb avg = a.average(b);
8b0e809563df [svn r44] Lots of bug fixes.
lindquist
parents:
diff changeset
27 avg.print();
8b0e809563df [svn r44] Lots of bug fixes.
lindquist
parents:
diff changeset
28 assert(avg.values[0] == 20);
8b0e809563df [svn r44] Lots of bug fixes.
lindquist
parents:
diff changeset
29 assert(avg.values[1] == 20);
8b0e809563df [svn r44] Lots of bug fixes.
lindquist
parents:
diff changeset
30 assert(avg.values[2] == 20);
8b0e809563df [svn r44] Lots of bug fixes.
lindquist
parents:
diff changeset
31 }
8b0e809563df [svn r44] Lots of bug fixes.
lindquist
parents:
diff changeset
32