/** * This method tests the "covariant" method. * * @dataProvider data_covariant */ public function test_covariant(array $provided, array $expected) { $p0 = IObject\Type::covariant(IObject\Type::box($provided[0])); $this->assertInstanceOf('\\Saber\\Data\\IObject\\Type', $p0); $p1 = $p0->unbox(); $e1 = $expected[0]; if (is_object($p1)) { $this->assertInstanceOf(get_class($e1), $p1); $this->assertEquals($e1, $p1); } else { $this->assertInternalType(strtolower(gettype($e1)), $p1); $this->assertSame($e1, $p1); } }