Pinq\Tests\Integration\Analysis\BasicExpressionAnalysisTest::testUnaryOperators PHP Метод

testUnaryOperators() публичный Метод

public testUnaryOperators ( )
    public function testUnaryOperators()
    {
        $asserts = [[function () {
            +1;
        }, INativeType::TYPE_INT], [function () {
            -1;
        }, INativeType::TYPE_INT], [function () {
            ~1;
        }, INativeType::TYPE_INT], [function () {
            ++$i;
        }, INativeType::TYPE_INT, ['i' => $this->typeSystem->getNativeType(INativeType::TYPE_INT)]], [function () {
            --$i;
        }, INativeType::TYPE_INT, ['i' => $this->typeSystem->getNativeType(INativeType::TYPE_INT)]], [function () {
            $i++;
        }, INativeType::TYPE_INT, ['i' => $this->typeSystem->getNativeType(INativeType::TYPE_INT)]], [function () {
            $i--;
        }, INativeType::TYPE_INT, ['i' => $this->typeSystem->getNativeType(INativeType::TYPE_INT)]], [function () {
            +'';
        }, INativeType::TYPE_INT], [function () {
            -'';
        }, INativeType::TYPE_INT], [function () {
            ~'';
        }, INativeType::TYPE_STRING], [function () {
            ++$i;
        }, INativeType::TYPE_MIXED, ['i' => $this->typeSystem->getNativeType(INativeType::TYPE_STRING)]], [function () {
            --$i;
        }, INativeType::TYPE_MIXED, ['i' => $this->typeSystem->getNativeType(INativeType::TYPE_STRING)]], [function () {
            $i++;
        }, INativeType::TYPE_STRING, ['i' => $this->typeSystem->getNativeType(INativeType::TYPE_STRING)]], [function () {
            $i--;
        }, INativeType::TYPE_STRING, ['i' => $this->typeSystem->getNativeType(INativeType::TYPE_STRING)]]];
        foreach ($asserts as $assert) {
            $this->assertReturnsNativeType($assert[0], $assert[1], isset($assert[2]) ? $assert[2] : []);
        }
    }