diff options
| author | David <david@xagasoft.com> | 2008-12-30 22:07:47 +0000 |
|---|---|---|
| committer | David <david@xagasoft.com> | 2008-12-30 22:07:47 +0000 |
| commit | bbe8ee9de8bfbd490336d80e76148663dcbe027f (patch) | |
| tree | 9a08a2ec412ba7a28e69cd8f844cd59dde97645a | |
| parent | 1743bd0eacec94c6f6e3c89e16d0bd6d301017e8 (diff) | |
| download | libbu++-bbe8ee9de8bfbd490336d80e76148663dcbe027f.tar.gz libbu++-bbe8ee9de8bfbd490336d80e76148663dcbe027f.tar.bz2 libbu++-bbe8ee9de8bfbd490336d80e76148663dcbe027f.tar.xz libbu++-bbe8ee9de8bfbd490336d80e76148663dcbe027f.zip | |
david - i found a strange hash bug, and made a unit test to reproduce it ("insert3")... with a hash of type Bu::Hash<int, Bu::FString>, when the size of the hash reaches certain points (11, 23, 46, 94, etc...), it seems to reset itself and not have any data in it...
Diffstat (limited to '')
| -rw-r--r-- | src/unit/hash.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/unit/hash.cpp b/src/unit/hash.cpp index 77160e3..1c873fd 100644 --- a/src/unit/hash.cpp +++ b/src/unit/hash.cpp | |||
| @@ -16,6 +16,7 @@ class Unit : public Bu::UnitSuite | |||
| 16 | private: | 16 | private: |
| 17 | typedef Bu::Hash<Bu::FString, int> StrIntHash; | 17 | typedef Bu::Hash<Bu::FString, int> StrIntHash; |
| 18 | typedef Bu::Hash<Bu::FString, Bu::FString> StrStrHash; | 18 | typedef Bu::Hash<Bu::FString, Bu::FString> StrStrHash; |
| 19 | typedef Bu::Hash<int, Bu::FString> IntStrHash; | ||
| 19 | 20 | ||
| 20 | public: | 21 | public: |
| 21 | Unit() | 22 | Unit() |
| @@ -23,6 +24,7 @@ public: | |||
| 23 | setName("Hash"); | 24 | setName("Hash"); |
| 24 | addTest( Unit::insert1 ); | 25 | addTest( Unit::insert1 ); |
| 25 | addTest( Unit::insert2 ); | 26 | addTest( Unit::insert2 ); |
| 27 | addTest( Unit::insert3 ); | ||
| 26 | addTest( Unit::probe1 ); | 28 | addTest( Unit::probe1 ); |
| 27 | addTest( Unit::erase1 ); | 29 | addTest( Unit::erase1 ); |
| 28 | } | 30 | } |
| @@ -68,6 +70,17 @@ public: | |||
| 68 | unitTest( h3["Bye"].getValue() = "Later" ); | 70 | unitTest( h3["Bye"].getValue() = "Later" ); |
| 69 | } | 71 | } |
| 70 | 72 | ||
| 73 | void insert3() | ||
| 74 | { | ||
| 75 | IntStrHash h; | ||
| 76 | |||
| 77 | for( unsigned int i=1; i<50; i++ ) | ||
| 78 | { | ||
| 79 | h[i] = "testing"; | ||
| 80 | unitTest( h.getSize() == i ); | ||
| 81 | } | ||
| 82 | } | ||
| 83 | |||
| 71 | void erase1() | 84 | void erase1() |
| 72 | { | 85 | { |
| 73 | StrIntHash h; | 86 | StrIntHash h; |
