Source: https://www.gerad.ca/Sebastien.Le.Digabel/MTH2302D/11_tests_part1.pdf