public function testEncodeDecodeValid()
 {
     $validData = array(array(20, 30), array(0, IntegerPair::MAX_32BIT_INTEGER_VALUE), array(IntegerPair::MAX_32BIT_INTEGER_VALUE, 0), array(IntegerPair::MAX_32BIT_INTEGER_VALUE, IntegerPair::MAX_32BIT_INTEGER_VALUE));
     foreach ($validData as $i => $data) {
         // Test encode
         $integerPair = new IntegerPair($data[0], $data[1]);
         $encodedInteger = $integerPair->get64bitInteger();
         $this->assertEquals($data[0], $integerPair->getIntegerA());
         $this->assertEquals($data[1], $integerPair->getIntegerB());
         $this->assertLessThanOrEqual(PHP_INT_MAX, $encodedInteger);
         $this->assertGreaterThanOrEqual(-(PHP_INT_MAX + 1), $encodedInteger);
         // Test decode
         $decodedPair = IntegerPair::unpack($encodedInteger);
         $this->assertEquals($data[0], $decodedPair->getIntegerA());
         $this->assertEquals($data[1], $decodedPair->getIntegerB());
     }
 }