xref: /haiku/src/tests/kits/support/pointerlist/PointerListTest.h (revision f2b4344867e97c3f4e742a1b4a15e6879644601a)
1 /*
2 ** Copyright 2004, Michael Pfeiffer (laplace@users.sourceforge.net).
3 ** Distributed under the terms of the Haiku License.
4 **
5 */
6 
7 #ifndef _TEST_H
8 #define _TEST_H
9 
10 #include <stdio.h>
11 
12 class AssertStatistics {
13 private:
14 	AssertStatistics();
15 
16 public:
17 	static AssertStatistics* GetInstance();
18 
19 	void AssertFailed() { fAssertions++; fFailed++; }
20 	void AssertPassed() { fAssertions++; fPassed++; }
21 
22 	void Print();
23 
24 	int fAssertions;
25 	int fPassed;
26 	int fFailed;
27 	static AssertStatistics* fStatistics;
28 };
29 
30 class Item
31 {
32 public:
33 	Item() { Init(); }
34 	Item(const Item& item) : fValue(item.fValue) { Init(); };
35 	Item(int value) : fValue(value) { Init(); };
36 	virtual ~Item() {  fInstances --; }
37 
38 	int Value() { return fValue; }
39 
40 	bool Equals(Item* item) {
41 		return item != NULL && fValue == item->fValue;
42 	}
43 
44 	static int GetNumberOfInstances() { return fInstances; }
45 
46 	void Print() {
47 		fprintf(stderr, "[%d] %d", fID, fValue);
48 		// fprintf(stderr, "id: %d; value: %d", fID, fValue);
49 	}
50 
51 	static int Compare(const void* a, const void* b);
52 
53 private:
54 	void Init() {
55 		fID = fNextID ++;
56 		fInstances ++;
57 	}
58 
59 	int fID;     // unique id for each created Item
60 	int fValue;  // the value of the item
61 
62 
63 	static int fNextID;
64 	static int fInstances;
65 };
66 
67 
68 #endif
69