Meisam's Test

Benchmark created on


Preparation HTML

<link rel="stylesheet" type="text/css" href="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.css">
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
        <script src="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.js"></script>

        <div data-role="page">
                <div data-role="header"><h2>Store Locations</h2></div>
                <div data-role="content">
                        <ul data-role="listview" data-filter="true" data-filter-placeholder="Search Locations..." data-inset="false"></ul>
                </div>

        </div>

Test runner

Ready to run.

Testing in
TestOps/sec
tets1
function toRad(x) {
                        return x * Math.PI / 180;
                }

                function number_format(number, decimals, dec_point, thousands_sep) {
                    var n = !isFinite(+number) ? 0 : +number, 
                        prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
                        sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,
                        dec = (typeof dec_point === 'undefined') ? '.' : dec_point,
                        s = '',
                        toFixedFix = function (n, prec) {
                            var k = Math.pow(10, prec);
                            return '' + Math.round(n * k) / k;
                        };
                    // Fix for IE parseFloat(0.55).toFixed(0) = 0;
                    s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.');
                    if (s[0].length > 3) {
                        s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep);
                    }
                    if ((s[1] || '').length < prec) {
                        s[1] = s[1] || '';
                        s[1] += new Array(prec - s[1].length + 1).join('0');
                    }
                    return s.join(dec);
                }

                var locations = [
                        {
                                'title': 'Trek PC',
                                'address': '11161 84th ave delta bc',
                                'lat': 49.156514,
                                'lon': -122.913569
                        },
                        {
                                'title': 'Home',
                                'address': '9309 kingsley crescent richmond bc',
                                'lat': 49.146775,
                                'lon': -123.102100
                        },
                        {
                                'title': 'Work',
                                'address': '7225 120th street delta bc',
                                'lat': 49.134510,
                                'lon': -122.891584
                        },
                        {
                                'title': 'Surrey Central Sky Train Station',
                                'address': '10277 135 Street, Surrey, BC',
                                'lat': 49.189473,
                                'lon': -122.847871
                        },
                        {
                                'title': 'Delta Scrap Vehicle Removal',
                                'address': '4527 65A St, Delta, BC V4K 4Y7',
                                'lat': 49.085271,
                                'lon': -123.041841
                        },
                        {
                                'title': 'City of Perth, WA',
                                'address': 'Perth WA Australia',
                                'lat': -31.953004,
                                'lon': 115.857469
                        }
                ]

                if (navigator.geolocation) {
                navigator.geolocation.getCurrentPosition(function(position) {
                        var lat = position.coords.latitude;
                        var lon = position.coords.longitude;

                        $('ul').append('<li>' + lat + ',' + lon + '</li>');

                        $.each(locations, function(index, value) {
                                locations[index].km = number_format(get_distance(locations[index].lat, locations[index].lon, lat, lon), 2);
                                locations[index].mi = number_format(get_distance(locations[index].lat, locations[index].lon, lat, lon, true), 2);
                        });
                        
                        locations.sort(function(a, b) {
                                   return a.km - b.km;
                                })

                        $.each(locations, function(index, value) {
                                location_item = '<li><a href="#">';
                                location_item += '<h2>' + locations[index].title + '</h2>';
                                location_item += '<p>' + locations[index].address + '</p>';
                                location_item += '<p class="ui-li-aside"><strong>' + locations[index].km + ' km</strong><br />';
                                location_item += locations[index].mi + ' mi</p>';
                                location_item += '</a></li>';

                                        $('ul').append(location_item);
                                });

                                $('ul').listview('refresh');
                });
            }

                function get_distance(lat1, lon1, lat2, lon2, mi) {
                        if (mi) {
                                var R = 3959; //mi
                        } else {
                                var R = 6371; //km
                        }

                        var dLat = toRad(lat2-lat1);
                        var dLon = toRad(lon2-lon1);
                        var lat1 = toRad(lat1);
                        var lat2 = toRad(lat2);

                        var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
                                Math.sin(dLon/2) * Math.sin(dLon/2) * Math.cos(lat1) * Math.cos(lat2); 
                        var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); 
                        
                        return d = R * c;
                }
ready
rews2
function toRad(x) {
                        return x * Math.PI / 180;
                }

                function number_format(number, decimals, dec_point, thousands_sep) {
                    var n = !isFinite(+number) ? 0 : +number, 
                        prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
                        sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,
                        dec = (typeof dec_point === 'undefined') ? '.' : dec_point,
                        s = '',
                        toFixedFix = function (n, prec) {
                            var k = Math.pow(10, prec);
                            return '' + Math.round(n * k) / k;
                        };
                    // Fix for IE parseFloat(0.55).toFixed(0) = 0;
                    s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.');
                    if (s[0].length > 3) {
                        s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep);
                    }
                    if ((s[1] || '').length < prec) {
                        s[1] = s[1] || '';
                        s[1] += new Array(prec - s[1].length + 1).join('0');
                    }
                    return s.join(dec);
                }

                var locations = [
                        {
                                'title': 'Trek PC',
                                'address': '11161 84th ave delta bc',
                                'lat': 49.156514,
                                'lon': -122.913569
                        },
                        {
                                'title': 'Home',
                                'address': '9309 kingsley crescent richmond bc',
                                'lat': 49.146775,
                                'lon': -123.102100
                        },
                        {
                                'title': 'Work',
                                'address': '7225 120th street delta bc',
                                'lat': 49.134510,
                                'lon': -122.891584
                        },
                        {
                                'title': 'Surrey Central Sky Train Station',
                                'address': '10277 135 Street, Surrey, BC',
                                'lat': 49.189473,
                                'lon': -122.847871
                        },
                        {
                                'title': 'Delta Scrap Vehicle Removal',
                                'address': '4527 65A St, Delta, BC V4K 4Y7',
                                'lat': 49.085271,
                                'lon': -123.041841
                        },
                        {
                                'title': 'City of Perth, WA',
                                'address': 'Perth WA Australia',
                                'lat': -31.953004,
                                'lon': 115.857469
                        }
                ]

                if (navigator.geolocation) {
                navigator.geolocation.getCurrentPosition(function(position) {
                        var lat = position.coords.latitude;
                        var lon = position.coords.longitude;

                        $('ul').append('<li>' + lat + ',' + lon + '</li>');

                        $.each(locations, function(index, value) {
                                locations[index].km = number_format(get_distance(locations[index].lat, locations[index].lon, lat, lon), 2);
                                locations[index].mi = number_format(get_distance(locations[index].lat, locations[index].lon, lat, lon, true), 2);
                        });
                        
                        locations.sort(function(a, b) {
                                   return a.km - b.km;
                                })

                        $.each(locations, function(index, value) {
                                location_item = '<li><a href="#">';
                                location_item += '<h2>' + locations[index].title + '</h2>';
                                location_item += '<p>' + locations[index].address + '</p>';
                                location_item += '<p class="ui-li-aside"><strong>' + locations[index].km + ' km</strong><br />';
                                location_item += locations[index].mi + ' mi</p>';
                                location_item += '</a></li>';

                                        $('ul').append(location_item);
                                });

                                $('ul').listview('refresh');
                });
            }

                function get_distance(lat1, lon1, lat2, lon2, mi) {
                        if (mi) {
                                var R = 3959; //mi
                        } else {
                                var R = 6371; //km
                        }

                        var dLat = toRad(lat2-lat1);
                        var dLon = toRad(lon2-lon1);
                        var lat1 = toRad(lat1);
                        var lat2 = toRad(lat2);

                        var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
                                Math.sin(dLon/2) * Math.sin(dLon/2) * Math.cos(lat1) * Math.cos(lat2); 
                        var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); 
                        
                        return d = R * c;
                }
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.