BitVecInit
Description
Initialize bitvector with default values. It is mandatory to initialize bitvectors before use; not doing so is undefined behaviour.
This public macro supports both forms:
BitVecInit()- usesDefaultAllocator().BitVecInit(alloc)- binds the supplied allocator.
Parameters
| Name | Direction | Description |
|---|---|---|
alloc |
in | Optional allocator override. |
Usage example (from documentation)
BitVec flags = BitVecInit();Success
Returns a fresh BitVec with length 0, capacity 0, NULL data pointer, and the chosen allocator bound. No heap allocation is performed until the bitvector is mutated.
Failure
Function cannot fail.
Usage example (Cross-references)
Usage examples (Cross-references)
- In
BitVec.c:39:
BitVec BitVecInitWithCapacityAlloc(u64 cap, Allocator alloc) {
BitVec result = BitVecInit(alloc);
if (cap == 0) {- In
BitVec.c:195:
}
*out = BitVecInit(bv->allocator);
if (bv->length == 0) {
return true;- In
BitVec.c:203:
if (!BitVecReserve(out, bv->length) || !BitVecResize(out, bv->length)) {
BitVecDeinit(out);
*out = BitVecInit(bv->allocator);
return false;
}- In
BitVec.c:220:
ValidateBitVec(bv);
clone = BitVecInit(bv->allocator);
(void)BitVecTryClone(&clone, bv);
return clone;- In
BitVec.c:843:
}
*out = BitVecInit(alloc);
u64 str_len = ZstrLen(str);- In
BitVec.c:854:
if (!BitVecPush(out, true)) {
BitVecDeinit(out);
*out = BitVecInit(alloc);
return false;
}- In
BitVec.c:860:
if (!BitVecPush(out, false)) {
BitVecDeinit(out);
*out = BitVecInit(alloc);
return false;
}- In
BitVec.c:874:
if (!BitVecTryFromStrAlloc(&result, str, alloc)) {
result = BitVecInit(alloc);
}- In
BitVec.c:918:
}
*out = BitVecInit(alloc);
// Handle empty bitvector case
- In
BitVec.c:927:
if (!BitVecReserve(out, bit_len) || !BitVecResize(out, bit_len)) {
BitVecDeinit(out);
*out = BitVecInit(alloc);
return false;
}- In
BitVec.c:946:
if (!BitVecTryFromBytesAlloc(&result, bytes, bit_len, alloc)) {
result = BitVecInit(alloc);
}- In
BitVec.c:976:
}
*out = BitVecInit(alloc);
if (bits == 0) {
return true;- In
BitVec.c:988:
if (!BitVecReserve(out, bits) || !BitVecResize(out, bits)) {
BitVecDeinit(out);
*out = BitVecInit(alloc);
return false;
}- In
BitVec.c:1005:
if (!BitVecTryFromIntegerAlloc(&result, value, bits, alloc)) {
result = BitVecInit(alloc);
} WriteFmt("Testing BitVecFindPattern(NULL, pattern) - should fatal\n");
BitVec pattern = BitVecInit();
BitVecPush(&pattern, true); WriteFmt("Testing BitVecFindPattern(source, NULL) - should fatal\n");
BitVec source = BitVecInit();
BitVecPush(&source, true);
BitVecPush(&source, false); WriteFmt("Testing BitVecFindLastPattern(NULL, pattern) - should fatal\n");
BitVec pattern = BitVecInit();
BitVecPush(&pattern, true); WriteFmt("Testing BitVecFindLastPattern(source, NULL) - should fatal\n");
BitVec source = BitVecInit();
BitVecPush(&source, true);
BitVecPush(&source, false); WriteFmt("Testing BitVecFindAllPattern(source, NULL, results, 10) - should fatal\n");
BitVec source = BitVecInit();
size results[10];
BitVecPush(&source, true); WriteFmt("Testing BitVecFindAllPattern(source, pattern, NULL, 10) - should fatal\n");
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
BitVecPush(&source, true);
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
BitVecPush(&source, true);
BitVecPush(&source, false); WriteFmt("Testing BitVecFindAllPattern(source, pattern, results, 0) - should fatal\n");
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
size results[10];
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
size results[10];
BitVecPush(&source, true); bool test_bitvec_starts_with_null_source(void) {
WriteFmt("Testing BitVecStartsWith(NULL, prefix) - should fatal\n");
BitVec prefix = BitVecInit();
BitVecPush(&prefix, true);
BitVecStartsWith(NULL, &prefix); bool test_bitvec_starts_with_null_prefix(void) {
WriteFmt("Testing BitVecStartsWith(source, NULL) - should fatal\n");
BitVec source = BitVecInit();
BitVecPush(&source, true);
BitVecStartsWith(&source, NULL); bool test_bitvec_ends_with_null_source(void) {
WriteFmt("Testing BitVecEndsWith(NULL, suffix) - should fatal\n");
BitVec suffix = BitVecInit();
BitVecPush(&suffix, true);
BitVecEndsWith(NULL, &suffix); bool test_bitvec_ends_with_null_suffix(void) {
WriteFmt("Testing BitVecEndsWith(source, NULL) - should fatal\n");
BitVec source = BitVecInit();
BitVecPush(&source, true);
BitVecEndsWith(&source, NULL); bool test_bitvec_contains_at_null_source(void) {
WriteFmt("Testing BitVecContainsAt(NULL, pattern, 0) - should fatal\n");
BitVec pattern = BitVecInit();
BitVecPush(&pattern, true);
BitVecContainsAt(NULL, &pattern, 0); bool test_bitvec_contains_at_null_pattern(void) {
WriteFmt("Testing BitVecContainsAt(source, NULL, 0) - should fatal\n");
BitVec source = BitVecInit();
BitVecPush(&source, true);
BitVecContainsAt(&source, NULL, 0); bool test_bitvec_matches_null_source(void) {
WriteFmt("Testing BitVecMatches(NULL, pattern, wildcard) - should fatal\n");
BitVec pattern = BitVecInit();
BitVec wildcard = BitVecInit();
BitVecPush(&pattern, true); WriteFmt("Testing BitVecMatches(NULL, pattern, wildcard) - should fatal\n");
BitVec pattern = BitVecInit();
BitVec wildcard = BitVecInit();
BitVecPush(&pattern, true);
BitVecPush(&wildcard, false); bool test_bitvec_regex_match_null_pattern(void) {
WriteFmt("Testing BitVecRegexMatch(source, NULL) - should fatal\n");
BitVec source = BitVecInit();
BitVecPush(&source, true);
BitVecRegexMatch(&source, NULL); bool test_bitvec_prefix_match_null_patterns(void) {
WriteFmt("Testing BitVecPrefixMatch(source, NULL, 1) - should fatal\n");
BitVec source = BitVecInit();
BitVecPush(&source, true);
BitVecPrefixMatch(&source, NULL); bool test_bitvec_suffix_match_null_patterns(void) {
WriteFmt("Testing BitVecSuffixMatch(source, NULL, 1) - should fatal\n");
BitVec source = BitVecInit();
BitVecPush(&source, true);
BitVecSuffixMatch(&source, NULL);- In
Io.Read.c:841:
// Test 1: Reading binary string
BitVec bv1 = BitVecInit();
z = "10110";
StrReadFmt(z, "{}", bv1);- In
Io.Read.c:855:
// Test 2: Reading hex format
BitVec bv2 = BitVecInit();
z = "0xDEAD";
StrReadFmt(z, "{}", bv2);- In
Io.Read.c:864:
// Test 3: Reading octal format
BitVec bv3 = BitVecInit();
z = "0o755";
StrReadFmt(z, "{}", bv3);- In
Io.Read.c:873:
// Test 4: Reading with whitespace
BitVec bv4 = BitVecInit();
z = " 1101";
StrReadFmt(z, "{}", bv4);- In
Io.Read.c:887:
// Test 5: Reading zero values
BitVec bv5 = BitVecInit();
z = "0";
StrReadFmt(z, "{}", bv5); WriteFmt("Testing BitVecGet\n");
BitVec bv = BitVecInit();
// Push some bits
WriteFmt("Testing BitVecSet\n");
BitVec bv = BitVecInit();
// Reserve space and set bits
WriteFmt("Testing BitVecFlip\n");
BitVec bv = BitVecInit();
// Push some bits
WriteFmt("Testing BitVecLength and BitVecCapacity\n");
BitVec bv = BitVecInit();
// Initially empty
WriteFmt("Testing BitVecCount operations\n");
BitVec bv = BitVecInit();
// Push a pattern: true, false, true, false, true
WriteFmt("Testing BitVecGet edge cases\n");
BitVec bv = BitVecInit();
bool result = true; WriteFmt("Testing BitVecSet edge cases\n");
BitVec bv = BitVecInit();
// Set first bit
WriteFmt("Testing BitVecFlip edge cases\n");
BitVec bv = BitVecInit();
// Test flipping single bit
WriteFmt("Testing BitVecCount edge cases\n");
BitVec bv = BitVecInit();
bool result = true; WriteFmt("Testing BitVec multiple access operations\n");
BitVec bv = BitVecInit();
bool result = true; WriteFmt("Testing BitVec access with large patterns\n");
BitVec bv = BitVecInit();
bool result = true; WriteFmt("Testing BitVec macro functions\n");
BitVec bv = BitVecInit();
bool result = true; WriteFmt("Testing BitVec access stress test\n");
BitVec bv = BitVecInit();
bool result = true; WriteFmt("Testing BitVec comprehensive bit patterns\n");
BitVec bv = BitVecInit();
bool result = true; WriteFmt("Testing BitVecFind functions\n");
BitVec bv = BitVecInit();
bool result = true; WriteFmt("Testing BitVec predicate functions\n");
BitVec bv = BitVecInit();
bool result = true; WriteFmt("Testing BitVecLongestRun\n");
BitVec bv = BitVecInit();
bool result = true; WriteFmt("Testing BitVecFind edge cases\n");
BitVec bv = BitVecInit();
bool result = true; WriteFmt("Testing BitVec predicate edge cases\n");
BitVec bv = BitVecInit();
bool result = true; WriteFmt("Testing BitVecLongestRun edge cases\n");
BitVec bv = BitVecInit();
bool result = true; WriteFmt("Testing BitVecForeachIdx macro\n");
BitVec bv = BitVecInit();
// Add test pattern: true, false, true, false
WriteFmt("Testing BitVecForeach macro\n");
BitVec bv = BitVecInit();
// Add test pattern: true, false, true
WriteFmt("Testing BitVecForeachReverseIdx macro\n");
BitVec bv = BitVecInit();
// Add test pattern: true, false, true, false
WriteFmt("Testing BitVecForeachReverse macro\n");
BitVec bv = BitVecInit();
// Add test pattern: true, false, true
WriteFmt("Testing BitVecForeachInRangeIdx macro\n");
BitVec bv = BitVecInit();
// Add test pattern: true, false, true, false, true
WriteFmt("Testing BitVecForeachInRange macro\n");
BitVec bv = BitVecInit();
// Add test pattern: false, true, true, false, true
WriteFmt("Testing BitVec foreach edge cases\n");
BitVec bv = BitVecInit();
bool result = true;
int count = 0; WriteFmt("Testing BitVec foreach idx edge cases\n");
BitVec bv = BitVecInit();
bool result = true;
u64 last_idx = SIZE_MAX; WriteFmt("Testing BitVec foreach reverse edge cases\n");
BitVec bv = BitVecInit();
bool result = true; WriteFmt("Testing BitVec foreach range edge cases\n");
BitVec bv = BitVecInit();
bool result = true;
for (int sz = 0; sz < 100; sz += 10) {
BitVec bv = BitVecInit();
// Create bitvec of varying sz
WriteFmt("Testing BitVecRunLengths basic functionality\n");
BitVec bv = BitVecInit();
bool result = true;
// Test 1: Empty bitvector
BitVec empty_bv = BitVecInit();
u64 runs[5];
bool values[5];
// Test 2: Single bit (true)
BitVec single_bv = BitVecInit();
BitVecPush(&single_bv, true);
count = BitVecRunLengths(&single_bv, runs, values, 5);
// Test 3: Single bit (false)
BitVec single_false_bv = BitVecInit();
BitVecPush(&single_false_bv, false);
count = BitVecRunLengths(&single_false_bv, runs, values, 5);
// Test 4: All same bits (all true)
BitVec all_true_bv = BitVecInit();
for (int i = 0; i < 10; i++) {
BitVecPush(&all_true_bv, true);
// Test 5: Alternating bits (0101010)
BitVec alternating_bv = BitVecInit();
for (int i = 0; i < 7; i++) {
BitVecPush(&alternating_bv, i % 2 == 0); WriteFmt("Testing BitVecRunLengths boundary conditions\n");
BitVec bv = BitVecInit();
bool result = true;
// Test with large bitvector
BitVec large_bv = BitVecInit();
// Create pattern that results in many runs
WriteFmt("Testing BitVecRunLengths with NULL runs array\n");
BitVec bv = BitVecInit();
BitVecPush(&bv, true);
bool values[5]; WriteFmt("Testing BitVecRunLengths with NULL values array\n");
BitVec bv = BitVecInit();
BitVecPush(&bv, true);
u64 runs[5]; WriteFmt("Testing BitVecRunLengths with zero max_runs\n");
BitVec bv = BitVecInit();
BitVecPush(&bv, true);
u64 runs[5]; WriteFmt("Testing BitVec get bounds checking\n");
BitVec bv = BitVecInit();
// Test get from empty bitvec - should abort
WriteFmt("Testing BitVec set bounds checking\n");
BitVec bv = BitVecInit();
// Test set on empty bitvec - should abort
WriteFmt("Testing BitVec flip bounds checking\n");
BitVec bv = BitVecInit();
// Test flip on empty bitvec - should abort
WriteFmt("Testing BitVec get with large out-of-bounds index\n");
BitVec bv = BitVecInit();
BitVecPush(&bv, true);
BitVecPush(&bv, false); WriteFmt("Testing BitVec set with large out-of-bounds index\n");
BitVec bv = BitVecInit();
BitVecPush(&bv, true);
BitVecPush(&bv, false); WriteFmt("Testing BitVec flip with edge case out-of-bounds index\n");
BitVec bv = BitVecInit();
for (int i = 0; i < 10; i++) {
BitVecPush(&bv, i % 2 == 0); WriteFmt("Testing BitVec get with maximum index value\n");
BitVec bv = BitVecInit();
BitVecPush(&bv, true);- In
Io.Write.c:564:
// Test 2: Empty BitVec
BitVec bv_empty = BitVecInit();
StrWriteFmt(&output, "{}", bv_empty);
success = success && (output.length == 0); WriteFmt("Testing BitVecForeachIdx macro\n");
BitVec bv = BitVecInit();
// Add test pattern: true, false, true, false
WriteFmt("Testing BitVecForeach macro\n");
BitVec bv = BitVecInit();
// Add test pattern: true, false, true
WriteFmt("Testing BitVecForeachReverseIdx macro\n");
BitVec bv = BitVecInit();
// Add test pattern: true, false, true, false
WriteFmt("Testing BitVecForeachReverse macro\n");
BitVec bv = BitVecInit();
// Add test pattern: true, false, true
WriteFmt("Testing BitVecForeachInRangeIdx macro\n");
BitVec bv = BitVecInit();
// Add test pattern: true, false, true, false, true
WriteFmt("Testing BitVecForeachInRange macro\n");
BitVec bv = BitVecInit();
// Add test pattern: false, true, true, false, true
WriteFmt("Testing BitVec foreach edge cases\n");
BitVec bv = BitVecInit();
bool result = true;
int count = 0; WriteFmt("Testing BitVec foreach idx edge cases\n");
BitVec bv = BitVecInit();
bool result = true;
u64 last_idx = SIZE_MAX; WriteFmt("Testing BitVec foreach reverse edge cases\n");
BitVec bv = BitVecInit();
bool result = true; WriteFmt("Testing BitVec foreach range edge cases\n");
BitVec bv = BitVecInit();
bool result = true;
for (int sz = 0; sz < 100; sz += 10) {
BitVec bv = BitVecInit();
// Create bitvec of varying sz
WriteFmt("Testing BitVecRunLengths basic functionality\n");
BitVec bv = BitVecInit();
bool result = true;
// Test 1: Empty bitvector
BitVec empty_bv = BitVecInit();
u64 runs[5];
bool values[5];
// Test 2: Single bit (true)
BitVec single_bv = BitVecInit();
BitVecPush(&single_bv, true);
count = BitVecRunLengths(&single_bv, runs, values, 5);
// Test 3: Single bit (false)
BitVec single_false_bv = BitVecInit();
BitVecPush(&single_false_bv, false);
count = BitVecRunLengths(&single_false_bv, runs, values, 5);
// Test 4: All same bits (all true)
BitVec all_true_bv = BitVecInit();
for (int i = 0; i < 10; i++) {
BitVecPush(&all_true_bv, true);
// Test 5: Alternating bits (0101010)
BitVec alternating_bv = BitVecInit();
for (int i = 0; i < 7; i++) {
BitVecPush(&alternating_bv, i % 2 == 0); WriteFmt("Testing BitVecRunLengths boundary conditions\n");
BitVec bv = BitVecInit();
bool result = true;
// Test with large bitvector
BitVec large_bv = BitVecInit();
// Create pattern that results in many runs
WriteFmt("Testing BitVecPop\n");
BitVec bv = BitVecInit();
// Add some bits
WriteFmt("Testing BitVecRemove (single bit)\n");
BitVec bv = BitVecInit();
// Add some bits: true, false, true, false, true
WriteFmt("Testing BitVecRemoveRange\n");
BitVec bv = BitVecInit();
// Add some bits: true, false, true, true, false, true
WriteFmt("Testing BitVecRemoveFirst\n");
BitVec bv = BitVecInit();
// Add some bits: true, false, true, false, true
WriteFmt("Testing BitVecRemoveLast\n");
BitVec bv = BitVecInit();
// Add some bits: true, false, true, false, true
WriteFmt("Testing BitVecRemoveAll\n");
BitVec bv = BitVecInit();
// Add some bits: true, false, true, false, true, false
WriteFmt("Testing BitVecPop edge cases\n");
BitVec bv = BitVecInit();
bool result = true; WriteFmt("Testing BitVecRemove edge cases\n");
BitVec bv = BitVecInit();
bool result = true; WriteFmt("Testing BitVecRemoveRange edge cases\n");
BitVec bv = BitVecInit();
bool result = true; WriteFmt("Testing BitVecRemoveFirst/Last edge cases\n");
BitVec bv = BitVecInit();
bool result = true; WriteFmt("Testing BitVecRemoveAll edge cases\n");
BitVec bv = BitVecInit();
bool result = true; WriteFmt("Testing BitVec remove invalid range handling\n");
BitVec bv = BitVecInit();
// Test removing beyond capacity limit - should abort
WriteFmt("Testing BitVec pop bounds checking\n");
BitVec bv = BitVecInit();
// Test pop from empty bitvec - should abort
WriteFmt("Testing BitVec remove bounds checking\n");
BitVec bv = BitVecInit();
// Test remove from empty bitvec - should abort
WriteFmt("Testing BitVec remove range bounds checking\n");
BitVec bv = BitVecInit();
// Test remove range from empty bitvec - should abort
- In
BitVec.Math.c:55:
WriteFmt("Testing BitVecHammingDistance basic functionality\n");
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
bool result = true;- In
BitVec.Math.c:56:
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
bool result = true;- In
BitVec.Math.c:97:
WriteFmt("Testing BitVecHammingDistance edge cases\n");
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
bool result = true;- In
BitVec.Math.c:98:
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
bool result = true; WriteFmt("Testing BitVecJaccardSimilarity basic functionality\n");
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
bool result = true;
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
bool result = true; WriteFmt("Testing BitVecJaccardSimilarity edge cases\n");
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
bool result = true;
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
bool result = true; WriteFmt("Testing BitVecCosineSimilarity basic functionality\n");
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
bool result = true;
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
bool result = true; WriteFmt("Testing BitVecCosineSimilarity edge cases\n");
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
bool result = true;
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
bool result = true; WriteFmt("Testing BitVecDotProduct basic functionality\n");
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
bool result = true;
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
bool result = true; WriteFmt("Testing BitVecDotProduct edge cases\n");
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
bool result = true;
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
bool result = true; WriteFmt("Testing BitVecEditDistance basic functionality\n");
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
bool result = true;
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
bool result = true; WriteFmt("Testing BitVecEditDistance edge cases\n");
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
bool result = true;
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
bool result = true; WriteFmt("Testing BitVecCorrelation basic functionality\n");
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
bool result = true;
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
bool result = true; WriteFmt("Testing BitVecCorrelation edge cases\n");
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
bool result = true;
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
bool result = true; WriteFmt("Testing BitVecEntropy basic functionality\n");
BitVec bv = BitVecInit();
bool result = true; WriteFmt("Testing BitVecEntropy edge cases\n");
BitVec bv = BitVecInit();
bool result = true; WriteFmt("Testing BitVecAlignmentScore basic functionality\n");
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
bool result = true;
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
bool result = true; WriteFmt("Testing BitVecAlignmentScore edge cases\n");
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
bool result = true;
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
bool result = true; WriteFmt("Testing BitVecBestAlignment basic functionality\n");
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
bool result = true;
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
bool result = true; WriteFmt("Testing BitVecBestAlignment edge cases\n");
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
bool result = true;
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
bool result = true; WriteFmt("Testing BitVec Math stress tests\n");
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
bool result = true;
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
bool result = true;
// Test edit distance with smaller vectors (expensive operation)
BitVec small1 = BitVecInit();
BitVec small2 = BitVecInit();
for (int i = 0; i < 50; i++) { // Test edit distance with smaller vectors (expensive operation)
BitVec small1 = BitVecInit();
BitVec small2 = BitVecInit();
for (int i = 0; i < 50; i++) {
BitVecPush(&small1, i % 2 == 0); bool test_bitvec_hamming_distance_null_bv1(void) {
WriteFmt("Testing BitVecHammingDistance(NULL, bv2) - should fatal\n");
BitVec bv2 = BitVecInit();
BitVecPush(&bv2, true);
BitVecHammingDistance(NULL, &bv2); bool test_bitvec_hamming_distance_null_bv2(void) {
WriteFmt("Testing BitVecHammingDistance(bv1, NULL) - should fatal\n");
BitVec bv1 = BitVecInit();
BitVecPush(&bv1, true);
BitVecHammingDistance(&bv1, NULL); bool test_bitvec_jaccard_similarity_null_bv1(void) {
WriteFmt("Testing BitVecJaccardSimilarity(NULL, bv2) - should fatal\n");
BitVec bv2 = BitVecInit();
BitVecPush(&bv2, true);
BitVecJaccardSimilarity(NULL, &bv2); bool test_bitvec_jaccard_similarity_null_bv2(void) {
WriteFmt("Testing BitVecJaccardSimilarity(bv1, NULL) - should fatal\n");
BitVec bv1 = BitVecInit();
BitVecPush(&bv1, true);
BitVecJaccardSimilarity(&bv1, NULL); bool test_bitvec_cosine_similarity_null_bv1(void) {
WriteFmt("Testing BitVecCosineSimilarity(NULL, bv2) - should fatal\n");
BitVec bv2 = BitVecInit();
BitVecPush(&bv2, true);
BitVecCosineSimilarity(NULL, &bv2); bool test_bitvec_cosine_similarity_null_bv2(void) {
WriteFmt("Testing BitVecCosineSimilarity(bv1, NULL) - should fatal\n");
BitVec bv1 = BitVecInit();
BitVecPush(&bv1, true);
BitVecCosineSimilarity(&bv1, NULL); bool test_bitvec_dot_product_null_bv1(void) {
WriteFmt("Testing BitVecDotProduct(NULL, bv2) - should fatal\n");
BitVec bv2 = BitVecInit();
BitVecPush(&bv2, true);
BitVecDotProduct(NULL, &bv2); bool test_bitvec_dot_product_null_bv2(void) {
WriteFmt("Testing BitVecDotProduct(bv1, NULL) - should fatal\n");
BitVec bv1 = BitVecInit();
BitVecPush(&bv1, true);
BitVecDotProduct(&bv1, NULL); bool test_bitvec_edit_distance_null_bv1(void) {
WriteFmt("Testing BitVecEditDistance(NULL, bv2) - should fatal\n");
BitVec bv2 = BitVecInit();
BitVecPush(&bv2, true);
BitVecEditDistance(NULL, &bv2); bool test_bitvec_edit_distance_null_bv2(void) {
WriteFmt("Testing BitVecEditDistance(bv1, NULL) - should fatal\n");
BitVec bv1 = BitVecInit();
BitVecPush(&bv1, true);
BitVecEditDistance(&bv1, NULL); bool test_bitvec_correlation_null_bv1(void) {
WriteFmt("Testing BitVecCorrelation(NULL, bv2) - should fatal\n");
BitVec bv2 = BitVecInit();
BitVecPush(&bv2, true);
BitVecCorrelation(NULL, &bv2); bool test_bitvec_correlation_null_bv2(void) {
WriteFmt("Testing BitVecCorrelation(bv1, NULL) - should fatal\n");
BitVec bv1 = BitVecInit();
BitVecPush(&bv1, true);
BitVecCorrelation(&bv1, NULL); bool test_bitvec_alignment_score_null_bv1(void) {
WriteFmt("Testing BitVecAlignmentScore(NULL, bv2, 1, -1) - should fatal\n");
BitVec bv2 = BitVecInit();
BitVecPush(&bv2, true);
BitVecAlignmentScore(NULL, &bv2, 1, -1); bool test_bitvec_alignment_score_null_bv2(void) {
WriteFmt("Testing BitVecAlignmentScore(bv1, NULL, 1, -1) - should fatal\n");
BitVec bv1 = BitVecInit();
BitVecPush(&bv1, true);
BitVecAlignmentScore(&bv1, NULL, 1, -1); bool test_bitvec_best_alignment_null_bv1(void) {
WriteFmt("Testing BitVecBestAlignment(NULL, bv2) - should fatal\n");
BitVec bv2 = BitVecInit();
BitVecPush(&bv2, true);
BitVecBestAlignment(NULL, &bv2); bool test_bitvec_best_alignment_null_bv2(void) {
WriteFmt("Testing BitVecBestAlignment(bv1, NULL) - should fatal\n");
BitVec bv1 = BitVecInit();
BitVecPush(&bv1, true);
BitVecBestAlignment(&bv1, NULL); WriteFmt("Testing BitVecEquals\n");
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec bv3 = BitVecInit();
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec bv3 = BitVecInit(); BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec bv3 = BitVecInit();
// Test equal empty bitvectors
WriteFmt("Testing BitVecCompare\n");
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
// Test equal bitvectors
WriteFmt("Testing BitVecLexCompare\n");
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
// Test lexicographic comparison
WriteFmt("Testing BitVecNumericalCompare\n");
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
// Create bitvectors representing different numbers
WriteFmt("Testing BitVecWeightCompare\n");
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
// bv1: 111 (3 ones)
WriteFmt("Testing BitVecIsSubset\n");
BitVec subset = BitVecInit();
BitVec superset = BitVecInit();
BitVec subset = BitVecInit();
BitVec superset = BitVecInit();
// Create superset: 1111
WriteFmt("Testing BitVecSignedCompare\n");
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
// Test positive vs negative (MSB is sign bit)
WriteFmt("Testing BitVecIsSuperset\n");
BitVec superset = BitVecInit();
BitVec subset = BitVecInit();
BitVec superset = BitVecInit();
BitVec subset = BitVecInit();
// Create superset: 1111
WriteFmt("Testing BitVecOverlaps\n");
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
// Create overlapping bitvectors
WriteFmt("Testing BitVecDisjoint and BitVecIntersects\n");
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
// Create disjoint bitvectors
WriteFmt("Testing BitVecEqualsRange\n");
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
// Create test patterns
WriteFmt("Testing BitVecCompareRange\n");
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
// Create test patterns
WriteFmt("Testing BitVecIsLexicographicallyLess and BitVecIsNumericallyLess\n");
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
// Test lexicographic comparison
WriteFmt("Testing BitVecIsSorted\n");
BitVec bv = BitVecInit();
// Test empty bitvector (should be sorted)
WriteFmt("Testing BitVec compare edge cases\n");
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
bool result = true;
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
bool result = true; WriteFmt("Testing BitVec set operations edge cases\n");
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
bool result = true;
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
bool result = true; WriteFmt("Testing BitVec comprehensive comparison operations\n");
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
bool result = true;
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
bool result = true;
// Test transitivity: if A < B and B < C, then A < C
BitVec bv3 = BitVecInit();
// bv3: larger than bv2
for (int i = 0; i < 8; i++) {
// Test subset/superset consistency
BitVec subset = BitVecInit();
BitVec superset = BitVecInit(); // Test subset/superset consistency
BitVec subset = BitVecInit();
BitVec superset = BitVecInit();
// Create actual subset/superset relationship
WriteFmt("Testing BitVec large-scale comparison operations\n");
BitVec large1 = BitVecInit();
BitVec large2 = BitVecInit();
bool result = true;
BitVec large1 = BitVecInit();
BitVec large2 = BitVecInit();
bool result = true;
// Verify signed vs unsigned comparison differences
BitVec pos = BitVecInit();
BitVec neg = BitVecInit(); // Verify signed vs unsigned comparison differences
BitVec pos = BitVecInit();
BitVec neg = BitVecInit();
// Positive number (MSB = 0): 01111111
WriteFmt("Testing BitVec compare NULL pointer handling\n");
BitVec bv = BitVecInit();
// Test NULL pointer - should abort
WriteFmt("Testing BitVec range operations NULL handling\n");
BitVec bv = BitVecInit();
// Test NULL pointer in range operations - should abort
WriteFmt("Testing BitVec range operations bounds checking\n");
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
// Create small bitvectors
- In
BitVec.Init.c:24:
// Test BitVecInit function
bool test_bitvec_init(void) {
WriteFmt("Testing BitVecInit\n");
// Test basic initialization
- In
BitVec.Init.c:27:
// Test basic initialization
BitVec bv = BitVecInit();
// Check initial state
- In
BitVec.Init.c:45:
WriteFmt("Testing BitVecDeinit\n");
BitVec bv = BitVecInit();
// Add some data to make sure deinitialization works with allocated memory
- In
BitVec.Init.c:73:
WriteFmt("Testing BitVecReserve\n");
BitVec bv = BitVecInit();
// Reserve space for 50 bits
WriteFmt("Testing BitVecClear\n");
BitVec bv = BitVecInit();
// Add some data
WriteFmt("Testing BitVecResize\n");
BitVec bv = BitVecInit();
// Add some initial data
// Edge case tests - boundary conditions and unusual but valid inputs
bool test_bitvec_init_edge_cases(void) {
WriteFmt("Testing BitVecInit edge cases\n");
// Test multiple initializations
// Test multiple initializations
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec bv3 = BitVecInit(); // Test multiple initializations
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec bv3 = BitVecInit(); BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec bv3 = BitVecInit();
bool result = (bv1.length == 0) && (bv2.length == 0) && (bv3.length == 0); WriteFmt("Testing BitVecReserve edge cases\n");
BitVec bv = BitVecInit();
bool result = true; WriteFmt("Testing BitVecReu64 edge cases\n");
BitVec bv = BitVecInit();
bool result = true; WriteFmt("Testing BitVecClear edge cases\n");
BitVec bv = BitVecInit();
bool result = true; // Test multiple init/deinit cycles
for (int cycle = 0; cycle < 100; cycle++) {
BitVec bv = BitVecInit();
// Add some data
// failure rather than aborting. The Must variant aborts, so use it here
// to validate the deadend abort path.
BitVec bv = BitVecInit();
BitVecMustReserve(&bv, SIZE_MAX); // failure rather than aborting. The Must variant aborts, so use it here
// to validate the deadend abort path.
BitVec bv = BitVecInit();
BitVecMustResize(&bv, SIZE_MAX); WriteFmt("Testing BitVec bitwise operations NULL handling\n");
BitVec bv = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec bv = BitVecInit();
BitVec bv2 = BitVecInit();
// Test NULL pointer - should abort
WriteFmt("Testing BitVec AND with NULL result handling\n");
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVecPush(&bv1, true);
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVecPush(&bv1, true);
BitVecPush(&bv2, false); WriteFmt("Testing BitVec OR with NULL operand handling\n");
BitVec result = BitVecInit();
BitVec bv1 = BitVecInit();
BitVec result = BitVecInit();
BitVec bv1 = BitVecInit();
// Test NULL operand - should abort
WriteFmt("Testing BitVec XOR with NULL second operand handling\n");
BitVec result = BitVecInit();
BitVec bv1 = BitVecInit();
BitVec result = BitVecInit();
BitVec bv1 = BitVecInit();
// Test NULL second operand - should abort
WriteFmt("Testing BitVec NOT with NULL handling\n");
BitVec result = BitVecInit();
// Test NULL operand - should abort
WriteFmt("Testing BitVecAnd\n");
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec result = BitVecInit();
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec result = BitVecInit(); BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec result = BitVecInit();
// Set up first bitvector: 1101
WriteFmt("Testing BitVecOr\n");
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec result = BitVecInit();
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec result = BitVecInit(); BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec result = BitVecInit();
// Set up first bitvector: 1100
WriteFmt("Testing BitVecXor\n");
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec result = BitVecInit();
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec result = BitVecInit(); BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec result = BitVecInit();
// Set up first bitvector: 1100
WriteFmt("Testing BitVecNot\n");
BitVec bv = BitVecInit();
BitVec result = BitVecInit();
BitVec bv = BitVecInit();
BitVec result = BitVecInit();
// Set up bitvector: 1010
WriteFmt("Testing BitVecShiftLeft\n");
BitVec bv = BitVecInit();
// Set up bitvector: 1011 (indices 0,1,2,3)
WriteFmt("Testing BitVecShiftRight\n");
BitVec bv = BitVecInit();
// Set up bitvector: 1011
WriteFmt("Testing BitVecRotateLeft\n");
BitVec bv = BitVecInit();
// Set up bitvector: 1011
WriteFmt("Testing BitVecRotateRight\n");
BitVec bv = BitVecInit();
// Set up bitvector: 1011
WriteFmt("Testing BitVecReverse\n");
BitVec bv = BitVecInit();
// Set up bitvector: 1011
WriteFmt("Testing BitVec shift edge cases\n");
BitVec bv = BitVecInit();
bool result = true; WriteFmt("Testing BitVec rotate edge cases\n");
BitVec bv = BitVecInit();
bool result = true; WriteFmt("Testing BitVec bitwise operations edge cases\n");
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
bool result = true;
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
bool result = true;
// Test operations on empty bitvecs
BitVec result_bv = BitVecInit();
BitVecAnd(&result_bv, &bv1, &bv2);
result = result && (result_bv.length == 0); WriteFmt("Testing BitVecReverse edge cases\n");
BitVec bv = BitVecInit();
bool result = true; WriteFmt("Testing BitVec comprehensive bitwise operations\n");
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec result = BitVecInit();
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec result = BitVecInit();
bool test_result = true; BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec result = BitVecInit();
bool test_result = true; WriteFmt("Testing BitVec comprehensive shift operations\n");
BitVec bv = BitVecInit();
bool result = true; WriteFmt("Testing BitVec comprehensive rotate operations\n");
BitVec bv = BitVecInit();
bool result = true; WriteFmt("Testing BitVec bitwise identity operations\n");
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec result = BitVecInit();
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec result = BitVecInit();
bool test_result = true; BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec result = BitVecInit();
bool test_result = true; WriteFmt("Testing BitVec bitwise commutative properties\n");
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec result1 = BitVecInit();
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec result1 = BitVecInit();
BitVec result2 = BitVecInit(); BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec result1 = BitVecInit();
BitVec result2 = BitVecInit();
bool test_result = true; BitVec bv2 = BitVecInit();
BitVec result1 = BitVecInit();
BitVec result2 = BitVecInit();
bool test_result = true; WriteFmt("Testing BitVec bitwise operations with large patterns\n");
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec result = BitVecInit();
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec result = BitVecInit();
bool test_result = true; BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec result = BitVecInit();
bool test_result = true;- In
BitVec.Type.c:19:
// Create a bitvector
BitVec bitvec = BitVecInit();
// Check initial state
- In
BitVec.Type.c:35:
// Create a valid bitvector
BitVec bitvec = BitVecInit();
// This should not abort
WriteFmt("Testing BitVecRunLengths with NULL runs array\n");
BitVec bv = BitVecInit();
BitVecPush(&bv, true);
bool values[5]; WriteFmt("Testing BitVecRunLengths with NULL values array\n");
BitVec bv = BitVecInit();
BitVecPush(&bv, true);
u64 runs[5]; WriteFmt("Testing BitVecRunLengths with zero max_runs\n");
BitVec bv = BitVecInit();
BitVecPush(&bv, true);
u64 runs[5];
// Test foreach with invalid bitvec (length > 0 but data is NULL)
BitVec bv = BitVecInit();
bv.length = 5;
bv.capacity = 10; WriteFmt("Testing BitVecShrinkToFit\n");
BitVec bv = BitVecInit();
// Add some bits
WriteFmt("Testing BitVecReserve\n");
BitVec bv = BitVecInit();
// Add some bits
WriteFmt("Testing BitVecSwap\n");
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
// Set up first bitvector
WriteFmt("Testing BitVecClone\n");
BitVec original = BitVecInit();
// Set up original bitvector
alloc.flags = 0x3C3Cu;
BitVec original = BitVecInit(alloc);
original.allocator.state = (void *)&original; WriteFmt("Testing BitVecShrinkToFit edge cases\n");
BitVec bv = BitVecInit();
bool result = true; WriteFmt("Testing BitVecReserve edge cases\n");
BitVec bv = BitVecInit();
bool result = true; WriteFmt("Testing BitVecSwap edge cases\n");
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
bool result = true;
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
bool result = true; WriteFmt("Testing BitVecClone edge cases\n");
BitVec bv = BitVecInit();
bool result = true; // Test multiple clone/swap/reu64 cycles
for (int cycle = 0; cycle < 10; cycle++) {
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit(); for (int cycle = 0; cycle < 10; cycle++) {
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
// Add random-sized data
WriteFmt("Testing BitVec swap NULL handling\n");
BitVec bv = BitVecInit();
// Test NULL pointer - should abort
WriteFmt("Testing BitVecToStr\n");
BitVec bv = BitVecInit();
// Create pattern: 1011
WriteFmt("Testing BitVecToBytes\n");
BitVec bv = BitVecInit();
// Create pattern: 10110011 (0xB3)
WriteFmt("Testing BitVecToInteger\n");
BitVec bv = BitVecInit();
// Create pattern: 1011 (decimal 11 if MSB first, 13 if LSB first)
// Test with larger pattern
BitVec bv2 = BitVecInit();
for (int i = 0; i < 8; i++) {
BitVecPush(&bv2, (i % 2 == 0)); // Alternating pattern
WriteFmt("Testing BitVec convert edge cases\n");
BitVec bv = BitVecInit();
bool result = true; WriteFmt("Testing BitVec bytes conversion edge cases\n");
BitVec bv = BitVecInit();
bool result = true; WriteFmt("Testing BitVec integer conversion edge cases\n");
BitVec bv = BitVecInit();
bool result = true;
// Test oversized bitvec to integer (should handle gracefully)
BitVec oversized = BitVecInit();
for (int i = 0; i < 100; i++) { // 100 bits > 64 bit limit
BitVecPush(&oversized, i % 2 == 0);
// Test zero-length conversions
BitVec empty = BitVecInit();
Str empty_str = BitVecToStr(&empty);
// Test with very large bitvectors
BitVec large_bv = BitVecInit();
// Create a 1000-bit pattern
WriteFmt("Testing BitVec bytes bounds failures\n");
BitVec bv = BitVecInit();
BitVecPush(&bv, true); WriteFmtLn("Testing BitVecAnd");
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec result = BitVecInit();
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec result = BitVecInit(); BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec result = BitVecInit();
// Set up first bitvector: 1101
WriteFmtLn("Testing BitVecOr");
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec result = BitVecInit();
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec result = BitVecInit(); BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec result = BitVecInit();
// Set up first bitvector: 1100
WriteFmtLn("Testing BitVecXor");
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec result = BitVecInit();
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec result = BitVecInit(); BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec result = BitVecInit();
// Set up first bitvector: 1100
WriteFmtLn("Testing BitVecNot");
BitVec bv = BitVecInit();
BitVec result = BitVecInit();
BitVec bv = BitVecInit();
BitVec result = BitVecInit();
// Set up bitvector: 1010
WriteFmtLn("Testing BitVecShiftLeft");
BitVec bv = BitVecInit();
// Set up bitvector: 1011 (indices 0,1,2,3)
WriteFmtLn("Testing BitVecShiftRight");
BitVec bv = BitVecInit();
// Set up bitvector: 1011
WriteFmtLn("Testing BitVecRotateLeft");
BitVec bv = BitVecInit();
// Set up bitvector: 1011
WriteFmtLn("Testing BitVecRotateRight");
BitVec bv = BitVecInit();
// Set up bitvector: 1011
WriteFmtLn("Testing BitVecReverse");
BitVec bv = BitVecInit();
// Set up bitvector: 1011
WriteFmtLn("Testing BitVec shift edge cases");
BitVec bv = BitVecInit();
bool result = true; WriteFmtLn("Testing BitVec rotate edge cases");
BitVec bv = BitVecInit();
bool result = true; WriteFmtLn("Testing BitVec bitwise operations edge cases");
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
bool result = true;
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
bool result = true;
// Test operations on empty bitvecs
BitVec result_bv = BitVecInit();
BitVecAnd(&result_bv, &bv1, &bv2);
result = result && (result_bv.length == 0); WriteFmtLn("Testing BitVecReverse edge cases");
BitVec bv = BitVecInit();
bool result = true; WriteFmtLn("Testing BitVec comprehensive bitwise operations");
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec result = BitVecInit();
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec result = BitVecInit();
bool test_result = true; BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec result = BitVecInit();
bool test_result = true; WriteFmtLn("Testing BitVec comprehensive shift operations");
BitVec bv = BitVecInit();
bool result = true; WriteFmtLn("Testing BitVec comprehensive rotate operations");
BitVec bv = BitVecInit();
bool result = true; WriteFmtLn("Testing BitVec bitwise identity operations");
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec result = BitVecInit();
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec result = BitVecInit();
bool test_result = true; BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec result = BitVecInit();
bool test_result = true; WriteFmtLn("Testing BitVec bitwise commutative properties");
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec result1 = BitVecInit();
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec result1 = BitVecInit();
BitVec result2 = BitVecInit(); BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec result1 = BitVecInit();
BitVec result2 = BitVecInit();
bool test_result = true; BitVec bv2 = BitVecInit();
BitVec result1 = BitVecInit();
BitVec result2 = BitVecInit();
bool test_result = true; WriteFmtLn("Testing BitVec bitwise operations with large patterns");
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec result = BitVecInit();
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec result = BitVecInit();
bool test_result = true; BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec result = BitVecInit();
bool test_result = true; WriteFmtLn("Testing BitVec bitwise operations NULL handling");
BitVec bv = BitVecInit();
BitVec bv2 = BitVecInit();
BitVec bv = BitVecInit();
BitVec bv2 = BitVecInit();
// Test NULL pointer - should abort
WriteFmtLn("Testing BitVec AND with NULL result handling");
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVecPush(&bv1, true);
BitVec bv1 = BitVecInit();
BitVec bv2 = BitVecInit();
BitVecPush(&bv1, true);
BitVecPush(&bv2, false); WriteFmtLn("Testing BitVec OR with NULL operand handling");
BitVec result = BitVecInit();
BitVec bv1 = BitVecInit();
BitVec result = BitVecInit();
BitVec bv1 = BitVecInit();
// Test NULL operand - should abort
WriteFmtLn("Testing BitVec XOR with NULL second operand handling");
BitVec result = BitVecInit();
BitVec bv1 = BitVecInit();
BitVec result = BitVecInit();
BitVec bv1 = BitVecInit();
// Test NULL second operand - should abort
WriteFmtLn("Testing BitVec NOT with NULL handling");
BitVec result = BitVecInit();
// Test NULL operand - should abort
WriteFmt("Testing BitVecPush\n");
BitVec bv = BitVecInit();
// Push some bits
WriteFmt("Testing BitVecInsert (single bit)\n");
BitVec bv = BitVecInit();
// Insert at index 0 (empty bitvector)
WriteFmt("Testing BitVecInsertRange\n");
BitVec bv = BitVecInit();
// Create target bitvector
WriteFmt("Testing BitVecInsertMultiple\n");
BitVec bv = BitVecInit();
BitVec source = BitVecInit();
BitVec bv = BitVecInit();
BitVec source = BitVecInit();
// Start with some bits
WriteFmt("Testing BitVecInsertPattern\n");
BitVec bv = BitVecInit();
// Start with some bits
// Test with different pattern - 0x05 (0101 in binary) using only 3 bits
BitVec bv2 = BitVecInit();
BitVecPush(&bv2, true); WriteFmt("Testing BitVecInsertRange edge cases\n");
BitVec bv = BitVecInit();
bool result = true; WriteFmt("Testing BitVecInsertMultiple edge cases\n");
BitVec bv = BitVecInit();
BitVec empty = BitVecInit();
BitVec source = BitVecInit();
BitVec bv = BitVecInit();
BitVec empty = BitVecInit();
BitVec source = BitVecInit();
bool result = true; BitVec bv = BitVecInit();
BitVec empty = BitVecInit();
BitVec source = BitVecInit();
bool result = true; WriteFmt("Testing BitVecInsertPattern edge cases\n");
BitVec bv = BitVecInit();
bool result = true; WriteFmt("Testing BitVec insert invalid range handling\n");
BitVec bv = BitVecInit();
// Test inserting beyond capacity limit - should abort
WriteFmt("Testing BitVecGet\n");
BitVec bv = BitVecInit();
// Add a pattern: 1010
WriteFmt("Testing BitVecSet\n");
BitVec bv = BitVecInit();
// Initialize with some bits
WriteFmt("Testing BitVecFlip\n");
BitVec bv = BitVecInit();
// Initialize with pattern: 101
WriteFmt("Testing BitVec length and capacity operations\n");
BitVec bv = BitVecInit();
// Initially should be empty
WriteFmt("Testing BitVec count operations\n");
BitVec bv = BitVecInit();
// Create pattern: 1101000
WriteFmt("Testing BitVecGet edge cases\n");
BitVec bv = BitVecInit();
bool result = true; WriteFmt("Testing BitVecSet edge cases\n");
BitVec bv = BitVecInit();
bool result = true; WriteFmt("Testing BitVecFlip edge cases\n");
BitVec bv = BitVecInit();
bool result = true; WriteFmt("Testing BitVec count edge cases\n");
BitVec bv = BitVecInit();
bool result = true; WriteFmt("Testing BitVec multiple access operations\n");
BitVec bv = BitVecInit();
bool result = true; WriteFmt("Testing BitVec large pattern access\n");
BitVec bv = BitVecInit();
bool result = true; WriteFmt("Testing BitVec macro functions\n");
BitVec bv = BitVecInit();
bool result = true; WriteFmt("Testing BitVec access stress test\n");
BitVec bv = BitVecInit();
bool result = true; WriteFmt("Testing BitVec comprehensive bit patterns\n");
BitVec bv = BitVecInit();
bool result = true; WriteFmt("Testing BitVec get bounds checking\n");
BitVec bv = BitVecInit();
// Test get from empty bitvec - should abort
WriteFmt("Testing BitVec set bounds checking\n");
BitVec bv = BitVecInit();
// Test set on empty bitvec - should abort
WriteFmt("Testing BitVec flip bounds checking\n");
BitVec bv = BitVecInit();
// Test flip on empty bitvec - should abort
WriteFmt("Testing BitVec get with large out-of-bounds index\n");
BitVec bv = BitVecInit();
BitVecPush(&bv, true);
BitVecPush(&bv, false); WriteFmt("Testing BitVec set with large out-of-bounds index\n");
BitVec bv = BitVecInit();
BitVecPush(&bv, true);
BitVecPush(&bv, false); WriteFmt("Testing BitVec flip with edge case out-of-bounds index\n");
BitVec bv = BitVecInit();
for (int i = 0; i < 10; i++) {
BitVecPush(&bv, i % 2 == 0); WriteFmt("Testing BitVec get with maximum index value\n");
BitVec bv = BitVecInit();
BitVecPush(&bv, true); WriteFmt("Testing BitVecFind and BitVecFindLast functions\n");
BitVec bv = BitVecInit();
bool result = true; WriteFmt("Testing BitVecAll, BitVecAny, BitVecNone functions\n");
BitVec bv = BitVecInit();
bool result = true; WriteFmt("Testing BitVecLongestRun function\n");
BitVec bv = BitVecInit();
bool result = true; WriteFmt("Testing BitVecFind edge cases\n");
BitVec bv = BitVecInit();
bool result = true; WriteFmt("Testing BitVec predicate edge cases\n");
BitVec bv = BitVecInit();
bool result = true; WriteFmt("Testing BitVecLongestRun edge cases\n");
BitVec bv = BitVecInit();
bool result = true; WriteFmt("Testing basic BitVec pattern functions\n");
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
bool result = true;
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
bool result = true; WriteFmt("Testing BitVecFindPattern function\n");
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
bool result = true;
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
bool result = true; WriteFmt("Testing BitVecFindLastPattern function\n");
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
bool result = true;
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
bool result = true; WriteFmt("Testing BitVecFindAllPattern function\n");
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
bool result = true;
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
bool result = true; WriteFmt("Testing BitVec pattern edge cases\n");
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
bool result = true;
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
bool result = true; WriteFmt("Testing BitVec pattern stress tests\n");
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
bool result = true;
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
bool result = true; WriteFmt("Testing BitVecFindPattern(NULL, pattern) - should fatal\n");
BitVec pattern = BitVecInit();
BitVecPush(&pattern, true); WriteFmt("Testing BitVecFindPattern(source, NULL) - should fatal\n");
BitVec source = BitVecInit();
BitVecPush(&source, true);
BitVecPush(&source, false); WriteFmt("Testing BitVecFindLastPattern(NULL, pattern) - should fatal\n");
BitVec pattern = BitVecInit();
BitVecPush(&pattern, true); WriteFmt("Testing BitVecFindLastPattern(source, NULL) - should fatal\n");
BitVec source = BitVecInit();
BitVecPush(&source, true);
BitVecPush(&source, false); WriteFmt("Testing BitVecFindAllPattern(source, NULL, results, 10) - should fatal\n");
BitVec source = BitVecInit();
size results[10];
BitVecPush(&source, true); WriteFmt("Testing BitVecFindAllPattern(source, pattern, NULL, 10) - should fatal\n");
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
BitVecPush(&source, true);
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
BitVecPush(&source, true);
BitVecPush(&source, false); WriteFmt("Testing BitVecFindAllPattern(source, pattern, results, 0) - should fatal\n");
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
size results[10];
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
size results[10];
BitVecPush(&source, true); WriteFmt("Testing BitVecStartsWith basic functionality\n");
BitVec source = BitVecInit();
BitVec prefix = BitVecInit();
bool result = true;
BitVec source = BitVecInit();
BitVec prefix = BitVecInit();
bool result = true; WriteFmt("Testing BitVecStartsWith edge cases\n");
BitVec source = BitVecInit();
BitVec prefix = BitVecInit();
bool result = true;
BitVec source = BitVecInit();
BitVec prefix = BitVecInit();
bool result = true; WriteFmt("Testing BitVecEndsWith basic functionality\n");
BitVec source = BitVecInit();
BitVec suffix = BitVecInit();
bool result = true;
BitVec source = BitVecInit();
BitVec suffix = BitVecInit();
bool result = true; WriteFmt("Testing BitVecEndsWith edge cases\n");
BitVec source = BitVecInit();
BitVec suffix = BitVecInit();
bool result = true;
BitVec source = BitVecInit();
BitVec suffix = BitVecInit();
bool result = true; WriteFmt("Testing BitVecContains basic functionality\n");
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
bool result = true;
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
bool result = true; WriteFmt("Testing BitVecContainsAt basic functionality\n");
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
bool result = true;
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
bool result = true; WriteFmt("Testing BitVecContainsAt edge cases\n");
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
bool result = true;
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
bool result = true; WriteFmt("Testing BitVecCountPattern basic functionality\n");
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
bool result = true;
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
bool result = true; WriteFmt("Testing BitVecRFindPattern basic functionality\n");
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
bool result = true;
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
bool result = true; WriteFmt("Testing BitVecReplace basic functionality\n");
BitVec source = BitVecInit();
BitVec old_pattern = BitVecInit();
BitVec new_pattern = BitVecInit();
BitVec source = BitVecInit();
BitVec old_pattern = BitVecInit();
BitVec new_pattern = BitVecInit();
bool result = true; BitVec source = BitVecInit();
BitVec old_pattern = BitVecInit();
BitVec new_pattern = BitVecInit();
bool result = true; WriteFmt("Testing BitVecReplaceAll basic functionality\n");
BitVec source = BitVecInit();
BitVec old_pattern = BitVecInit();
BitVec new_pattern = BitVecInit();
BitVec source = BitVecInit();
BitVec old_pattern = BitVecInit();
BitVec new_pattern = BitVecInit();
bool result = true; BitVec source = BitVecInit();
BitVec old_pattern = BitVecInit();
BitVec new_pattern = BitVecInit();
bool result = true; WriteFmt("Testing BitVecMatches basic functionality\n");
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
BitVec wildcard = BitVecInit();
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
BitVec wildcard = BitVecInit();
bool result = true; BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
BitVec wildcard = BitVecInit();
bool result = true; WriteFmt("Testing BitVecFuzzyMatch basic functionality\n");
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
bool result = true;
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
bool result = true; WriteFmt("Testing BitVecRegexMatch basic functionality\n");
BitVec source = BitVecInit();
bool result = true; WriteFmt("Testing BitVecPrefixMatch basic functionality\n");
BitVec source = BitVecInit();
BitVec patterns[3];
bool result = true; // Initialize patterns
for (int i = 0; i < 3; i++) {
patterns[i] = BitVecInit();
} WriteFmt("Testing BitVecSuffixMatch basic functionality\n");
BitVec source = BitVecInit();
BitVec patterns[3];
bool result = true; // Initialize patterns
for (int i = 0; i < 3; i++) {
patterns[i] = BitVecInit();
} bool test_bitvec_starts_with_null_source(void) {
WriteFmt("Testing BitVecStartsWith(NULL, prefix) - should fatal\n");
BitVec prefix = BitVecInit();
BitVecPush(&prefix, true);
BitVecStartsWith(NULL, &prefix); bool test_bitvec_starts_with_null_prefix(void) {
WriteFmt("Testing BitVecStartsWith(source, NULL) - should fatal\n");
BitVec source = BitVecInit();
BitVecPush(&source, true);
BitVecStartsWith(&source, NULL); bool test_bitvec_ends_with_null_source(void) {
WriteFmt("Testing BitVecEndsWith(NULL, suffix) - should fatal\n");
BitVec suffix = BitVecInit();
BitVecPush(&suffix, true);
BitVecEndsWith(NULL, &suffix); bool test_bitvec_ends_with_null_suffix(void) {
WriteFmt("Testing BitVecEndsWith(source, NULL) - should fatal\n");
BitVec source = BitVecInit();
BitVecPush(&source, true);
BitVecEndsWith(&source, NULL); bool test_bitvec_contains_at_null_source(void) {
WriteFmt("Testing BitVecContainsAt(NULL, pattern, 0) - should fatal\n");
BitVec pattern = BitVecInit();
BitVecPush(&pattern, true);
BitVecContainsAt(NULL, &pattern, 0); bool test_bitvec_contains_at_null_pattern(void) {
WriteFmt("Testing BitVecContainsAt(source, NULL, 0) - should fatal\n");
BitVec source = BitVecInit();
BitVecPush(&source, true);
BitVecContainsAt(&source, NULL, 0); bool test_bitvec_matches_null_source(void) {
WriteFmt("Testing BitVecMatches(NULL, pattern, wildcard) - should fatal\n");
BitVec pattern = BitVecInit();
BitVec wildcard = BitVecInit();
BitVecPush(&pattern, true); WriteFmt("Testing BitVecMatches(NULL, pattern, wildcard) - should fatal\n");
BitVec pattern = BitVecInit();
BitVec wildcard = BitVecInit();
BitVecPush(&pattern, true);
BitVecPush(&wildcard, false); bool test_bitvec_regex_match_null_pattern(void) {
WriteFmt("Testing BitVecRegexMatch(source, NULL) - should fatal\n");
BitVec source = BitVecInit();
BitVecPush(&source, true);
BitVecRegexMatch(&source, NULL); bool test_bitvec_prefix_match_null_source(void) {
WriteFmt("Testing BitVecPrefixMatch(NULL, patterns, 1) - should fatal\n");
BitVec patterns[1] = {BitVecInit()};
BitVecPush(&patterns[0], true);
BitVecPrefixMatch(NULL, patterns, 1); bool test_bitvec_prefix_match_null_patterns(void) {
WriteFmt("Testing BitVecPrefixMatch(source, NULL, 1) - should fatal\n");
BitVec source = BitVecInit();
BitVecPush(&source, true);
BitVecPrefixMatch(&source, NULL, 1); bool test_bitvec_suffix_match_null_source(void) {
WriteFmt("Testing BitVecSuffixMatch(NULL, patterns, 1) - should fatal\n");
BitVec patterns[1] = {BitVecInit()};
BitVecPush(&patterns[0], true);
BitVecSuffixMatch(NULL, patterns, 1); bool test_bitvec_suffix_match_null_patterns(void) {
WriteFmt("Testing BitVecSuffixMatch(source, NULL, 1) - should fatal\n");
BitVec source = BitVecInit();
BitVecPush(&source, true);
BitVecSuffixMatch(&source, NULL, 1); WriteFmt("Testing basic BitVec pattern functions\n");
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
bool result = true;
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
bool result = true; WriteFmt("Testing BitVecFindPattern function\n");
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
bool result = true;
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
bool result = true; WriteFmt("Testing BitVecFindLastPattern function\n");
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
bool result = true;
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
bool result = true; WriteFmt("Testing BitVecFindAllPattern function\n");
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
bool result = true;
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
bool result = true; WriteFmt("Testing BitVec pattern edge cases\n");
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
bool result = true;
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
bool result = true; WriteFmt("Testing BitVec pattern stress tests\n");
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
bool result = true;
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
bool result = true; WriteFmt("Testing BitVecStartsWith basic functionality\n");
BitVec source = BitVecInit();
BitVec prefix = BitVecInit();
bool result = true;
BitVec source = BitVecInit();
BitVec prefix = BitVecInit();
bool result = true; WriteFmt("Testing BitVecStartsWith edge cases\n");
BitVec source = BitVecInit();
BitVec prefix = BitVecInit();
bool result = true;
BitVec source = BitVecInit();
BitVec prefix = BitVecInit();
bool result = true; WriteFmt("Testing BitVecEndsWith basic functionality\n");
BitVec source = BitVecInit();
BitVec suffix = BitVecInit();
bool result = true;
BitVec source = BitVecInit();
BitVec suffix = BitVecInit();
bool result = true; WriteFmt("Testing BitVecEndsWith edge cases\n");
BitVec source = BitVecInit();
BitVec suffix = BitVecInit();
bool result = true;
BitVec source = BitVecInit();
BitVec suffix = BitVecInit();
bool result = true; WriteFmt("Testing BitVecFindPattern basic functionality\n");
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
bool result = true;
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
bool result = true; WriteFmt("Testing BitVecContainsAt basic functionality\n");
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
bool result = true;
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
bool result = true; WriteFmt("Testing BitVecContainsAt edge cases\n");
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
bool result = true;
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
bool result = true; WriteFmt("Testing BitVecCountPattern basic functionality\n");
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
bool result = true;
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
bool result = true; WriteFmt("Testing BitVecRFindPattern basic functionality\n");
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
bool result = true;
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
bool result = true; WriteFmt("Testing BitVecReplace basic functionality\n");
BitVec source = BitVecInit();
BitVec old_pattern = BitVecInit();
BitVec new_pattern = BitVecInit();
BitVec source = BitVecInit();
BitVec old_pattern = BitVecInit();
BitVec new_pattern = BitVecInit();
bool result = true; BitVec source = BitVecInit();
BitVec old_pattern = BitVecInit();
BitVec new_pattern = BitVecInit();
bool result = true; WriteFmt("Testing BitVecReplaceAll basic functionality\n");
BitVec source = BitVecInit();
BitVec old_pattern = BitVecInit();
BitVec new_pattern = BitVecInit();
BitVec source = BitVecInit();
BitVec old_pattern = BitVecInit();
BitVec new_pattern = BitVecInit();
bool result = true; BitVec source = BitVecInit();
BitVec old_pattern = BitVecInit();
BitVec new_pattern = BitVecInit();
bool result = true; WriteFmt("Testing BitVecMatches basic functionality\n");
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
BitVec wildcard = BitVecInit();
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
BitVec wildcard = BitVecInit();
bool result = true; BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
BitVec wildcard = BitVecInit();
bool result = true; WriteFmt("Testing BitVecFuzzyMatch basic functionality\n");
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
bool result = true;
BitVec source = BitVecInit();
BitVec pattern = BitVecInit();
bool result = true; WriteFmt("Testing BitVecRegexMatch basic functionality\n");
BitVec source = BitVecInit();
bool result = true; WriteFmt("Testing BitVecPrefixMatch basic functionality\n");
BitVec source = BitVecInit();
BitVecs patterns = VecInitWithDeepCopy(NULL, BitVecDeinit);
bool result = true; BitVec *p2 = VecPtrAt(&patterns, 2);
*p0 = BitVecInit();
*p1 = BitVecInit();
*p2 = BitVecInit();
*p0 = BitVecInit();
*p1 = BitVecInit();
*p2 = BitVecInit(); *p0 = BitVecInit();
*p1 = BitVecInit();
*p2 = BitVecInit();
// Pattern 0: 111 (should not match)
WriteFmt("Testing BitVecSuffixMatch basic functionality\n");
BitVec source = BitVecInit();
BitVecs patterns = VecInitWithDeepCopy(NULL, BitVecDeinit);
bool result = true; BitVec *p2 = VecPtrAt(&patterns, 2);
*p0 = BitVecInit();
*p1 = BitVecInit();
*p2 = BitVecInit();
*p0 = BitVecInit();
*p1 = BitVecInit();
*p2 = BitVecInit(); *p0 = BitVecInit();
*p1 = BitVecInit();
*p2 = BitVecInit();
// Pattern 0: 111 (should not match)
- In
Init.h:103:
})
#else
# define BitVecInit(...) CONCAT(BitVecInit_, BITVEC_INIT_HAS_ARGS(__VA_ARGS__))(__VA_ARGS__)
# define BitVecInit_0() \
((BitVec) {.length = 0, \- In
Init.h:24:
Int value;
value.bits = BitVecInit(alloc);
return value;
}
Last updated on