Skip to content

Instantly share code, notes, and snippets.

@lsloan
Forked from AppliedDataS/energy.py
Created July 13, 2018 20:34
Show Gist options
  • Save lsloan/d36b691f041df964f216865307ed1d46 to your computer and use it in GitHub Desktop.
Save lsloan/d36b691f041df964f216865307ed1d46 to your computer and use it in GitHub Desktop.
energy
def test_energy(countries):
"""
Input: a series/ the Country column in Energy
utf-8 encoded i.e. when reading Energy use
encoding='utf-8'
"""
encodedC = '11,7,7,14,7,6,8,19,9,7,5,9,7,10,7,7,10,8,7,7,6,5,7,6,7,32,22,8,6,22,17,8,12,7,10,8,8,6,14,24,4,5,5,9,42,8,7,5,12,10,13,7,4,7,6,14,37,32,7,8,8,18,7,5,11,17,7,7,8,14,16,4,7,6,13,16,5,6,7,7,5,9,6,9,7,10,4,9,8,6,13,6,5,8,7,7,5,9,4,4,7,11,6,5,7,5,6,6,10,5,8,6,10,32,6,7,7,7,5,13,9,10,10,6,8,8,4,5,16,10,10,9,6,10,8,10,10,7,10,7,7,5,5,11,13,11,9,5,7,4,24,6,4,8,5,6,16,8,4,11,6,8,11,5,11,19,7,7,18,6,12,21,11,25,32,5,21,12,7,6,10,12,9,12,8,8,15,7,12,11,5,9,18,5,8,9,6,11,20,10,8,41,11,4,5,19,7,6,12,24,6,6,7,20,14,27,13,28,7,10,7,9,8,25,5,6,8'
outcome = ['Failed\n', 'Passed\n']
energy = pd.DataFrame()
energy['original'] = pd.read_excel('Energy Indicators.xls',
usecols=[1],encoding='utf-8',
index_col=0).loc['Afghanistan':'Zimbabwe'].index.tolist()
energy['tested'] = countries.str.len()
energy['actual'] = encodedC.split(',')
energy['actual'] = energy['actual'].astype(int)
try:
energy['Country'] = countries
except Exception as e:
print('Failed, error: ',e)
res = 'Test number of records: '
res += outcome[len(countries)==len(energy)]
res += 'Test the column name: '
res += outcome [countries.name == 'Country']
res += 'Equality Test: '
res += outcome[energy['tested'].equals(energy['actual'])]
if not energy['tested'].equals(energy['actual']):
res += '\nMismatched countries:\n'
mismatch = energy.loc[energy['tested'] != (energy['actual']), [
'original', 'Country', 'tested', 'actual']].values.tolist()
res += '\n'.join('"{:}" miss-cleaned as "{:}"'.format(o, r)
for o, r, s, v in mismatch)
return res
print(test_energy(get_energy().loc[:,'Country']))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment