Annotation of embedaddon/php/ext/sybase_ct/tests/bug29064.phpt, revision 1.1

1.1     ! misho       1: --TEST--
        !             2: Sybase-CT bug #29064 (Exact numeric/decimal/money datatypes lose precision)
        !             3: --SKIPIF--
        !             4: <?php require('skipif.inc'); ?>
        !             5: --FILE--
        !             6: <?php
        !             7: /* This file is part of PHP test framework for ext/sybase_ct
        !             8:  *
        !             9:  * $Id: bug29064.phpt 268583 2008-11-08 13:32:29Z thekid $
        !            10:  */
        !            11: 
        !            12:   require('test.inc');
        !            13: 
        !            14:   $db= sybase_connect_ex();
        !            15:   
        !            16:   // Create a temporary table and fill it with test values
        !            17:   var_dump(sybase_query('
        !            18:     create table #test (
        !            19:       test_decimal      decimal(38, 6)  null,
        !            20:       test_numeric      numeric(38, 12) null,
        !            21:       test_money        money           null,
        !            22:       test_bigint       decimal(38, 0)  null,
        !            23:       test_int          int             null,
        !            24:       test_smallmoney   smallmoney      null,
        !            25:       test_smallint     smallint        null,
        !            26:       test_tinyint      tinyint         null,
        !            27:       test_real         float           null,
        !            28:       test_double       float           null
        !            29:     )
        !            30:   ', $db));
        !            31:   var_dump(sybase_query('
        !            32:     insert into #test (
        !            33:       test_decimal, 
        !            34:       test_numeric, 
        !            35:       test_money, 
        !            36:       test_bigint, 
        !            37:       test_int,
        !            38:       test_smallmoney, 
        !            39:       test_smallint, 
        !            40:       test_tinyint, 
        !            41:       test_real, 
        !            42:       test_double
        !            43:     ) values (
        !            44:       12345678901234567890123456789012.123456,
        !            45:       12345678901234567890123456.123456789012,
        !            46:       123456789012345.1234,
        !            47:       12345678901234567890123456789012345678,
        !            48:       1234567890,
        !            49:       123456.1234,
        !            50:       12345,
        !            51:       123,
        !            52:       123456789.12345679,
        !            53:       123456789.12345679
        !            54:     )
        !            55:   ', $db));
        !            56:   var_dump(sybase_query('
        !            57:     insert into #test (
        !            58:       test_decimal, 
        !            59:       test_numeric, 
        !            60:       test_money, 
        !            61:       test_bigint, 
        !            62:       test_int,
        !            63:       test_smallmoney, 
        !            64:       test_smallint, 
        !            65:       test_tinyint, 
        !            66:       test_real, 
        !            67:       test_double
        !            68:     ) values (
        !            69:       -12345678901234567890123456789012.123456,
        !            70:       -12345678901234567890123456.123456789012,
        !            71:       -123456789012345.1234,
        !            72:       -12345678901234567890123456789012345678,
        !            73:       -1234567890,
        !            74:       -123456.1234,
        !            75:       -12345,
        !            76:       255,
        !            77:       -123456789.12345679,
        !            78:       -123456789.12345679
        !            79:     )
        !            80:   ', $db));
        !            81: 
        !            82:   // Select the data  
        !            83:   var_dump(sybase_select_ex($db, 'select * from #test'));
        !            84:   
        !            85:   // Clean up and close connection
        !            86:   var_dump(sybase_query('drop table #test', $db));
        !            87:   sybase_close($db);
        !            88: ?>
        !            89: --EXPECTF--
        !            90: bool(true)
        !            91: bool(true)
        !            92: bool(true)
        !            93: >>> Query: select * from #test
        !            94: <<< Return: resource
        !            95: array(2) {
        !            96:   [0]=>
        !            97:   array(10) {
        !            98:     ["test_decimal"]=>
        !            99:     string(39) "12345678901234567890123456789012.123456"
        !           100:     ["test_numeric"]=>
        !           101:     string(39) "12345678901234567890123456.123456789012"
        !           102:     ["test_money"]=>
        !           103:     string(18) "123456789012345.12"
        !           104:     ["test_bigint"]=>
        !           105:     string(38) "12345678901234567890123456789012345678"
        !           106:     ["test_int"]=>
        !           107:     int(1234567890)
        !           108:     ["test_smallmoney"]=>
        !           109:     float(123456.12)
        !           110:     ["test_smallint"]=>
        !           111:     int(12345)
        !           112:     ["test_tinyint"]=>
        !           113:     int(123)
        !           114:     ["test_real"]=>
        !           115:     string(18) "123456789.12345679"
        !           116:     ["test_double"]=>
        !           117:     string(18) "123456789.12345679"
        !           118:   }
        !           119:   [1]=>
        !           120:   array(10) {
        !           121:     ["test_decimal"]=>
        !           122:     string(40) "-12345678901234567890123456789012.123456"
        !           123:     ["test_numeric"]=>
        !           124:     string(40) "-12345678901234567890123456.123456789012"
        !           125:     ["test_money"]=>
        !           126:     string(19) "-123456789012345.12"
        !           127:     ["test_bigint"]=>
        !           128:     string(39) "-12345678901234567890123456789012345678"
        !           129:     ["test_int"]=>
        !           130:     int(-1234567890)
        !           131:     ["test_smallmoney"]=>
        !           132:     float(-123456.12)
        !           133:     ["test_smallint"]=>
        !           134:     int(-12345)
        !           135:     ["test_tinyint"]=>
        !           136:     int(255)
        !           137:     ["test_real"]=>
        !           138:     string(19) "-123456789.12345679"
        !           139:     ["test_double"]=>
        !           140:     string(19) "-123456789.12345679"
        !           141:   }
        !           142: }
        !           143: bool(true)

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>