Annotation of embedaddon/php/ext/date/tests/date_diff.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: Extensive test for date_diff().
                      3: --SKIPIF--
                      4: <?php
                      5: if (getenv("SKIP_SLOW_TESTS")) die("skip slow test");
                      6: ?>
                      7: --INI--
                      8: date.timezone=UTC
                      9: --FILE--
                     10: <?php
                     11: $ok = 0;
                     12: define( 'COUNT', 120 );
                     13: $d0 = new DateTime('2009-11-20');
                     14: for ( $i = 0; $i < COUNT * 12; $i++ )
                     15: {
                     16:        $d = clone $d0;
                     17:        $dates[$i] = $d->add( new DateInterval( "P{$i}D" ) );
                     18: }
                     19: 
                     20: for ( $i = 0; $i < COUNT; $i++)
                     21: {
                     22: //     echo $dates[$i]->format( "Y-m-d\n" );
                     23:        for ( $j = 0; $j < COUNT * 12; $j++)
                     24:        {
                     25:                $diff = date_diff( $dates[$i], $dates[$j] );
                     26:                /*
                     27:                printf( "\t%s %s %3d %s\n",
                     28:                        $dates[$i]->format( 'Y-m-d' ),
                     29:                        $dates[$j]->format( 'Y-m-d' ),
                     30:                        $diff->format( '%a' ),
                     31:                        $diff->format( '%y-%m-%d' )
                     32:                );
                     33:                */
                     34: 
                     35:                $current = clone $dates[$i];
                     36:                $int = new DateInterval( $diff->format( 'P%yY%mM%dD' ) );
                     37:                if ( $current > $dates[$j] )
                     38:                {
                     39:                        $current->sub( $int );
                     40:                }
                     41:                else
                     42:                {
                     43:                        $current->add( $int );
                     44:                }
                     45:                if ( $current != $dates[$j] )
                     46:                {
                     47:                        echo "FAIL: ",
                     48:                                $dates[$i]->format( 'Y-m-d' ), " + ",
                     49:                                $int->format( '%y-%m-%d' ), " = ",
                     50:                                $current->format( 'Y-m-d' ), " (",
                     51:                                $dates[$j]->format( 'Y-m-d' ), ")\n";
                     52:                }
                     53:                else
                     54:                {
                     55:                        $ok++;
                     56:                }
                     57:        }
                     58: }
                     59: 
                     60: echo $ok, "\n";
                     61: ?>
                     62: --EXPECT--
                     63: 172800

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