/**
  * @covers PrimitiveTypeDescription
  * @covers TypeDescription
  */
 public function testInstantiateAndCheck()
 {
     $typeDescription = new PrimitiveTypeDescription('string');
     self::assertTrue($typeDescription->isCompatible($object = 'some string'));
     self::assertFalse($typeDescription->isCompatible($object = 5));
     self::assertFalse($typeDescription->isCompatible($object = array(5)));
     self::assertEquals('string', $typeDescription->getTypeName());
     self::assertEquals('primitive::string', $typeDescription->getTypeDescription());
     $typeDescription = new PrimitiveTypeDescription('integer');
     self::assertTrue($typeDescription->isCompatible($object = 2));
     self::assertFalse($typeDescription->isCompatible($object = 'some string'));
     self::assertFalse($typeDescription->isCompatible($object = 5.5));
     self::assertFalse($typeDescription->isCompatible($object = new stdClass()));
     $typeDescription = new PrimitiveTypeDescription('float');
     self::assertTrue($typeDescription->isCompatible($object = 2.5));
     self::assertFalse($typeDescription->isCompatible($object = 'some string'));
     self::assertFalse($typeDescription->isCompatible($object = 5));
     $typeDescription = new PrimitiveTypeDescription('boolean');
     self::assertTrue($typeDescription->isCompatible($object = true));
     self::assertTrue($typeDescription->isCompatible($object = false));
     self::assertFalse($typeDescription->isCompatible($object = 1));
     self::assertFalse($typeDescription->isCompatible($object = ''));
     $typeDescription = new PrimitiveTypeDescription('integer[]');
     self::assertTrue($typeDescription->isCompatible($object = array(2)));
     self::assertTrue($typeDescription->isCompatible($object = array(2, 5)));
     self::assertFalse($typeDescription->isCompatible($object = 2));
     $typeDescription = new PrimitiveTypeDescription('integer[1]');
     self::assertTrue($typeDescription->isCompatible($object = array(2)));
     self::assertFalse($typeDescription->isCompatible($object = array(2, 5)));
     self::assertFalse($typeDescription->isCompatible($object = 2));
 }