You are here

public function ReaderTest::testDecoder in Smart IP 7.2

Same name and namespace in other branches
  1. 6.2 includes/vendor/maxmind-db/reader/tests/MaxMind/Db/Test/ReaderTest.php \MaxMind\Db\Test\Reader\ReaderTest::testDecoder()

File

includes/vendor/maxmind-db/reader/tests/MaxMind/Db/Test/ReaderTest.php, line 28

Class

ReaderTest

Namespace

MaxMind\Db\Test\Reader

Code

public function testDecoder() {
  $reader = new Reader('tests/data/test-data/MaxMind-DB-test-decoder.mmdb');
  $record = $reader
    ->get('::1.1.1.0');
  $this
    ->assertEquals(true, $record['boolean']);
  $this
    ->assertEquals(pack('N', 42), $record['bytes']);
  $this
    ->assertEquals('unicode! ☯ - ♫', $record['utf8_string']);
  $this
    ->assertEquals(array(
    1,
    2,
    3,
  ), $record['array']);
  $this
    ->assertEquals(array(
    'mapX' => array(
      'arrayX' => array(
        7,
        8,
        9,
      ),
      'utf8_stringX' => 'hello',
    ),
  ), $record['map']);
  $this
    ->assertEquals(42.123456, $record['double']);
  $this
    ->assertEquals(1.1, $record['float'], 'float', 1.0E-6);
  $this
    ->assertEquals(-268435456, $record['int32']);
  $this
    ->assertEquals(100, $record['uint16']);
  $this
    ->assertEquals(268435456, $record['uint32']);
  $this
    ->assertEquals('1152921504606846976', $record['uint64']);
  $uint128 = $record['uint128'];

  // For the C extension, which returns a hexadecimal
  if (extension_loaded('gmp')) {
    $uint128 = gmp_strval($uint128);
  }
  else {
    $this
      ->markTestIncomplete('Requires gmp extension to check value of uint128');
  }
  $this
    ->assertEquals('1329227995784915872903807060280344576', $uint128);
}