demographic-data-analyzer/test_module.py
ngschaider c887194ed6
Unit tests raising Error. (#2)
* fixed assertAlmostEqual calls in tests

As you can see in the docs the signature of assertAlmostEqual is `assertAlmostEqual(first, second, places=7, msg=None, delta=None)`
Since the message is originally provided using a positional argument and only three arguments where given, the message effectively took the place of the `places` argument.

The default of places=7 is fine, we just have to use a keyword argument instead and this will resolve the resulting `TypeError`s when testing

* change assertAlmostEqual to assertEqual for string

assertAlmostEqual only makes sense when asserting ints/floats

* no need for keyword argument

Signature of method is `assertEqual(first, second, msg=None)`
Using a keyword argument is not required here.

Co-authored-by: ngschaider <gschaiderniklas@gmail.com>
2021-02-03 19:07:02 -06:00

60 lines
2.6 KiB
Python

import unittest
import demographic_data_analyzer
class DemographicAnalyzerTestCase(unittest.TestCase):
def setUp(self):
self.data = demographic_data_analyzer.calculate_demographic_data(print_data = False)
def test_race_count(self):
actual = self.data['race_count'].tolist()
expected = [27816, 3124, 1039, 311, 271]
self.assertAlmostEqual(actual, expected, msg="Expected race count values to be [27816, 3124, 1039, 311, 271]")
def test_average_age_men(self):
actual = self.data['average_age_men']
expected = 39.4
self.assertAlmostEqual(actual, expected, msg="Expected different value for average age of men.")
def test_percentage_bachelors(self):
actual = self.data['percentage_bachelors']
expected = 16.4
self.assertAlmostEqual(actual, expected, msg="Expected different value for percentage with Bachelors degrees.")
def test_higher_education_rich(self):
actual = self.data['higher_education_rich']
expected = 46.5
self.assertAlmostEqual(actual, expected, msg="Expected different value for percentage with higher education that earn >50K.")
def test_lower_education_rich(self):
actual = self.data['lower_education_rich']
expected = 17.4
self.assertAlmostEqual(actual, expected, msg="Expected different value for percentage without higher education that earn >50K.")
def test_min_work_hours(self):
actual = self.data['min_work_hours']
expected = 1
self.assertAlmostEqual(actual, expected, msg="Expected different value for minimum work hours.")
def test_rich_percentage(self):
actual = self.data['rich_percentage']
expected = 10
self.assertAlmostEqual(actual, expected, msg="Expected different value for percentage of rich among those who work fewest hours.")
def test_highest_earning_country(self):
actual = self.data['highest_earning_country']
expected = 'Iran'
self.assertEqual(actual, expected, "Expected different value for highest earning country.")
def test_highest_earning_country_percentage(self):
actual = self.data['highest_earning_country_percentage']
expected = 41.9
self.assertAlmostEqual(actual, expected, msg="Expected different value for heighest earning country percentage.")
def test_top_IN_occupation(self):
actual = self.data['top_IN_occupation']
expected = 'Prof-specialty'
self.assertEqual(actual, expected, "Expected different value for top occupations in India.")
if __name__ == "__main__":
unittest.main()