[Tͪ#n$;<:a4sX[9Ed}NM
GaoG]iSݎԆs2 \06h(r}%sjo-*1Аj넴9WOEK;V9hTƉKYqG<f*և1d/iۮh-]`b!*6OFd,:-0~|׺Qoa$X0BEu6LAQ~Ts<.V0+]J;Δo7fO.]z-A.F{~H x3J;Wʪ4{/Ut(
:i.;]bf<O\RQƦqZ$a/6X<˦RQƦqZ{7_z2s DSX8GX=GƵHjJ0|;yx,2TR~L&<
p=D8f2ӮF!`ihSߠvw#sflHDf`YV֜^4CN7@Ȗm2jF0dFB[JTdǶ]/2{גXRA[ΰQt:~fg$Hjfq<x}6bʆC10Dn^+-yL'ns~ Ը.W6bʆC10DnK!rz> Ŀj!Z+~ИWJ<vxq+C3rr+ñȘR/KJ,whx(ò뵌mnQm|劯v=6E@+J wDnQ	8CadQŔuYS:0(F1:H<,jI£⼙ny1. ߂:a}=d{@Q	Ŷ-#^iu>H-kЛY%	bu%~Q_%3KVsa2?w%F:,_bmF߳o4~sMvMT1cEgǹe[-{({k^8eOEpЉ7Bms1F'Z1F6>¾kj7=^nFgM57I?gn#8s	sQ-9(SB_\D{8Mr_%u@rڹI'qG%)sSOdJONG$Ǘd0K&29 2r1`o12ưݼ
Ol^CF@k0}Kҫw+;ɯT*Fu9ߛa5FI
Ik*)6Ct
fi%B*w.NGZw~p ~γc =93"}cP/@:FuV/xLP ջ:mĆ	'7^;%cg͚̣snUZ$襉Oy7mG*0dY6ٚ|E,Xv}e	WWƱR=dub{CmDOPh{JjAKۊ:OAEB9%Jg}4sNn&=TJ{Ev) 18(GNΛU+ԩOEa5FI
Ik*)6Ct
fi%B*w.NGZw~p ~γc =93"}cP/m2Y&ϛF"|S]cụ`n&=TJ{EvHGјd7qU.`lH0B\p٦!-r`%RķaiGRDuʀȞ܂)ҫZF߳o4~sMvMT1cщ/5Otπ.\@C?B:.tb>N`t5$dr;ho%Ìeh%$^k]U[RHXik%Bܻ%e@V~tِ>\q4VLW<=c0DJ&yFnR#.UxAE($x+Gs>hO5U^L-t,D{}TP;Fn䱮C5eNl(Ljo3'BagsmQ7wk)7	Q^:e 릭4ڟ{u!ÿXhH	+%$^k]U[R8]$cX- Ŀ7 eU;l{& q֠DMQ!Uc3?&/5KBԄiaVp|tt(#gH>'_+ lPƽctoD-or^֭!ɤt,$LjQR U,@+lNYT4QPIFgMg#9KDIdǧj1>6{_Mtz I6F8tf䷎,!!=+9ݏ		AhhgZ[>2a|j
2ַ;}\z:vt%J6vso^ylS/Gqͷ-,9:.v*NJ04̽?4t9_*
21~򖢒jZjnU3*  HvDyڭ]d/]_=kZ]u(1'Z#AU/`37T&Vcl-Ks6	& -36FqHXik%Bܻ%e@V~tِ>ΛU+ԩOEa5FI
Ik*)6Ct
fi%B*w.NGZw~p ~γc =93"}cP/{x7Z.ȫHB*BVˍ'ů`;)%	`37T&Vcl-Ks킙NY:4=MU;l{& =]+PhԉO#,֣UX|IAbVԖ*GZ9J&yFnR#.UxAE($x+Gs>hO5U^L-t,D{}TP;Fn䱮CxOrkiȊh/_uN<_Un>a͐rj`gw:&Dyڭ]d/]_=kZ]uK4#S|Cp6ms1F'Z1F6>¾k%_ĂYԲ^fMq
s%Z'mWw.;ho%Ìeh܃XH(@.?1hJZ)afY0*77cX"9VR
2s-Z 7&}a%cdOEhJ fBi4+1:,ގῇ`0Y
ozXy_\]4o<eM,nU>ӸZ1Yai#`37T&Vcl-Ks6	& -36FqHXik%Bܻ%e@V~tِ>22}H\c=gYd҃on֔Ə}7ˏ%v`OqUL^^ qB8Ig-ngZ[>2a|j
2ַ;}\z:vt%J6vso^ylS/Gqͷ-,9:.v*NJ0hoy+Pl>0Y;έM̹ތ;v%lmms1F'Z1łY@#2/biPsqtE'4ñȘR/KJ,whx(òor PMA_isValid
     *
     * @return void
     */
    public function testNotScalarNull()
    {
        $var = null;
        $this->assertFalse(PMA_isValid($var, 'scalar'));
    }

    /**
     * Test for PMA_isValid
     *
     * @return void
     */
    public function testNumericInt()
    {
        $var = 1;
        $this->assertTrue(PMA_isValid($var, 'numeric'));
    }

    /**
     * Test for PMA_isValid
     *
     * @return void
     */
    public function testNumericFloat()
    {
        $var = 1.1;
        $this->assertTrue(PMA_isValid($var, 'numeric'));
    }

    /**
     * Test for PMA_isValid
     *
     * @return void
     */
    public function testNumericZero()
    {
        $var = 0;
        $this->assertTrue(PMA_isValid($var, 'numeric'));
    }

    /**
     * Test for PMA_isValid
     *
     * @return void
     */
    public function testNumericString()
    {
        $var = '+0.1';
        $this->assertTrue(PMA_isValid($var, 'numeric'));
    }

    /**
     * Test for PMA_isValid
     *
     * @return void
     */
    public function testValueInArray()
    {
        $var = 'a';
        $this->assertTrue(PMA_isValid($var, array('a', 'b',)));
    }

    /**
     * Test for PMA_isValid
     *
     * @return void
     */
    public function testValueNotInArray()
    {
        $var = 'c';
        $this->assertFalse(PMA_isValid($var, array('a', 'b',)));
    }

    /**
     * Test for PMA_isValid
     *
     * @return void
     */
    public function testNumericIdentical()
    {
        $var = 1;
        $compare = 1;
        $this->assertTrue(PMA_isValid($var, 'identic', $compare));

        $var = 1;
        $compare += 2;
        $this->assertFalse(PMA_isValid($var, 'identic', $compare));

        $var = 1;
        $compare = '1';
        $this->assertFalse(PMA_isValid($var, 'identic', $compare));
    }

    /**
     * Data provider for testSimilarType
     *
     * @return array
     */
    public function providerSimilarType()
    {
        return array(
            array(1, 1),
            array(1.5, 1.5),
            array(true, true),
            array('string', "string"),
            array(array(1, 2, 3.4), array(1, 2, 3.4)),
            array(array(1, '2', '3.4', 5, 'text'), array('1', '2', 3.4,'5'))
        );
    }

    /**
     * Test for PMA_isValid
     *
     * @param mixed $var     Variable
     * @param mixed $compare Compare
     *
     * @return void
     *
     * @dataProvider providerSimilarType
     */
    public function testSimilarType($var, $compare)
    {
        $this->assertTrue(PMA_isValid($var, 'similar', $compare));
        $this->assertTrue(PMA_isValid($var, 'equal', $compare));
        $this->assertTrue(PMA_isValid($compare, 'similar', $var));
        $this->assertTrue(PMA_isValid($compare, 'equal', $var));

    }

    /**
     * Test for PMA_isValid
     *
     * @return void
     */
    public function testOtherTypes()
    {
        $var = new PMA_isValid_test();
        $this->assertFalse(PMA_isValid($var, 'class'));
    }

}

