Created
August 20, 2017 16:58
-
-
Save nanda-dash/294a9b563c78cc7329e78d307edec565 to your computer and use it in GitHub Desktop.
This code checks the installation version as well as packages available
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Python program that can be executed to report whether particular | |
# python packages are available on the system. | |
import math | |
import os | |
import sys | |
def test_is_python_35(): | |
major = sys.version_info.major | |
minor = sys.version_info.minor | |
if major == 3: | |
pass | |
else: | |
print("You are running Python {}, but we need Python {}.".format(major, 3)) | |
print("Download and install the Anaconda distribution for Python 3.") | |
print("Stopping here.") | |
# Let's stop here | |
sys.exit(1) | |
return None | |
# assert major == 3, "Stopping here - we need Python 3." | |
if minor >= 5: | |
print("Testing Python version-> py{}.{} OK".format(major, minor)) | |
else: | |
print("Warning: You should be running Python 3.5 or newer, " + | |
"you have Python {}.{}.".format(major, minor)) | |
def test_numpy(): | |
try: | |
import numpy as np | |
except ImportError: | |
print("Could not import numpy -> numpy failed") | |
return None | |
# Simple test | |
a = np.arange(0, 100, 1) | |
assert np.sum(a) == sum(a) | |
print("Testing numpy... -> numpy OK") | |
def test_scipy(): | |
try: | |
import scipy | |
except ImportError: | |
print("Could not import 'scipy' -> scipy failed") | |
return None | |
# Simple test | |
import scipy.integrate | |
assert abs(scipy.integrate.quad(lambda x: x * x, 0, 6)[0] - 72.0) < 1e-6 | |
print("Testing scipy ... -> scipy OK") | |
def test_pylab(): | |
"""Actually testing matplotlib, as pylab is part of matplotlib.""" | |
try: | |
import pylab | |
except ImportError: | |
print("Could not import 'matplotlib/pylab' -> failed") | |
return None | |
# Creata plot for testing purposes | |
xvalues = [i * 0.1 for i in range(100)] | |
yvalues = [math.sin(x) for x in xvalues] | |
pylab.plot(xvalues, yvalues, "-o", label="sin(x)") | |
pylab.legend() | |
pylab.xlabel('x') | |
testfilename='pylab-testfigure.png' | |
# check that file does not exist yet: | |
if os.path.exists(testfilename): | |
print("Skipping plotting to file as file {} exists already."\ | |
.format(testfilename)) | |
else: | |
# Write plot to file | |
pylab.savefig(testfilename) | |
# Then check that file exists | |
assert os.path.exists(testfilename) | |
print("Testing matplotlib... -> pylab OK") | |
os.remove(testfilename) | |
def test_sympy(): | |
try: | |
import sympy | |
except ImportError: | |
print("Could not import 'sympy' -> fail") | |
return None | |
# simple test | |
x = sympy.Symbol('x') | |
my_f = x ** 2 | |
assert sympy.diff(my_f,x) == 2 * x | |
print("Testing sympy -> sympy OK") | |
def test_pytest(): | |
try: | |
import pytest | |
except ImportError: | |
print("Could not import 'pytest' -> fail") | |
return None | |
print("Testing pytest -> pytest OK") | |
if __name__ == "__main__": | |
print("Running using Python {}".format(sys.version)) | |
test_is_python_35() | |
test_numpy() | |
test_scipy() | |
test_pylab() | |
test_sympy() | |
test_pytest() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment