Disclaimer: I've been an AT&T cell subscriber since 1999 when they were still called Cingular Wireless.
That said, you might think I'm biased, right? But which way?
Anyhow, T-Mobile was offering an opportunity to test drive their network. Basically, they send you an iPhone 5S in the mail, and you get to try it out for a week. Luckily, for the sake of science, my personal phone is also an iPhone 5S, but on the AT&T network.
The plan was fairly simple, I'd run Ookla's speed test app at a number of different locations that I commonly travel to. My daily commute takes me from the Far East Bay to downtown Oakland, and I also went to Berkeley for soccer practice. I was expecting to just eyeball it, and if the conclusion was, "Hmm, well, it's pretty close" I'd be tempted to switch from AT&T to T-mobile.
Then I discovered that the speedtest app will let you email a csv file containing all your test results, so of course I had to take advantage of that and put the results under further scrutiny.
So, I wrote up about 60 lines of throw away python code to evaluate the results. The way I graded the results was in three parts:
If one network was faster in both download and upload speeds, we'd call that a win. If one network won upload and the other download we'd call that mixed results.
The second criteria I looked at was simply average upload and download speeds across all the tests.
The third criteria was how many dead-zones with little to no network speed I found. I played around with the thresholds for what I considered to be a "dead-zone".
There are probably a lot more interesting things I could do with the data, and I may yet do so, as I'm only on day 4 of the test.
Here is the throwaway python code I used:
import csv
import os
with open('data' + os.sep + 'att.csv', 'rb') as a:
a_data = csv.reader(a)
att_data = []
for row in a_data:
att_data.append(row)
with open('data' + os.sep + 'tmobile.csv', 'rb') as t:
t_data = csv.reader(t)
tmobile_data = []
for row in t_data:
tmobile_data.append(row)
att_wins = 0
tmobile_wins = 0
mixed = 0
att_sum_dl = 0
tmobile_sum_dl = 0
att_sum_ul = 0
tmobile_sum_ul = 0
total_comparisons = 0
att_dead_zones = 0
tmobile_dead_zones = 0
both_dead_zones = 0
dl_dead_threshold = 1000
ul_dead_threshold = 500
for a_row in att_data:
for t_row in tmobile_data:
if a_row and t_row: # Ignore blank lines
if a_row[0] == t_row[0] and a_row[0] != 'Date': # if times match exactly
if int(a_row[4]) > int(t_row[4]) and int(a_row[5]) > int(t_row[5]):
att_wins += 1
elif int(a_row[4]) < int(t_row[4]) and int(a_row[5]) < int(t_row[5]):
tmobile_wins += 1
if int(a_row[4]) > int(t_row[4]) and int(a_row[5]) < int(t_row[5]):
mixed += 1
if int(a_row[4]) < dl_dead_threshold or int(a_row[5]) < ul_dead_threshold:
if int(t_row[4]) < dl_dead_threshold or int(t_row[5]) < ul_dead_threshold:
both_dead_zones += 1
else:
att_dead_zones += 1
if int(t_row[4]) < dl_dead_threshold or int(t_row[5]) < ul_dead_threshold:
if int(a_row[4]) < dl_dead_threshold or int(a_row[5]) < ul_dead_threshold:
pass
else:
tmobile_dead_zones += 1
att_sum_dl += int(a_row[4])
tmobile_sum_dl += int(t_row[4])
att_sum_ul += int(a_row[5])
tmobile_sum_ul += int(t_row[5])
total_comparisons += 1
print 'AT&T wins: ' + str(att_wins)
print 'T-mobile wins: ' + str(tmobile_wins)
print 'mixed results: ' + str(mixed)
print 'AT&T average download: ' + str(att_sum_dl // total_comparisons)
print 'T-mobile average download: ' + str(tmobile_sum_dl // total_comparisons)
print 'AT&T average upload: ' + str(att_sum_ul // total_comparisons)
print 'T-mobile average upload ' + str(tmobile_sum_ul // total_comparisons)
print 'AT&T deadzones: ' + str(att_dead_zones)
print 'T-mobile deadzones: ' + str(tmobile_dead_zones)
print 'both deadzones: ' + str(both_dead_zones)
And here are the results:
AT&T wins: 13As you can see, it was pretty much a slaughter.
T-mobile wins: 39
mixed results: 22
AT&T average download: 14926
T-mobile average download: 17747
AT&T average upload: 6495
T-mobile average upload 10466
AT&T deadzones: 7
T-mobile deadzones: 6
both deadzones: 4
One thing to note was that Berkeley seemed to have better AT&T coverage than T-mobile.
Also, the only place along the BART line from Dublin/Pleasanton to 12th Street Oakland that AT&T wins is at the Oakland Coliseum stop.
No comments:
Post a Comment