/home/lnzliplg/public_html/alt-php80-pecl-bitset_3.2.0-1.el8.tar
tests/BitSet_previousSetBit.phpt 0000644 00000001547 15173141444 0013057 0 ustar 00 --TEST--
BitSet BitSet::previousSetBit() - Verifies the previous set bit is valid based on the provided index
--SKIPIF--
<?php if (!extension_loaded('bitset')) die('skipping missing extension'); ?>
--FILE--
<?php
$b = new BitSet(); // 64 bits is fine
$b->set(20);
$b->set(18);
try {
var_dump($b->previousSetBit(0));
} catch (Exception $e) {
var_dump(get_class($e).': '.$e->getMessage());
}
var_dump($b->previousSetBit(20));
var_dump($b->previousSetBit(18));
$b->set(1);
var_dump($b->previousSetBit(5));
try {
var_dump($b->previousSetBit(65));
} catch (Exception $e) {
var_dump(get_class($e).': '.$e->getMessage());
}
?>
--EXPECT--
string(75) "InvalidArgumentException: There are no bits smaller than the index provided"
int(18)
bool(false)
int(1)
string(93) "OutOfRangeException: The specified index parameter exceeds the total number of bits available"
tests/BitSet_andOp.phpt 0000644 00000000651 15173141445 0011125 0 ustar 00 --TEST--
BitSet BitSet::andOp() - Test that logical AND operations actually work
--SKIPIF--
<?php if (!extension_loaded('bitset')) die('skipping missing extension'); ?>
--FILE--
<?php
$b = new BitSet(); // 64 bits is fine
$b->set(2);
$b->set(6);
$c = new BitSet();
$c->set(2);
$c->set(50);
$b->andOp($c);
var_dump($b->__toString());
?>
--EXPECT--
string(64) "0010000000000000000000000000000000000000000000000000000000000000"
tests/BitSet_clear.phpt 0000644 00000001672 15173141445 0011156 0 ustar 00 --TEST--
BitSet BitSet::clear() - Test clearing bits individually, as sets and as a whole
--SKIPIF--
<?php if (!extension_loaded('bitset')) die('skipping missing extension'); ?>
--FILE--
<?php
$b = new BitSet();
$b->set(50);
$b->set(63);
var_dump($b->get(50));
$b->clear(50);
var_dump($b->get(50));
$b->clear();
var_dump($b->__toString());
$b->set(5);
$b->set(10);
$b->set(20);
$b->clear(5, 11);
var_dump($b->__toString());
$b->set(0, 1);
$b->clear(0);
var_dump($b->__toString());
try {
var_dump($b->clear(64));
} catch (Exception $e) {
echo get_class($e).': '.$e->getMessage()."\n";
}
?>
--EXPECT--
bool(true)
bool(false)
string(64) "0000000000000000000000000000000000000000000000000000000000000000"
string(64) "0000000000000000000010000000000000000000000000000000000000000000"
string(64) "0100000000000000000010000000000000000000000000000000000000000000"
OutOfRangeException: The requested start index is greater than the total number of bits tests/BitSet_get.phpt 0000644 00000001121 15173141445 0010634 0 ustar 00 --TEST--
BitSet BitSet::get() - Verifies integrity of bit index retrieval
--SKIPIF--
<?php if (!extension_loaded('bitset')) die('skipping missing extension'); ?>
--FILE--
<?php
$b = new BitSet(); // 64 bits is fine
$b->set(5);
var_dump($b->get(0));
var_dump($b->get(5));
var_dump($b->get(20));
$b->set(20);
var_dump($b->get(20));
try {
var_dump($b->get(64));
} catch (Exception $e) {
echo get_class($e).'-'.$e->getMessage()."\n";
}
?>
--EXPECT--
bool(false)
bool(true)
bool(false)
bool(true)
OutOfRangeException-The specified index parameter exceeds the total number of bits available
tests/BitSet_intersects.phpt 0000644 00000001153 15173141445 0012245 0 ustar 00 --TEST--
BitSet BitSet::intersects() - if the provided value has any bits set to true that are also true in this object
--SKIPIF--
<?php if (!extension_loaded('bitset')) die('skipping missing extension'); ?>
--FILE--
<?php
$b = new BitSet(16);
$c = new BitSet(16);
var_dump($b->intersects($c)); // false
var_dump($c->intersects($b)); // false
$b->set(2);
$c->set(10);
var_dump($b->intersects($c)); // false
var_dump($c->intersects($b)); // false
$b->set(10);
var_dump($b->intersects($c)); // true
var_dump($c->intersects($b)); // true
?>
--EXPECT--
bool(false)
bool(false)
bool(false)
bool(false)
bool(true)
bool(true)
tests/BitSet_xorOp.phpt 0000644 00000000634 15173141445 0011174 0 ustar 00 --TEST--
BitSet BitSet::xorOp() - Test that logical XOR operations actually work
--SKIPIF--
<?php if (!extension_loaded('bitset')) die('skipping missing extension'); ?>
--FILE--
<?php
$b = new BitSet(); // 64 bits is fine
$c = new BitSet();
$b->set(2);
$b->set(6);
$c->set(2);
$b->xorOp($c);
var_dump($b->__toString());
?>
--EXPECT--
string(64) "0000001000000000000000000000000000000000000000000000000000000000"
tests/BitSet_isEmpty.phpt 0000644 00000000634 15173141446 0011520 0 ustar 00 --TEST--
BitSet BitSet::isEmpty() - Verifies that isEmpty truly checks for all off bits
--SKIPIF--
<?php if (!extension_loaded('bitset')) die('skipping missing extension'); ?>
--FILE--
<?php
$b = new BitSet(); // 64 bits is fine
var_dump($b->isEmpty());
$b->set(32);
var_dump($b->isEmpty());
$b->clear(32);
$b->set(40);
$b->clear(40);
var_dump($b->isEmpty());
?>
--EXPECT--
bool(true)
bool(false)
bool(true)
tests/BitSet_fromString.phpt 0000644 00000001211 15173141446 0012210 0 ustar 00 --TEST--
BitSet BitSet::fromString() - Verifies BitSet correctly parses incoming strings to its binary representation
--SKIPIF--
<?php if (!extension_loaded('bitset')) die('skipping missing extension'); ?>
--FILE--
<?php
$b = BitSet::fromString('0110');
var_dump($b->__toString());
$b = BitSet::fromString('0010000010');
var_dump($b->__toString());
$b = BitSet::fromString('0200100010');
var_dump($b->__toString());
$b = BitSet::fromString('');
var_dump($b->__toString());
?>
--EXPECT--
string(8) "01100000"
string(16) "0010000010000000"
string(16) "0000100010000000"
string(64) "0000000000000000000000000000000000000000000000000000000000000000"
tests/BitSet_fromArray.phpt 0000644 00000001306 15173141446 0012025 0 ustar 00 --TEST--
BitSet BitSet::fromArray() - Verifies the provided input array is represented in set bits
--SKIPIF--
<?php if (!extension_loaded('bitset')) die('skipping missing extension'); ?>
--FILE--
<?php
$arr = [1, 6, 17, 2];
$b = BitSet::fromArray($arr);
var_dump($b->__toString());
var_dump($b->toArray());
$b = BitSet::fromArray([0]);
var_dump($b->__toString());
var_dump($b->toArray());
$b = BitSet::fromArray([7]);
var_dump($b->__toString());
var_dump($b->toArray());
?>
--EXPECT--
string(24) "011000100000000001000000"
array(4) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(6)
[3]=>
int(17)
}
string(8) "10000000"
array(1) {
[0]=>
int(0)
}
string(8) "00000001"
array(1) {
[0]=>
int(7)
}
tests/BitSet_set.phpt 0000644 00000001445 15173141446 0010662 0 ustar 00 --TEST--
BitSet BitSet::set() - Tests for setting bits or a range of bits on
--SKIPIF--
<?php if (!extension_loaded('bitset')) die('skipping missing extension'); ?>
--FILE--
<?php
$b = new BitSet(8);
var_dump($b->__toString());
$b->set(2);
var_dump($b->__toString());
$b->set(2, 4);
var_dump($b->__toString());
$b->set(0);
var_dump($b->__toString());
$b->set(7);
var_dump($b->__toString());
$b->set(); // Set all bits on
var_dump($b->__toString());
try {
var_dump($b->set(8));
} catch (Exception $e) {
var_dump(get_class($e).': '.$e->getMessage());
}
?>
--EXPECT--
string(8) "00000000"
string(8) "00100000"
string(8) "00111000"
string(8) "10111000"
string(8) "10111001"
string(8) "11111111"
string(87) "OutOfRangeException: The requested start index is greater than the total number of bits"
tests/BitSet_size.phpt 0000644 00000000626 15173141446 0011041 0 ustar 00 --TEST--
BitSet BitSet::size() - Tests to verify the total bits are maintained and correctly represented
--SKIPIF--
<?php if (!extension_loaded('bitset')) die('skipping missing extension'); ?>
--FILE--
<?php
$b = new BitSet();
var_dump($b->size());
$b = new BitSet(8);
$b->set(2, 4);
$b->clear(3);
var_dump($b->size());
$b = new BitSet(2048);
var_dump($b->size());
?>
--EXPECT--
int(64)
int(8)
int(2048)
tests/BitSet_length.phpt 0000644 00000000756 15173141446 0011354 0 ustar 00 --TEST--
BitSet BitSet::length() - Verifies the highest bit + 1 is returned
--SKIPIF--
<?php if (!extension_loaded('bitset')) die('skipping missing extension'); ?>
--FILE--
<?php
$b = new BitSet(); // 64 bits is fine
var_dump($b->length());
$b->set(0);
var_dump($b->length());
$b->set(33);
var_dump($b->length());
$b->set(22);
var_dump($b->length());
$b->set(55);
var_dump($b->length());
$b->clear(55);
var_dump($b->length());
?>
--EXPECT--
int(0)
int(1)
int(34)
int(34)
int(56)
int(34)
tests/BitSet_fromRawValue.phpt 0000644 00000000743 15173141446 0012501 0 ustar 00 --TEST--
BitSet BitSet::fromRawValue() - Verifies the provided input raw value is represented in set bits
--SKIPIF--
<?php if (!extension_loaded('bitset')) die('skipping missing extension'); ?>
--FILE--
<?php
$b = BitSet::fromRawValue(base64_decode('AA=='));
var_dump($b->__toString());
$b = BitSet::fromRawValue(base64_decode('IA=='));
var_dump($b->__toString());
var_dump(base64_encode($b->getRawValue()));
?>
--EXPECT--
string(8) "00000000"
string(8) "00000100"
string(4) "IA=="
tests/bug63315.phpt 0000644 00000000635 15173141446 0007774 0 ustar 00 --TEST--
Bug #63315 (BitSet::fromArray may modify original array value)
--SKIPIF--
<?php if (!extension_loaded('bitset')) die('skipping missing extension'); ?>
--FILE--
<?php
$arr = array(5, 6, '7');
var_dump($arr);
BitSet::fromArray($arr);
var_dump($arr);
?>
--EXPECT--
array(3) {
[0]=>
int(5)
[1]=>
int(6)
[2]=>
string(1) "7"
}
array(3) {
[0]=>
int(5)
[1]=>
int(6)
[2]=>
string(1) "7"
}
tests/BitSet_fromInteger.phpt 0000644 00000001445 15173141446 0012350 0 ustar 00 --TEST--
BitSet BitSet::fromInteger() - Verifies the provided value is represented in set bits
--SKIPIF--
<?php if (!extension_loaded('bitset')) die('skipping missing extension'); ?>
--FILE--
<?php
$b = BitSet::fromInteger(0);
var_dump($b->__toString());
var_dump($b->toInteger());
$b = BitSet::fromInteger(42);
var_dump($b->__toString());
var_dump($b->toInteger());
$b = BitSet::fromInteger(0x010203);
var_dump($b->__toString());
var_dump($b->toInteger());
$b = new BitSet(80);
try {
var_dump($b->toInteger());
} catch (InvalidArgumentException $e) {
echo "Exception: " . $e->getMessage() . "\n";
}
?>
--EXPECTF--
string(%d) "0000000000000000000%s"
int(0)
string(%d) "0101010000000000000%s"
int(42)
string(%d) "1100000001000000100%s"
int(66051)
Exception: The total bits doesn't fit in an integer
tests/BitSet_construct.phpt 0000644 00000001302 15173141446 0012103 0 ustar 00 --TEST--
BitSet BitSet::__construct() - Generic constructor tests
--SKIPIF--
<?php if (!extension_loaded('bitset')) die('skipping missing extension'); ?>
--FILE--
<?php
// Verify we initially get 64 bits that are off
$b = new BitSet();
var_dump($b->__toString());
// Verify we get 8 bits that are off
$b = new BitSet(8);
var_dump($b->__toString());
/* Regardless of the value specified in the constructor, it should
* always be rounded to the nearest byte in size
*/
$b = new BitSet(12); // CHAR_BIT = 8, so we should have 16 bits
var_dump($b->__toString());
?>
--EXPECT--
string(64) "0000000000000000000000000000000000000000000000000000000000000000"
string(8) "00000000"
string(16) "0000000000000000"
tests/BitSet_toArray.phpt 0000644 00000000740 15173141447 0011506 0 ustar 00 --TEST--
BitSet BitSet::toArray() - Verifies set bits are correctly returned in the array
--SKIPIF--
<?php if (!extension_loaded('bitset')) die('skipping missing extension'); ?>
--FILE--
<?php
$b = new BitSet(); // 64 bits is fine. tired of seeing this comment yet?
$b->set(5);
$b->set(22);
var_dump($b->toArray());
$b->clear(22);
$b->set(36);
var_dump($b->toArray());
?>
--EXPECT--
array(2) {
[0]=>
int(5)
[1]=>
int(22)
}
array(2) {
[0]=>
int(5)
[1]=>
int(36)
}
tests/BitSet_cardinality.phpt 0000644 00000000700 15173141447 0012364 0 ustar 00 --TEST--
BitSet BitSet::cardinality() - Verifies all true bits that are set are correctly counted
--SKIPIF--
<?php if (!extension_loaded('bitset')) die('skipping missing extension'); ?>
--FILE--
<?php
$b = new BitSet(); // 64 bits is fine
$b->set(5);
$b->set(33);
$b->set(63);
var_dump($b->cardinality());
$b->clear(63);
var_dump($b->cardinality());
$b->set(32);
$b->clear(33);
var_dump($b->cardinality());
?>
--EXPECT--
int(3)
int(2)
int(2)
tests/BitSet_orOp.phpt 0000644 00000000645 15173141447 0011010 0 ustar 00 --TEST--
BitSet BitSet::orOp() - Test that logical OR operations actually work
--SKIPIF--
<?php if (!extension_loaded('bitset')) die('skipping missing extension'); ?>
--FILE--
<?php
$b = new BitSet(); // 64 bits is fine
$c = new BitSet();
$b->set(2);
$b->set(6);
$c->set(2);
$c->set(9);
$b->orOp($c);
var_dump($b->__toString());
?>
--EXPECT--
string(64) "0010001001000000000000000000000000000000000000000000000000000000"
tests/BitSet_getRawValue.phpt 0000644 00000000674 15173141447 0012321 0 ustar 00 --TEST--
BitSet BitSet::getRawValue() - Verifies the binary string returned is as expected and integrity is maintained
--SKIPIF--
<?php if (!extension_loaded('bitset')) die('skipping missing extension'); ?>
--FILE--
<?php
$b = new BitSet(8);
var_dump(base64_encode($b->getRawValue()));
$b->set(5);
var_dump(base64_encode($b->getRawValue()));
var_dump(bin2hex($b->getRawValue()));
?>
--EXPECT--
string(4) "AA=="
string(4) "IA=="
string(2) "20"
tests/BitSet_previousClearBit.phpt 0000644 00000001544 15173141447 0013352 0 ustar 00 --TEST--
BitSet BitSet::previousClearBit() - Verifies the previous clear bit is valid based on the provided index
--SKIPIF--
<?php if (!extension_loaded('bitset')) die('skipping missing extension'); ?>
--FILE--
<?php
$b = new BitSet(); // 64 bits is fine
$b->set(20);
$b->set(18);
try {
var_dump($b->previousClearBit(0));
} catch (Exception $e) {
var_dump(get_class($e).': '.$e->getMessage());
}
var_dump($b->previousClearBit(20));
var_dump($b->previousClearBit(18));
var_dump($b->previousClearBit(5));
try {
var_dump($b->previousClearBit(65));
} catch (Exception $e) {
var_dump(get_class($e).': '.$e->getMessage());
}
?>
--EXPECT--
string(75) "InvalidArgumentException: There are no bits smaller than the index provided"
int(19)
int(17)
int(4)
string(93) "OutOfRangeException: The specified index parameter exceeds the total number of bits available"
tests/BitSet_nextSetBit.phpt 0000644 00000001167 15173141447 0012162 0 ustar 00 --TEST--
BitSet BitSet::nextSetBit() - Verifies the next set bit is valid based on the provided index
--SKIPIF--
<?php if (!extension_loaded('bitset')) die('skipping missing extension'); ?>
--FILE--
<?php
$b = new BitSet(); // 64 bits is fine
$b->set(20);
$b->set(18);
var_dump($b->nextSetBit(0));
var_dump($b->nextSetBit(20));
var_dump($b->nextSetBit(18));
var_dump($b->nextSetBit(5));
try {
var_dump($b->nextSetBit(63));
} catch (Exception $e) {
echo get_class($e).': '.$e->getMessage()."\n";
}
?>
--EXPECT--
int(18)
bool(false)
int(20)
int(18)
InvalidArgumentException: There are no bits larger than the index provided
tests/BitSet_nextClearBit.phpt 0000644 00000001176 15173141447 0012455 0 ustar 00 --TEST--
BitSet BitSet::nextClearBit() - Verifies the next clear bit is valid based on the provided index
--SKIPIF--
<?php if (!extension_loaded('bitset')) die('skipping missing extension'); ?>
--FILE--
<?php
$b = new BitSet(); // 64 bits is fine
$b->set(20);
$b->set(18);
var_dump($b->nextClearBit(0));
var_dump($b->nextClearBit(20));
var_dump($b->nextClearBit(18));
var_dump($b->nextClearBit(5));
try {
var_dump($b->nextClearBit(63));
} catch (Exception $e) {
echo get_class($e).': '.$e->getMessage()."\n";
}
?>
--EXPECT--
int(1)
int(21)
int(19)
int(6)
InvalidArgumentException: There are no bits larger than the index provided
tests/BitSet_andNotOp.phpt 0000644 00000000651 15173141447 0011610 0 ustar 00 --TEST--
BitSet BitSet::andNotOp() - Test that switching set bits to off with input BitSet
--SKIPIF--
<?php if (!extension_loaded('bitset')) die('skipping missing extension'); ?>
--FILE--
<?php
$b = new BitSet(); // 64 bits is fine
$c = new BitSet();
$b->set(2);
$b->set(6);
$c->set(2);
$b->andNotOp($c);
var_dump($b->__toString());
?>
--EXPECT--
string(64) "0000001000000000000000000000000000000000000000000000000000000000"