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