3 #include "testing/testing.h"
11 #define VALUE_1 POINTER_FROM_INT(1)
12 #define VALUE_2 POINTER_FROM_INT(2)
13 #define VALUE_3 POINTER_FROM_INT(3)
15 TEST(edgehash, InsertIncreasesLength)
26 TEST(edgehash, ReinsertNewIncreasesLength)
37 TEST(edgehash, ReinsertExistingDoesNotIncreaseLength)
52 TEST(edgehash, ReinsertCanChangeValue)
66 TEST(edgehash, LookupExisting)
77 TEST(edgehash, LookupNonExisting)
86 TEST(edgehash, LookupNonExistingWithDefault)
95 TEST(edgehash, LookupExistingWithDefault)
105 TEST(edgehash, LookupPExisting)
119 TEST(edgehash, LookupPNonExisting)
128 TEST(edgehash, EnsurePNonExisting)
134 ASSERT_FALSE(existed);
141 TEST(edgehash, EnsurePExisting)
148 ASSERT_TRUE(existed);
156 TEST(edgehash, RemoveExistingDecreasesLength)
164 ASSERT_TRUE(has_been_removed);
169 TEST(edgehash, RemoveNonExistingDoesNotDecreaseLength)
177 ASSERT_FALSE(has_been_removed);
193 TEST(edgehash, LookupInvertedIndices)
214 TEST(edgehash, HasKeyNonExisting)
223 TEST(edgehash, ClearSetsLengthToZero)
236 TEST(edgehash, IteratorFindsAllValues)
309 std::vector<Edge> edges;
310 for (
int i = 0; i < amount; i++) {
311 edges.push_back({(
uint)i, amount + (
uint)std::rand() % 12345});
317 for (
int i = 0; i < edges.size(); i++) {
321 std::vector<Edge> shuffled = edges;
322 std::shuffle(shuffled.begin(), shuffled.end(), std::default_random_engine());
325 int remove_until = shuffled.size() / 2;
326 for (
int i = 0; i < remove_until; i++) {
333 for (
int i = 0; i < shuffled.size(); i++) {
335 if (i < remove_until) {
336 ASSERT_FALSE(haskey);
344 for (
int i = 0; i < edges.size(); i++) {
351 for (
int i = 0; i < edges.size(); i++) {
361 TEST(edgeset, AddNonExistingIncreasesLength)
376 TEST(edgeset, AddExistingDoesNotIncreaseLength)
391 TEST(edgeset, HasKeyNonExisting)
void BLI_edgehash_free(EdgeHash *eh, EdgeHashFreeFP free_value)
bool BLI_edgeset_haskey(const EdgeSet *es, unsigned int v0, unsigned int v1) ATTR_WARN_UNUSED_RESULT
bool BLI_edgehash_reinsert(EdgeHash *eh, unsigned int v0, unsigned int v1, void *val)
void BLI_edgehash_insert(EdgeHash *eh, unsigned int v0, unsigned int v1, void *val)
EdgeHashIterator * BLI_edgehashIterator_new(EdgeHash *eh) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
bool BLI_edgeset_add(EdgeSet *es, unsigned int v0, unsigned int v1)
bool BLI_edgehash_ensure_p(EdgeHash *eh, unsigned int v0, unsigned int v1, void ***r_val) ATTR_WARN_UNUSED_RESULT
EdgeHash * BLI_edgehash_new(const char *info) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
bool BLI_edgehash_remove(EdgeHash *eh, unsigned int v0, unsigned int v1, EdgeHashFreeFP free_value)
void BLI_edgeset_insert(EdgeSet *es, unsigned int v0, unsigned int v1)
int BLI_edgehash_len(const EdgeHash *eh) ATTR_WARN_UNUSED_RESULT
void ** BLI_edgehash_lookup_p(EdgeHash *eh, unsigned int v0, unsigned int v1) ATTR_WARN_UNUSED_RESULT
void BLI_edgeset_free(EdgeSet *es)
BLI_INLINE void BLI_edgehashIterator_step(EdgeHashIterator *ehi)
void * BLI_edgehash_popkey(EdgeHash *eh, unsigned int v0, unsigned int v1) ATTR_WARN_UNUSED_RESULT
void BLI_edgehash_clear(EdgeHash *eh, EdgeHashFreeFP free_value)
void BLI_edgehashIterator_free(EdgeHashIterator *ehi)
BLI_INLINE void * BLI_edgehashIterator_getValue(EdgeHashIterator *ehi)
bool BLI_edgehash_haskey(const EdgeHash *eh, unsigned int v0, unsigned int v1) ATTR_WARN_UNUSED_RESULT
void * BLI_edgehash_lookup_default(const EdgeHash *eh, unsigned int v0, unsigned int v1, void *default_value) ATTR_WARN_UNUSED_RESULT
BLI_INLINE bool BLI_edgehashIterator_isDone(const EdgeHashIterator *ehi)
int BLI_edgeset_len(const EdgeSet *es) ATTR_WARN_UNUSED_RESULT
EdgeSet * BLI_edgeset_new(const char *info) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
void * BLI_edgehash_lookup(const EdgeHash *eh, unsigned int v0, unsigned int v1) ATTR_WARN_UNUSED_RESULT
TEST(edgehash, InsertIncreasesLength)
#define POINTER_FROM_INT(i)
#define POINTER_AS_INT(i)
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei GLsizei GLenum type _GL_VOID_RET _GL_VOID GLsizei GLenum GLenum const void *pixels _GL_VOID_RET _GL_VOID const void *pointer _GL_VOID_RET _GL_VOID GLdouble v _GL_VOID_RET _GL_VOID GLfloat v _GL_VOID_RET _GL_VOID GLint GLint i2 _GL_VOID_RET _GL_VOID GLint j _GL_VOID_RET _GL_VOID GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble GLdouble GLdouble zFar _GL_VOID_RET _GL_UINT GLdouble *equation _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLenum GLfloat *v _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLfloat *values _GL_VOID_RET _GL_VOID GLushort *values _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLenum GLdouble *params _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_BOOL GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLushort pattern _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint GLdouble v1
ATTR_WARN_UNUSED_RESULT const BMVert * v2
static void shuffle(float2 points[], int size, int rng_seed)
static const pxr::TfToken b("b", pxr::TfToken::Immortal)