root/trunk/rebuild/util/series.d

Revision 254, 0.9 kB (checked in by Gregor, 2 years ago)

Many, many changes. Now mostly working.

Line 
1 module util.series;
2
3 struct Series
4 {
5     private
6     {
7         ulong mValue;
8         ulong mIncr;
9     }
10
11     ulong Next()
12     {
13         ulong lCV;
14
15         lCV = mValue;
16         mValue += (mIncr+1);
17         return lCV;
18     }
19
20     void Next(ulong pInit)
21     {
22         mValue = pInit;
23     }
24
25     ulong Current()
26     {
27         return mValue;
28     }
29
30     ulong Prev()
31     {
32         return mValue - (mIncr+1);
33     }
34
35     void Increment(ulong pInit = 1)
36     {
37         mIncr = pInit-1;
38     }
39
40 }
41
42
43 unittest
44 {
45     Series a;
46     assert( a.Next == 0);
47     assert( a.Next == 1);
48     assert( a.Next == 2);
49     assert( a.Current == 3);
50     a.Increment = 2;
51     assert( a.Next == 3);
52     assert( a.Next == 5);
53     assert( a.Prev == 5);
54     a.Next = 100;
55     assert( a.Current == 100);
56     assert( a.Next == 100);
57     assert( a.Next == 102);
58 }
Note: See TracBrowser for help on using the browser.