Making WordPress.org


Ignore:
Timestamp:
05/17/2017 08:30:29 PM (9 years ago)
Author:
iandunn
Message:

Events: Remove get_city_from_coordinates() to improve performance

The function was not performant, and it's not easy to make it that way. It's only needed for a few edge cases, and we can get the location from the events themselves (similar to r5491). So, removing this is a good trade-off.

Because we are able to rebuild the location, no changes are needed in Core, and a new version of this endpoint is not needed.

See #2823
Props dd32

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sites/trunk/api.wordpress.org/public_html/events/1.0/tests/test-index.php

    r5496 r5497  
    1919        $tests_failed = 0;
    2020        $tests_failed += test_get_location();
    21         $tests_failed += test_get_city_from_coordinates();
    2221        $query_count  = count( $wpdb->queries );
    2322        $query_time   = array_sum( array_column( $wpdb->queries, 1 ) );
    … …  
    698697                        ),
    699698                        'expected' => array(
    700                                 'description' => 'seattle',
     699                                'description' => false,
    701700                                'latitude'    => '47.606',
    702701                                'longitude'   => '-122.332',
    … …  
    713712                        ),
    714713                        'expected' => array(
    715                                 'description' => 'otavi',
     714                                'description' => false,
    716715                                'latitude'    => '-19.634',
    717716                                'longitude'   => '17.332',
    … …  
    792791}
    793792
    794 /**
    795  * Test `get_city_from_coordinates()`
    796  *
    797  * @todo This can probably be refactored along with test_get_location() into a more abstract/DRY general-purpose
    798  *       test runner.
    799  *
    800  * @return bool The number of failures
    801  */
    802 function test_get_city_from_coordinates() {
    803         $failed = 0;
    804         $cases  = get_city_from_coordinates_test_cases();
    805 
    806         printf( "\n\nRunning %d city from coordinate tests\n", count( $cases ) );
    807 
    808         foreach ( $cases as $case_id => $case ) {
    809                 $case['input'] = add_cachebusting_parameter( $case['input'] );
    810                 $actual_result = get_city_from_coordinates( $case['input']['latitude'], $case['input']['longitude'] );
    811                 $passed        = $case['expected'] === $actual_result;
    812 
    813                 output_results( $case_id, $passed, $case['expected'], $actual_result );
    814 
    815                 if ( ! $passed ) {
    816                         $failed++;
    817                 }
    818         }
    819 
    820         return $failed;
    821 }
    822 
    823 /**
    824  * Get the cases for testing `get_city_from_coordinates()`
    825  *
    826  * @return array
    827  */
    828 function get_city_from_coordinates_test_cases() {
    829          $cases = array(
    830                 'lower-latitude-higher-longitude' => array(
    831                         'input' => array(
    832                                 'latitude'  => '60.199',
    833                                 'longitude' => '24.660'
    834                         ),
    835                         'expected' => 'Espoo',
    836                 ),
    837 
    838                 'higher-latitude-lower-longitude' => array(
    839                         'input' => array(
    840                                 'latitude'  => '22.000',
    841                                 'longitude' => '95.900'
    842                         ),
    843                         'expected' => 'Mandalay',
    844                 ),
    845 
    846                 'middle-of-no-and-where' => array(
    847                         'input' => array(
    848                                 'latitude'  => '-23.121',
    849                                 'longitude' => '125.071'
    850                         ),
    851                         'expected' => false,
    852                 ),
    853         );
    854 
    855         return $cases;
    856 }
    857 
    858793run_tests();
Note: See TracChangeset for help on using the changeset viewer.