From ccabc915fedc3e6479d7696e394a7b8b56dd5cbd Mon Sep 17 00:00:00 2001
From: Mark Driver <mdd31@alumni.cam.ac.uk>
Date: Wed, 19 Feb 2020 14:32:30 +0000
Subject: [PATCH] formatting with black.

---
 phasecalculator/__main__.py                   |   4 +-
 phasecalculator/analysis/fgipanalysis.py      |  95 +++++--
 .../analysis/similarityanalysis.py            |  40 +--
 phasecalculator/analysis/vleanalysis.py       |   1 -
 phasecalculator/classes/molecule.py           |  47 +++-
 phasecalculator/classes/outputinformation.py  |  74 +++--
 phasecalculator/classes/phase.py              |  41 ++-
 phasecalculator/classes/phases.py             |  36 ++-
 phasecalculator/classes/runtimeinformation.py |  59 ++--
 phasecalculator/classes/system.py             |  62 ++++-
 phasecalculator/classes/temperature.py        |  43 ++-
 phasecalculator/classes/xmlnamespacing.py     |   4 +-
 phasecalculator/io/phasecsvconverter.py       |  12 +-
 phasecalculator/io/phasetransferxmlcreator.py |  25 +-
 phasecalculator/io/polynomialio.py            |  51 ++--
 phasecalculator/io/solventextractor.py        |  11 +-
 .../io/systemcollectionprocessor.py           |   6 +-
 phasecalculator/phasecalculatorcli.py         | 131 ++++++---
 phasecalculator/runners/fgipanalysisrunner.py |  53 +++-
 .../runners/phasecalculatorrunner.py          |  64 +++--
 .../runners/phasetransferrunner.py            | 107 +++++--
 .../runners/phasexmlcreatorrunner.py          |  65 +++--
 .../runners/similarityanalysisrunner.py       |  49 +++-
 phasecalculator/runners/vleanalysisrunner.py  |   5 +-
 .../test/analysistest/fgipanalysistest.py     |  62 ++++-
 .../analysistest/similarityanalysistest.py    | 152 +++++++---
 .../test/classestest/moleculetest.py          |  17 +-
 .../test/classestest/outputinformationtest.py |  32 ++-
 .../test/classestest/phasestest.py            |  26 +-
 phasecalculator/test/classestest/phasetest.py |  24 +-
 .../classestest/runtimeinformationtest.py     |  40 ++-
 .../test/classestest/systemtest.py            |  46 +++-
 .../test/classestest/temperaturetest.py       |  15 +-
 .../test/iotest/phasecsvconvertertest.py      |  26 +-
 .../iotest/phasetransferxmlcreatortest.py     |  79 ++++--
 .../test/iotest/polynomialiotest.py           | 132 +++++++--
 .../test/iotest/solventextractortest.py       |  21 +-
 .../iotest/systemcollectionprocessortest.py   |  13 +-
 phasecalculator/test/phasecalculatortests.py  |  54 ++--
 .../runnerstest/fgipanalysisrunnertest.py     |  87 ++++--
 .../runnerstest/phasecalculatorrunnertest.py  | 125 +++++++--
 .../runnerstest/phasetransferrunnertest.py    | 260 ++++++++++++++----
 .../runnerstest/phasexmlcreatorrunnertest.py  |  86 ++++--
 .../similarityanalysisrunnertest.py           |  84 ++++--
 .../test/runnerstest/vleanalysisrunnertest.py |  48 +++-
 45 files changed, 1899 insertions(+), 615 deletions(-)

diff --git a/phasecalculator/__main__.py b/phasecalculator/__main__.py
index 0558d70..1b341ce 100644
--- a/phasecalculator/__main__.py
+++ b/phasecalculator/__main__.py
@@ -22,5 +22,5 @@ Main script to be called for module level operation.
 
 from phasecalculator.phasecalculatorcli import main
 
-if __name__ == '__main__':
-    main()
\ No newline at end of file
+if __name__ == "__main__":
+    main()
diff --git a/phasecalculator/analysis/fgipanalysis.py b/phasecalculator/analysis/fgipanalysis.py
index b9efae9..40cbdc6 100755
--- a/phasecalculator/analysis/fgipanalysis.py
+++ b/phasecalculator/analysis/fgipanalysis.py
@@ -30,13 +30,14 @@ logging.basicConfig()
 LOGGER = logging.getLogger(__name__)
 LOGGER.setLevel(logging.WARN)
 
-EPSILON_I_LIST = np.array([(float(x)/10.0) - 10.0 for x in range(101)])
+EPSILON_I_LIST = np.array([(float(x) / 10.0) - 10.0 for x in range(101)])
 
-EPSILON_J_LIST = np.array([(float(x)/10.0) for x in range(51)])
+EPSILON_J_LIST = np.array([(float(x) / 10.0) for x in range(51)])
 
 
-def create_solv_map_and_fgips_from_files(solvent_filename, polynomial_filename_list,
-                                         directory, **kwargs):
+def create_solv_map_and_fgips_from_files(
+    solvent_filename, polynomial_filename_list, directory, **kwargs
+):
     """Creates solvent map and FGIPs and output matrix of numerical values.
     
     The default ranges are used for epsilon: 0< epsilon_j < 5 and 
@@ -62,12 +63,19 @@ def create_solv_map_and_fgips_from_files(solvent_filename, polynomial_filename_l
 
     """
     pathlib.Path(directory).mkdir(exist_ok=True)
-    results, filenames = create_solvation_plots_from_poly_files(EPSILON_I_LIST,EPSILON_J_LIST,
-                                                     solvent_filename, polynomial_filename_list, 8,
-                                                     directory=directory, **kwargs)
+    results, filenames = create_solvation_plots_from_poly_files(
+        EPSILON_I_LIST,
+        EPSILON_J_LIST,
+        solvent_filename,
+        polynomial_filename_list,
+        8,
+        directory=directory,
+        **kwargs
+    )
     latex_blocks = create_fgips_from_file_list(filenames, directory=directory)
     return results, latex_blocks
 
+
 def create_fgips_from_file_list(filename_list, **kwargs):
     """Create FGIPs from given solvent map files.
 
@@ -95,9 +103,14 @@ def create_fgips_from_file_list(filename_list, **kwargs):
     return latex_blocks
 
 
-def create_solvation_plots_from_poly_files(epsilon_i_list, epsilon_j_list,
-                                           solvent_filename, polynomial_filename_list,
-                                           polynomial_order, **kwargs):
+def create_solvation_plots_from_poly_files(
+    epsilon_i_list,
+    epsilon_j_list,
+    solvent_filename,
+    polynomial_filename_list,
+    polynomial_order,
+    **kwargs
+):
     """Create solvation maps and writes energy matrices to file for given solvents.
 
     Parameters
@@ -125,7 +138,7 @@ def create_solvation_plots_from_poly_files(epsilon_i_list, epsilon_j_list,
     """
     plot_outputs = []
     filename_list = []
-    directory = kwargs.get("directory","")
+    directory = kwargs.get("directory", "")
     for polynomial_filename in polynomial_filename_list:
         LOGGER.info("polynomial_filename:")
         LOGGER.info(polynomial_filename)
@@ -133,18 +146,30 @@ def create_solvation_plots_from_poly_files(epsilon_i_list, epsilon_j_list,
         LOGGER.info("solvent_id:")
         LOGGER.info(solvent_id)
         try:
-            plot_outputs.append(create_solvation_plot(epsilon_i_list, epsilon_j_list,
-                                                      solvent_filename, solvent_id,
-                                                      polynomial_filename,
-                                                      polynomial_order, **kwargs))
-            filename_list.append(solvmapgen.create_output_filename_stem(solvent_id,
-                                                                        directory) +"." + kwargs.get("fileformat", "svg"))
+            plot_outputs.append(
+                create_solvation_plot(
+                    epsilon_i_list,
+                    epsilon_j_list,
+                    solvent_filename,
+                    solvent_id,
+                    polynomial_filename,
+                    polynomial_order,
+                    **kwargs
+                )
+            )
+            filename_list.append(
+                solvmapgen.create_output_filename_stem(solvent_id, directory)
+                + "."
+                + kwargs.get("fileformat", "svg")
+            )
         except Exception as err:
             plot_outputs.append((solvent_id, err.args))
     return plot_outputs, filename_list
 
-def get_solvent_id_from_poly_filename(poly_filename,
-                                      suffix="binding_poly_fit_split.csv"):
+
+def get_solvent_id_from_poly_filename(
+    poly_filename, suffix="binding_poly_fit_split.csv"
+):
     """Extracts solvent ID from polynomial filename.
 
     Parameters
@@ -160,11 +185,18 @@ def get_solvent_id_from_poly_filename(poly_filename,
         solvent ID.
 
     """
-    return poly_filename.split('/')[-1].replace(suffix, "").replace("_", ",")
-
-def create_solvation_plot(epsilon_i_list, epsilon_j_list,
-                          solvent_filename, solvent_id,
-                          polynomial_filename, polynomial_order, **kwargs):
+    return poly_filename.split("/")[-1].replace(suffix, "").replace("_", ",")
+
+
+def create_solvation_plot(
+    epsilon_i_list,
+    epsilon_j_list,
+    solvent_filename,
+    solvent_id,
+    polynomial_filename,
+    polynomial_order,
+    **kwargs
+):
     """Create solvation map plot and write matrix of values to file.
 
     Parameters
@@ -190,9 +222,12 @@ def create_solvation_plot(epsilon_i_list, epsilon_j_list,
         results of solvation map plotting and matrix writing.
 
     """
-    return solvmapgen.create_solvation_plot(epsilon_i_list,
-                                            epsilon_j_list,
-                                            solvent_filename,
-                                            solvent_id,
-                                            polynomial_filename,
-                                            polynomial_order, **kwargs)
\ No newline at end of file
+    return solvmapgen.create_solvation_plot(
+        epsilon_i_list,
+        epsilon_j_list,
+        solvent_filename,
+        solvent_id,
+        polynomial_filename,
+        polynomial_order,
+        **kwargs
+    )
diff --git a/phasecalculator/analysis/similarityanalysis.py b/phasecalculator/analysis/similarityanalysis.py
index 6aa0cb3..068d836 100755
--- a/phasecalculator/analysis/similarityanalysis.py
+++ b/phasecalculator/analysis/similarityanalysis.py
@@ -31,6 +31,7 @@ logging.basicConfig()
 LOGGER = logging.getLogger(__name__)
 LOGGER.setLevel(logging.WARN)
 
+
 def read_polynomial_files(poly_filename_list, **kwargs):
     """Parse each file, and then returns the dictionary of information, by solvent ID.
 
@@ -53,7 +54,11 @@ def read_polynomial_files(poly_filename_list, **kwargs):
     """
     return polyio.read_poly_data_to_dict(poly_filename_list, **kwargs)
 
-PURE_SOLVENT_INFO = read_polynomial_files(pureinf.get_polynomial_filenames(), suffix="free_poly_fit_split.csv")
+
+PURE_SOLVENT_INFO = read_polynomial_files(
+    pureinf.get_polynomial_filenames(), suffix="free_poly_fit_split.csv"
+)
+
 
 def compare_all_solvents(poly_filename_list, output_dir, output_filename):
     """
@@ -72,13 +77,14 @@ def compare_all_solvents(poly_filename_list, output_dir, output_filename):
     None.
 
     """
-    poly_data_by_id = read_polynomial_files(poly_filename_list, 
-                                            suffix="free_poly_split_fit.csv",
-                                            temperature_dir=True)
+    poly_data_by_id = read_polynomial_files(
+        poly_filename_list, suffix="free_poly_split_fit.csv", temperature_dir=True
+    )
     sim_dframe = calculate_similarity_matrix({**poly_data_by_id, **PURE_SOLVENT_INFO})
     output_filename = (pathlib.Path(output_dir) / output_filename).as_posix()
     write_frame_to_file(sim_dframe, output_filename)
 
+
 def compare_with_pure_solvents(poly_filename_list, output_dir):
     """
 
@@ -94,16 +100,16 @@ def compare_with_pure_solvents(poly_filename_list, output_dir):
     None.
 
     """
-    poly_data_by_id = read_polynomial_files(poly_filename_list, 
-                                            suffix="free_poly_split_fit.csv",
-                                            temperature_dir=True)
+    poly_data_by_id = read_polynomial_files(
+        poly_filename_list, suffix="free_poly_split_fit.csv", temperature_dir=True
+    )
     sim_dframe = calculate_similarity_matrix({**poly_data_by_id, **PURE_SOLVENT_INFO})
     for solv_id in poly_data_by_id.keys():
         output_filename = create_slice_output_filename(solv_id, output_dir)
         similarity_slice = extract_comparison_to_pure_solvents(sim_dframe, solv_id)
         write_frame_to_file(similarity_slice, output_filename)
 
-    
+
 def compare_solvent_list(poly_filename_list, output_dir, output_filename):
     """
 
@@ -121,13 +127,14 @@ def compare_solvent_list(poly_filename_list, output_dir, output_filename):
     None.
 
     """
-    poly_data_by_id = read_polynomial_files(poly_filename_list, 
-                                            suffix="free_poly_split_fit.csv",
-                                            temperature_dir=True)
+    poly_data_by_id = read_polynomial_files(
+        poly_filename_list, suffix="free_poly_split_fit.csv", temperature_dir=True
+    )
     sim_dframe = calculate_similarity_matrix(poly_data_by_id)
     output_filename = (pathlib.Path(output_dir) / output_filename).as_posix()
     write_frame_to_file(sim_dframe, output_filename)
 
+
 def create_slice_output_filename(solv_id, output_dir):
     """
 
@@ -144,10 +151,10 @@ def create_slice_output_filename(solv_id, output_dir):
         DESCRIPTION.
 
     """
-    filename = solv_id.replace(",","_") + ".csv"
+    filename = solv_id.replace(",", "_") + ".csv"
     return (pathlib.Path(output_dir) / filename).as_posix()
 
-    
+
 def write_frame_to_file(dframe, output_filename):
     """
 
@@ -165,6 +172,7 @@ def write_frame_to_file(dframe, output_filename):
     """
     dframe.to_csv(output_filename, sep="\t", header=True)
 
+
 def extract_comparison_to_pure_solvents(similarity_dframe, solv_id):
     """
 
@@ -182,7 +190,8 @@ def extract_comparison_to_pure_solvents(similarity_dframe, solv_id):
 
     """
     return similarity_dframe.loc[solv_id, PURE_SOLVENT_INFO.keys()].sort_values()
-    
+
+
 def calculate_similarity_matrix(poly_data_by_id):
     """
 
@@ -203,5 +212,4 @@ def calculate_similarity_matrix(poly_data_by_id):
     )
     mean_matrix = multicluster.condense_matrix_to_mean(stacked_matrix)
     labels = sorted(poly_data_by_id.keys())
-    return pandas.DataFrame(mean_matrix,index=labels, columns=labels)
-    
+    return pandas.DataFrame(mean_matrix, index=labels, columns=labels)
diff --git a/phasecalculator/analysis/vleanalysis.py b/phasecalculator/analysis/vleanalysis.py
index 7149168..ad90fa4 100755
--- a/phasecalculator/analysis/vleanalysis.py
+++ b/phasecalculator/analysis/vleanalysis.py
@@ -25,4 +25,3 @@ import logging
 logging.basicConfig()
 LOGGER = logging.getLogger(__name__)
 LOGGER.setLevel(logging.WARN)
-
diff --git a/phasecalculator/classes/molecule.py b/phasecalculator/classes/molecule.py
index 6eca23b..544271a 100755
--- a/phasecalculator/classes/molecule.py
+++ b/phasecalculator/classes/molecule.py
@@ -22,17 +22,21 @@ Script for molecule class.
 
 import logging
 from lxml import etree
-from phasecalculator.classes.xmlnamespacing import PHASE_CALCULATOR, PHASE_CALC_NAMESPACE_DICT
+from phasecalculator.classes.xmlnamespacing import (
+    PHASE_CALCULATOR,
+    PHASE_CALC_NAMESPACE_DICT,
+)
 
 logging.basicConfig()
 LOGGER = logging.getLogger(__name__)
 LOGGER.setLevel(logging.WARN)
 
+
 class Molecule(object):
     """Molecule class."""
-    
+
     TOLERANCE = 0.0001
-    
+
     def __init__(self, name, inchikey, ssip_file_loc, molefraction):
         """Initialise object.
 
@@ -56,6 +60,7 @@ class Molecule(object):
         self.inchikey = inchikey
         self.ssip_file_loc = ssip_file_loc
         self.molefraction = molefraction
+
     def __eq__(self, other):
         """Overload equality comparison operator.
 
@@ -73,9 +78,15 @@ class Molecule(object):
         if other is None:
             return False
         if isinstance(other, type(self)):
-            return (abs(self.molefraction - other.molefraction) < self.TOLERANCE and self.name == other.name and self.inchikey == other.inchikey and self.ssip_file_loc == other.ssip_file_loc)
+            return (
+                abs(self.molefraction - other.molefraction) < self.TOLERANCE
+                and self.name == other.name
+                and self.inchikey == other.inchikey
+                and self.ssip_file_loc == other.ssip_file_loc
+            )
         else:
             return False
+
     @classmethod
     def parse_xml(cls, molecule_xml):
         """Parse XML representation to new instance.
@@ -91,11 +102,22 @@ class Molecule(object):
             New instance.
 
         """
-        name = molecule_xml.xpath("@phasecalc:name", namespaces=PHASE_CALC_NAMESPACE_DICT)[0]
-        inchikey = molecule_xml.xpath("@phasecalc:inChIKey", namespaces=PHASE_CALC_NAMESPACE_DICT)[0]
-        ssip_file_loc = molecule_xml.xpath("@phasecalc:ssipFileLocation", namespaces=PHASE_CALC_NAMESPACE_DICT)[0]
-        molefraction = float(molecule_xml.xpath("@phasecalc:molefraction", namespaces=PHASE_CALC_NAMESPACE_DICT)[0])
+        name = molecule_xml.xpath(
+            "@phasecalc:name", namespaces=PHASE_CALC_NAMESPACE_DICT
+        )[0]
+        inchikey = molecule_xml.xpath(
+            "@phasecalc:inChIKey", namespaces=PHASE_CALC_NAMESPACE_DICT
+        )[0]
+        ssip_file_loc = molecule_xml.xpath(
+            "@phasecalc:ssipFileLocation", namespaces=PHASE_CALC_NAMESPACE_DICT
+        )[0]
+        molefraction = float(
+            molecule_xml.xpath(
+                "@phasecalc:molefraction", namespaces=PHASE_CALC_NAMESPACE_DICT
+            )[0]
+        )
         return Molecule(name, inchikey, ssip_file_loc, molefraction)
+
     def write_to_xml(self):
         """Write information to Etree representation of XML.
 
@@ -105,10 +127,13 @@ class Molecule(object):
             XML representation of Molecule.
 
         """
-        mol_element = etree.Element(PHASE_CALCULATOR + "Molecule", nsmap=PHASE_CALC_NAMESPACE_DICT)
+        mol_element = etree.Element(
+            PHASE_CALCULATOR + "Molecule", nsmap=PHASE_CALC_NAMESPACE_DICT
+        )
         mol_element.set(PHASE_CALCULATOR + "name", self.name)
         mol_element.set(PHASE_CALCULATOR + "inChIKey", self.inchikey)
         mol_element.set(PHASE_CALCULATOR + "ssipFileLocation", self.ssip_file_loc)
-        mol_element.set(PHASE_CALCULATOR + "molefraction", "{:.4f}".format(self.molefraction))
+        mol_element.set(
+            PHASE_CALCULATOR + "molefraction", "{:.4f}".format(self.molefraction)
+        )
         return mol_element
-    
\ No newline at end of file
diff --git a/phasecalculator/classes/outputinformation.py b/phasecalculator/classes/outputinformation.py
index c78f7a8..91583df 100755
--- a/phasecalculator/classes/outputinformation.py
+++ b/phasecalculator/classes/outputinformation.py
@@ -22,16 +22,23 @@ Class for output information.
 
 import logging
 from lxml import etree
-from phasecalculator.classes.xmlnamespacing import PHASE_CALCULATOR, PHASE_CALC_NAMESPACE_DICT
+from phasecalculator.classes.xmlnamespacing import (
+    PHASE_CALCULATOR,
+    PHASE_CALC_NAMESPACE_DICT,
+)
 
 
 logging.basicConfig()
 LOGGER = logging.getLogger(__name__)
 LOGGER.setLevel(logging.WARN)
 
+
 class OutputInformation(object):
     """Class representation of output information."""
-    def __init__(self, fgip_output, similarity_output, similarity_output_type, vle_output):
+
+    def __init__(
+        self, fgip_output, similarity_output, similarity_output_type, vle_output
+    ):
         """Initialise OutputInformation.
 
         Parameters
@@ -55,6 +62,7 @@ class OutputInformation(object):
         self.similarity_output = similarity_output
         self.similarity_output_type = similarity_output_type
         self.vle_output = vle_output
+
     def __eq__(self, other):
         """Overload equality comparison operator.
 
@@ -72,9 +80,14 @@ class OutputInformation(object):
         if other is None:
             return False
         if isinstance(other, type(self)):
-            return (self.fgip_output == other.fgip_output and self.similarity_output == other.similarity_output and self.vle_output == other.vle_output)
+            return (
+                self.fgip_output == other.fgip_output
+                and self.similarity_output == other.similarity_output
+                and self.vle_output == other.vle_output
+            )
         else:
             return False
+
     @classmethod
     def parse_xml(cls, output_xml):
         """Parse XML representation.
@@ -91,9 +104,14 @@ class OutputInformation(object):
 
         """
         fgip_output = OutputInformation.parse_fgip_output(output_xml)
-        similarity_output, similarity_output_type = OutputInformation.parse_similarity_output(output_xml)
+        similarity_output, similarity_output_type = OutputInformation.parse_similarity_output(
+            output_xml
+        )
         vle_output = OutputInformation.parse_vle_output(output_xml)
-        return OutputInformation(fgip_output, similarity_output, similarity_output_type, vle_output)
+        return OutputInformation(
+            fgip_output, similarity_output, similarity_output_type, vle_output
+        )
+
     @classmethod
     def parse_fgip_output(cls, output_xml):
         """Parse FGIP output information from from output information element.
@@ -110,8 +128,11 @@ class OutputInformation(object):
 
         """
         xpath_expression = "phasecalc:FGIPOutput/text()"
-        fgip_output = output_xml.xpath(xpath_expression, namespaces=PHASE_CALC_NAMESPACE_DICT)[0]
+        fgip_output = output_xml.xpath(
+            xpath_expression, namespaces=PHASE_CALC_NAMESPACE_DICT
+        )[0]
         return True if fgip_output == "true" else False
+
     @classmethod
     def parse_similarity_output(cls, output_xml):
         """Parse similarity output information from output information element.
@@ -130,14 +151,19 @@ class OutputInformation(object):
 
         """
         xpath_expression = "phasecalc:SimilarityOutput/text()"
-        similarity_output = output_xml.xpath(xpath_expression, namespaces=PHASE_CALC_NAMESPACE_DICT)[0]
+        similarity_output = output_xml.xpath(
+            xpath_expression, namespaces=PHASE_CALC_NAMESPACE_DICT
+        )[0]
         if similarity_output:
             type_xpath = "phasecalc:SimilarityOutput/@phasecalc:outputType"
-            similarity_output_type = output_xml.xpath(type_xpath, namespaces=PHASE_CALC_NAMESPACE_DICT)[0]
+            similarity_output_type = output_xml.xpath(
+                type_xpath, namespaces=PHASE_CALC_NAMESPACE_DICT
+            )[0]
         else:
             similarity_output_type = None
-        similarity_output = True if similarity_output  == "true" else False
+        similarity_output = True if similarity_output == "true" else False
         return similarity_output, similarity_output_type
+
     @classmethod
     def parse_vle_output(cls, output_xml):
         """Parse VLE from output information element.
@@ -154,8 +180,11 @@ class OutputInformation(object):
 
         """
         xpath_expression = "phasecalc:FGIPOutput/text()"
-        vle_output = output_xml.xpath(xpath_expression, namespaces=PHASE_CALC_NAMESPACE_DICT)[0]
+        vle_output = output_xml.xpath(
+            xpath_expression, namespaces=PHASE_CALC_NAMESPACE_DICT
+        )[0]
         return True if vle_output == "true" else False
+
     def write_to_xml(self):
         """Write information to Etree representation of XML.
 
@@ -165,11 +194,14 @@ class OutputInformation(object):
             XML representation of OutputInformation.
 
         """
-        out_element = etree.Element(PHASE_CALCULATOR + "OutputInformation", nsmap=PHASE_CALC_NAMESPACE_DICT)
+        out_element = etree.Element(
+            PHASE_CALCULATOR + "OutputInformation", nsmap=PHASE_CALC_NAMESPACE_DICT
+        )
         out_element.append(self.write_fgip_output())
         out_element.append(self.write_similarity_output())
         out_element.append(self.write_vle_output())
         return out_element
+
     def write_fgip_output(self):
         """Write FGIP output XML Element.
 
@@ -179,9 +211,12 @@ class OutputInformation(object):
             FGIP element representation.
 
         """
-        fgip_element = etree.Element(PHASE_CALCULATOR + "FGIPOutput", nsmap=PHASE_CALC_NAMESPACE_DICT)
+        fgip_element = etree.Element(
+            PHASE_CALCULATOR + "FGIPOutput", nsmap=PHASE_CALC_NAMESPACE_DICT
+        )
         fgip_element.text = str(self.fgip_output).lower()
         return fgip_element
+
     def write_similarity_output(self):
         """Write Similarity output XML Element.
 
@@ -191,11 +226,16 @@ class OutputInformation(object):
             Similarity element representation.
 
         """
-        sim_element = etree.Element(PHASE_CALCULATOR + "SimilarityOutput", nsmap=PHASE_CALC_NAMESPACE_DICT)
+        sim_element = etree.Element(
+            PHASE_CALCULATOR + "SimilarityOutput", nsmap=PHASE_CALC_NAMESPACE_DICT
+        )
         sim_element.text = str(self.similarity_output).lower()
         if self.similarity_output_type is not None:
-            sim_element.set(PHASE_CALCULATOR + "outputType", self.similarity_output_type)
+            sim_element.set(
+                PHASE_CALCULATOR + "outputType", self.similarity_output_type
+            )
         return sim_element
+
     def write_vle_output(self):
         """Write VLE output XML Element.
 
@@ -205,6 +245,8 @@ class OutputInformation(object):
             VLE element representation.
 
         """
-        vle_element = etree.Element(PHASE_CALCULATOR + "VLEOutput", nsmap=PHASE_CALC_NAMESPACE_DICT)
+        vle_element = etree.Element(
+            PHASE_CALCULATOR + "VLEOutput", nsmap=PHASE_CALC_NAMESPACE_DICT
+        )
         vle_element.text = str(self.vle_output).lower()
-        return vle_element
\ No newline at end of file
+        return vle_element
diff --git a/phasecalculator/classes/phase.py b/phasecalculator/classes/phase.py
index 8181271..4c6afc5 100755
--- a/phasecalculator/classes/phase.py
+++ b/phasecalculator/classes/phase.py
@@ -23,7 +23,10 @@ Created on Tue Jan  7 16:34:17 2020
 import logging
 from lxml import etree
 import functools
-from phasecalculator.classes.xmlnamespacing import PHASE_CALCULATOR, PHASE_CALC_NAMESPACE_DICT
+from phasecalculator.classes.xmlnamespacing import (
+    PHASE_CALCULATOR,
+    PHASE_CALC_NAMESPACE_DICT,
+)
 from phasecalculator.classes.molecule import Molecule
 from phasecalculator.classes.temperature import Temperature
 
@@ -31,8 +34,10 @@ logging.basicConfig()
 LOGGER = logging.getLogger(__name__)
 LOGGER.setLevel(logging.WARN)
 
+
 class Phase(object):
     """Phase object."""
+
     def __init__(self, molecule_list, temperature):
         """Initialise Phase.
 
@@ -50,6 +55,7 @@ class Phase(object):
         """
         self.molecule_list = molecule_list
         self.temperature = temperature
+
     def __eq__(self, other):
         """Overload equality comparison operator.
 
@@ -69,12 +75,18 @@ class Phase(object):
         if isinstance(other, type(self)):
             if len(self.molecule_list) != len(other.molecule_list):
                 return False
-            mol_comps = all([self.molecule_list[i] == other.molecule_list[i] for i in range(len(self.molecule_list))])
-            return (self.temperature == other.temperature and mol_comps)
+            mol_comps = all(
+                [
+                    self.molecule_list[i] == other.molecule_list[i]
+                    for i in range(len(self.molecule_list))
+                ]
+            )
+            return self.temperature == other.temperature and mol_comps
         else:
             return False
+
     @classmethod
-    def parse_xml(cls,phase_xml):
+    def parse_xml(cls, phase_xml):
         """Parse XML representation to new instance.
 
         Parameters
@@ -88,11 +100,14 @@ class Phase(object):
             New instance.
 
         """
-        
+
         molecule_list = cls.parse_molecules(phase_xml)
-        temp_xml = phase_xml.xpath("phasecalc:Temperature", namespaces=PHASE_CALC_NAMESPACE_DICT)[0]
+        temp_xml = phase_xml.xpath(
+            "phasecalc:Temperature", namespaces=PHASE_CALC_NAMESPACE_DICT
+        )[0]
         temperature = cls.parse_temperature(temp_xml)
         return Phase(molecule_list, temperature)
+
     @classmethod
     def parse_molecules(cls, phase_xml):
         """Parse list of molecule XML.
@@ -109,8 +124,11 @@ class Phase(object):
 
         """
         molecule_xpath = "phasecalc:Molecule"
-        molecule_xml_list = phase_xml.xpath(molecule_xpath, namespaces=PHASE_CALC_NAMESPACE_DICT)
+        molecule_xml_list = phase_xml.xpath(
+            molecule_xpath, namespaces=PHASE_CALC_NAMESPACE_DICT
+        )
         return [Molecule.parse_xml(molecule_xml) for molecule_xml in molecule_xml_list]
+
     @classmethod
     def parse_temperature(cls, temperature_xml):
         """Parse temperature XML.
@@ -127,6 +145,7 @@ class Phase(object):
 
         """
         return Temperature.parse_xml(temperature_xml)
+
     def write_to_xml(self):
         """Write information to Etree representation of XML.
 
@@ -136,11 +155,14 @@ class Phase(object):
             XML representation of Phase.
 
         """
-        phase_element = etree.Element(PHASE_CALCULATOR + "Phase", nsmap=PHASE_CALC_NAMESPACE_DICT)
+        phase_element = etree.Element(
+            PHASE_CALCULATOR + "Phase", nsmap=PHASE_CALC_NAMESPACE_DICT
+        )
         for molecule in self.molecule_list:
             phase_element.append(molecule.write_to_xml())
         phase_element.append(self.temperature.write_to_xml())
         return phase_element
+
     def get_molefractions_by_molecule(self):
         """Get the molefractions of all molecules in the phase, labelled by name.
 
@@ -154,6 +176,7 @@ class Phase(object):
         for molecule in self.molecule_list:
             mole_fraction_by_name[molecule.name] = molecule.molefraction
         return mole_fraction_by_name
+
     def get_ssip_file_locations(self):
         """Get SSIP file locations ofr all molecules in the phase.
 
@@ -163,4 +186,4 @@ class Phase(object):
             List of SSIP file locations.
 
         """
-        return [molecule.ssip_file_loc for molecule in self.molecule_list]
\ No newline at end of file
+        return [molecule.ssip_file_loc for molecule in self.molecule_list]
diff --git a/phasecalculator/classes/phases.py b/phasecalculator/classes/phases.py
index 6b5a86f..67527cd 100755
--- a/phasecalculator/classes/phases.py
+++ b/phasecalculator/classes/phases.py
@@ -23,12 +23,16 @@ Script for Phases class.
 import logging
 from lxml import etree
 from phasecalculator.classes.phase import Phase
-from phasecalculator.classes.xmlnamespacing import PHASE_CALCULATOR, PHASE_CALC_NAMESPACE_DICT
+from phasecalculator.classes.xmlnamespacing import (
+    PHASE_CALCULATOR,
+    PHASE_CALC_NAMESPACE_DICT,
+)
 
 logging.basicConfig()
 LOGGER = logging.getLogger(__name__)
 LOGGER.setLevel(logging.WARN)
 
+
 class Phases(object):
     """Phases class."""
 
@@ -46,7 +50,7 @@ class Phases(object):
 
         """
         self.phase_list = phase_list
-        
+
     def __eq__(self, other):
         """Overload equality comparison operator.
 
@@ -66,11 +70,16 @@ class Phases(object):
         if isinstance(other, type(self)):
             if len(self.phase_list) != len(other.phase_list):
                 return False
-            phase_comps = all([self.phase_list[i] == other.phase_list[i] for i in range(len(self.phase_list))])
+            phase_comps = all(
+                [
+                    self.phase_list[i] == other.phase_list[i]
+                    for i in range(len(self.phase_list))
+                ]
+            )
             return phase_comps
         else:
             return False
-    
+
     @classmethod
     def parse_xml(cls, phases_xml):
         """Parse XML representation to new instance.
@@ -87,9 +96,12 @@ class Phases(object):
 
         """
         phase_xpath = "phasecalc:Phase"
-        phase_xml_list = phases_xml.xpath(phase_xpath, namespaces=PHASE_CALC_NAMESPACE_DICT)
+        phase_xml_list = phases_xml.xpath(
+            phase_xpath, namespaces=PHASE_CALC_NAMESPACE_DICT
+        )
         phase_list = [Phase.parse_xml(phase_xml) for phase_xml in phase_xml_list]
         return Phases(phase_list)
+
     def write_to_xml(self):
         """Write phases to XML.
 
@@ -99,10 +111,13 @@ class Phases(object):
             XML representation of Phases.
 
         """
-        phases_element = etree.Element(PHASE_CALCULATOR + "Phases", nsmap=PHASE_CALC_NAMESPACE_DICT)
+        phases_element = etree.Element(
+            PHASE_CALCULATOR + "Phases", nsmap=PHASE_CALC_NAMESPACE_DICT
+        )
         for phase in self.phase_list:
             phases_element.append(phase.write_to_xml())
         return phases_element
+
     def get_phase_compositions_by_temperature(self):
         """Get phases split up by temperature. This is for solvent XML generation.
 
@@ -119,6 +134,7 @@ class Phases(object):
             else:
                 phase_dict[phase.temperature] = [phase]
         return phase_dict
+
     def get_phase_molefractions_by_temperature(self):
         """Get molefraction dictionaries for all phases in collection grouped by temperature.
 
@@ -131,10 +147,13 @@ class Phases(object):
         phase_dict = {}
         for phase in self.phase_list:
             if phase.temperature in phase_dict.keys():
-                phase_dict[phase.temperature].append(phase.get_molefractions_by_molecule())
+                phase_dict[phase.temperature].append(
+                    phase.get_molefractions_by_molecule()
+                )
             else:
                 phase_dict[phase.temperature] = [phase.get_molefractions_by_molecule()]
         return phase_dict
+
     def get_molefractions_by_molecule_list(self):
         """List of molefraction dictionaries for all phases in collection.
 
@@ -148,6 +167,7 @@ class Phases(object):
         for phase in self.phase_list:
             mole_fraction_dict_list.append(phase.get_molefractions_by_molecule())
         return mole_fraction_dict_list
+
     def get_ssip_file_locations(self):
         """Get the SSIP file locations for all molecules in any phase.
 
@@ -161,5 +181,3 @@ class Phases(object):
         for phase in self.phase_list:
             ssip_file_locations.extend(phase.get_ssip_file_locations())
         return set(ssip_file_locations)
-        
-    
\ No newline at end of file
diff --git a/phasecalculator/classes/runtimeinformation.py b/phasecalculator/classes/runtimeinformation.py
index f323c75..d196db6 100755
--- a/phasecalculator/classes/runtimeinformation.py
+++ b/phasecalculator/classes/runtimeinformation.py
@@ -22,15 +22,19 @@ Class for runtime information.
 
 import logging
 from lxml import etree
-from phasecalculator.classes.xmlnamespacing import PHASE_CALCULATOR, PHASE_CALC_NAMESPACE_DICT
+from phasecalculator.classes.xmlnamespacing import (
+    PHASE_CALCULATOR,
+    PHASE_CALC_NAMESPACE_DICT,
+)
 
 logging.basicConfig()
 LOGGER = logging.getLogger(__name__)
 LOGGER.setLevel(logging.WARN)
 
+
 class RuntimeInformation(object):
     """Class representation of runtime information."""
-    
+
     def __init__(self, phasetransfer_jar, scratch_dir, output_dir):
         """Initialise RuntimeInformation.
 
@@ -69,13 +73,16 @@ class RuntimeInformation(object):
         if other is None:
             return False
         if isinstance(other, type(self)):
-            return (self.phasetransfer_jar == other.phasetransfer_jar and
-                    self.scratch_dir == other.scratch_dir and
-                    self.output_dir == other.output_dir)
+            return (
+                self.phasetransfer_jar == other.phasetransfer_jar
+                and self.scratch_dir == other.scratch_dir
+                and self.output_dir == other.output_dir
+            )
         else:
             return False
+
     @classmethod
-    def parse_xml(cls,runtime_xml):
+    def parse_xml(cls, runtime_xml):
         """Parse runtime information XML to populate new instance.
 
         Parameters
@@ -93,9 +100,9 @@ class RuntimeInformation(object):
         scratch_dir = cls.parse_scratch_dir(runtime_xml)
         output_dir = cls.parse_output_dir(runtime_xml)
         return RuntimeInformation(phasetransfer_jar, scratch_dir, output_dir)
-    
+
     @classmethod
-    def parse_phasetransfer_jar(cls,runtime_xml):
+    def parse_phasetransfer_jar(cls, runtime_xml):
         """Parse phasetransfer jar file path.
 
         Parameters
@@ -110,8 +117,11 @@ class RuntimeInformation(object):
 
         """
         xpath_expression = "phasecalc:PhaseTransferJar/text()"
-        phasetransfer_jar = runtime_xml.xpath(xpath_expression, namespaces=PHASE_CALC_NAMESPACE_DICT)[0]
+        phasetransfer_jar = runtime_xml.xpath(
+            xpath_expression, namespaces=PHASE_CALC_NAMESPACE_DICT
+        )[0]
         return phasetransfer_jar
+
     @classmethod
     def parse_scratch_dir(cls, runtime_xml):
         """Parse scratch directory path.
@@ -128,8 +138,11 @@ class RuntimeInformation(object):
 
         """
         xpath_expression = "phasecalc:ScratchDirectory/text()"
-        scratch_dir = runtime_xml.xpath(xpath_expression, namespaces=PHASE_CALC_NAMESPACE_DICT)[0]
+        scratch_dir = runtime_xml.xpath(
+            xpath_expression, namespaces=PHASE_CALC_NAMESPACE_DICT
+        )[0]
         return scratch_dir
+
     @classmethod
     def parse_output_dir(cls, runtime_xml):
         """Parse output directory from given XML.
@@ -148,8 +161,11 @@ class RuntimeInformation(object):
 
         """
         xpath_expression = "phasecalc:OutputDirectory/text()"
-        output_dir = runtime_xml.xpath(xpath_expression, namespaces=PHASE_CALC_NAMESPACE_DICT)[0]
+        output_dir = runtime_xml.xpath(
+            xpath_expression, namespaces=PHASE_CALC_NAMESPACE_DICT
+        )[0]
         return output_dir
+
     def write_to_xml(self):
         """Write information to Etree representation of XML.
 
@@ -159,11 +175,14 @@ class RuntimeInformation(object):
             XML representation of RuntimeInformation.
 
         """
-        run_element = etree.Element(PHASE_CALCULATOR + "RuntimeInformation", nsmap=PHASE_CALC_NAMESPACE_DICT)
+        run_element = etree.Element(
+            PHASE_CALCULATOR + "RuntimeInformation", nsmap=PHASE_CALC_NAMESPACE_DICT
+        )
         run_element.append(self.write_phasetransfer_jar_xml())
         run_element.append(self.write_scratch_dir_xml())
         run_element.append(self.write_output_dir_xml())
         return run_element
+
     def write_phasetransfer_jar_xml(self):
         """Write PhaseTransferJar element.
 
@@ -173,9 +192,12 @@ class RuntimeInformation(object):
             XML representation of PhaseTransferJar.
 
         """
-        pt_jar_element = etree.Element(PHASE_CALCULATOR + "PhaseTransferJar", nsmap=PHASE_CALC_NAMESPACE_DICT)
+        pt_jar_element = etree.Element(
+            PHASE_CALCULATOR + "PhaseTransferJar", nsmap=PHASE_CALC_NAMESPACE_DICT
+        )
         pt_jar_element.text = self.phasetransfer_jar
         return pt_jar_element
+
     def write_scratch_dir_xml(self):
         """Write ScratchDirectory element.
 
@@ -185,9 +207,12 @@ class RuntimeInformation(object):
             XML representation of ScratchDirectory.
 
         """
-        scratch_element = etree.Element(PHASE_CALCULATOR + "ScratchDirectory", nsmap=PHASE_CALC_NAMESPACE_DICT)
+        scratch_element = etree.Element(
+            PHASE_CALCULATOR + "ScratchDirectory", nsmap=PHASE_CALC_NAMESPACE_DICT
+        )
         scratch_element.text = self.scratch_dir
         return scratch_element
+
     def write_output_dir_xml(self):
         """Write OutputDirectory element.
 
@@ -197,6 +222,8 @@ class RuntimeInformation(object):
             XML representation of OutputDirectory.
 
         """
-        output_element = etree.Element(PHASE_CALCULATOR + "OutputDirectory", nsmap=PHASE_CALC_NAMESPACE_DICT)
+        output_element = etree.Element(
+            PHASE_CALCULATOR + "OutputDirectory", nsmap=PHASE_CALC_NAMESPACE_DICT
+        )
         output_element.text = self.output_dir
-        return output_element
\ No newline at end of file
+        return output_element
diff --git a/phasecalculator/classes/system.py b/phasecalculator/classes/system.py
index 56b8369..33384d3 100755
--- a/phasecalculator/classes/system.py
+++ b/phasecalculator/classes/system.py
@@ -25,7 +25,10 @@ from lxml import etree
 from phasecalculator.classes.phases import Phases
 from phasecalculator.classes.runtimeinformation import RuntimeInformation
 from phasecalculator.classes.outputinformation import OutputInformation
-from phasecalculator.classes.xmlnamespacing import PHASE_CALCULATOR, PHASE_CALC_NAMESPACE_DICT
+from phasecalculator.classes.xmlnamespacing import (
+    PHASE_CALCULATOR,
+    PHASE_CALC_NAMESPACE_DICT,
+)
 
 
 logging.basicConfig()
@@ -35,6 +38,7 @@ LOGGER.setLevel(logging.WARN)
 
 class SystemCollection(object):
     """System Collection class."""
+
     def __init__(self, system_list):
         """
 
@@ -49,6 +53,7 @@ class SystemCollection(object):
 
         """
         self.system_list = system_list
+
     def __eq__(self, other):
         """Overload equality comparison operator.
 
@@ -68,10 +73,16 @@ class SystemCollection(object):
         if isinstance(other, type(self)):
             if len(self.system_list) != len(other.system_list):
                 return False
-            sys_comps = all([self.system_list[i] == other.system_list[i] for i in range(len(self.system_list))])
+            sys_comps = all(
+                [
+                    self.system_list[i] == other.system_list[i]
+                    for i in range(len(self.system_list))
+                ]
+            )
             return sys_comps
         else:
             return False
+
     @classmethod
     def parse_xml(cls, system_collection_xml):
         """Parse XML representation to new instance.
@@ -87,9 +98,12 @@ class SystemCollection(object):
             New instance.
 
         """
-        system_xml_list = system_collection_xml.xpath("phasecalc:System", namespaces=PHASE_CALC_NAMESPACE_DICT)
+        system_xml_list = system_collection_xml.xpath(
+            "phasecalc:System", namespaces=PHASE_CALC_NAMESPACE_DICT
+        )
         system_list = [System.parse_xml(system_xml) for system_xml in system_xml_list]
         return SystemCollection(system_list)
+
     def write_to_xml(self):
         """Write SystemCollection to XML.
 
@@ -99,13 +113,17 @@ class SystemCollection(object):
             XML representation of SystemCollection.
 
         """
-        sys_coll_element = etree.Element(PHASE_CALCULATOR + "SystemCollection", nsmap=PHASE_CALC_NAMESPACE_DICT)
+        sys_coll_element = etree.Element(
+            PHASE_CALCULATOR + "SystemCollection", nsmap=PHASE_CALC_NAMESPACE_DICT
+        )
         for system in self.system_list:
             sys_coll_element.append(system.write_to_xml())
         return sys_coll_element
 
+
 class System(object):
     """System class"""
+
     def __init__(self, phases, runtime_information, output_information):
         """Initialise new System.
 
@@ -126,6 +144,7 @@ class System(object):
         self.phases = phases
         self.runtime_information = runtime_information
         self.output_information = output_information
+
     def __eq__(self, other):
         """Overload equality comparison operator.
 
@@ -143,9 +162,14 @@ class System(object):
         if other is None:
             return False
         if isinstance(other, type(self)):
-            return (self.phases == other.phases and self.runtime_information == other.runtime_information and self.output_information == other.output_information)
+            return (
+                self.phases == other.phases
+                and self.runtime_information == other.runtime_information
+                and self.output_information == other.output_information
+            )
         else:
             return False
+
     @classmethod
     def parse_xml(cls, system_xml):
         """Parse XML representation to new instance.
@@ -161,13 +185,20 @@ class System(object):
             New instance.
 
         """
-        phases_xml = system_xml.xpath("phasecalc:Phases", namespaces=PHASE_CALC_NAMESPACE_DICT)[0]
-        runtime_xml = system_xml.xpath("phasecalc:RuntimeInformation", namespaces=PHASE_CALC_NAMESPACE_DICT)[0]
-        output_xml = system_xml.xpath("phasecalc:OutputInformation", namespaces=PHASE_CALC_NAMESPACE_DICT)[0]
+        phases_xml = system_xml.xpath(
+            "phasecalc:Phases", namespaces=PHASE_CALC_NAMESPACE_DICT
+        )[0]
+        runtime_xml = system_xml.xpath(
+            "phasecalc:RuntimeInformation", namespaces=PHASE_CALC_NAMESPACE_DICT
+        )[0]
+        output_xml = system_xml.xpath(
+            "phasecalc:OutputInformation", namespaces=PHASE_CALC_NAMESPACE_DICT
+        )[0]
         phases = Phases.parse_xml(phases_xml)
         runtime_information = RuntimeInformation.parse_xml(runtime_xml)
         output_information = OutputInformation.parse_xml(output_xml)
         return System(phases, runtime_information, output_information)
+
     def write_to_xml(self):
         """Write System to XML.
 
@@ -177,11 +208,14 @@ class System(object):
             XML representation of System.
 
         """
-        system_element = etree.Element(PHASE_CALCULATOR + "System", nsmap=PHASE_CALC_NAMESPACE_DICT)
+        system_element = etree.Element(
+            PHASE_CALCULATOR + "System", nsmap=PHASE_CALC_NAMESPACE_DICT
+        )
         system_element.append(self.phases.write_to_xml())
         system_element.append(self.runtime_information.write_to_xml())
         system_element.append(self.output_information.write_to_xml())
         return system_element
+
     def get_phase_compositions_by_temperature(self):
         """Get phases split up by temperature. This is for solvent XML generation.
 
@@ -192,6 +226,7 @@ class System(object):
 
         """
         return self.phases.get_phase_molefractions_by_temperature()
+
     def get_phases_by_temp_list(self):
         """Get temperature information and phase composition list for XML creation.
 
@@ -207,8 +242,11 @@ class System(object):
         phase_comps_by_temp = self.get_phase_compositions_by_temperature()
         phase_comp_by_temp_list = []
         for temperature, phases_mol_frac_list in phase_comps_by_temp.items():
-            phase_comp_by_temp_list.append([[temperature.to_dict()], phases_mol_frac_list])
+            phase_comp_by_temp_list.append(
+                [[temperature.to_dict()], phases_mol_frac_list]
+            )
         return phase_comp_by_temp_list
+
     def get_molefractions_by_molecule_list(self):
         """List of molefraction dictionaries for all phases in collection.
 
@@ -219,6 +257,7 @@ class System(object):
 
         """
         return self.phases.get_molefractions_by_molecule_list()
+
     def get_ssip_file_locations(self):
         """Get the SSIP file locations for all molecules in any phase.
 
@@ -229,6 +268,7 @@ class System(object):
 
         """
         return self.phases.get_ssip_file_locations()
+
     def calc_fgip(self):
         """Boolean indicating whether to Calculate FGIP information for Phases.
 
@@ -239,6 +279,7 @@ class System(object):
 
         """
         return self.output_information.fgip_output
+
     def calc_similarity(self):
         """Boolean indicating whether to calculate similarity information for Phases.
 
@@ -249,6 +290,7 @@ class System(object):
 
         """
         return self.output_information.similarity_output
+
     def calc_vle(self):
         """Boolean indicating whether to calculate VLE information for Phases.
 
diff --git a/phasecalculator/classes/temperature.py b/phasecalculator/classes/temperature.py
index 991758d..5d60348 100755
--- a/phasecalculator/classes/temperature.py
+++ b/phasecalculator/classes/temperature.py
@@ -22,12 +22,16 @@ Script for temperature class.
 
 import logging
 from lxml import etree
-from phasecalculator.classes.xmlnamespacing import PHASE_CALCULATOR, PHASE_CALC_NAMESPACE_DICT
+from phasecalculator.classes.xmlnamespacing import (
+    PHASE_CALCULATOR,
+    PHASE_CALC_NAMESPACE_DICT,
+)
 
 logging.basicConfig()
 LOGGER = logging.getLogger(__name__)
 LOGGER.setLevel(logging.WARN)
 
+
 class Temperature(object):
     """Temperature class."""
 
@@ -50,6 +54,7 @@ class Temperature(object):
         """
         self.temperature = temperature
         self.temperature_unit = temperature_unit
+
     def __eq__(self, other):
         """Overload equality comparison operator.
 
@@ -67,10 +72,13 @@ class Temperature(object):
         if other is None:
             return False
         if isinstance(other, type(self)):
-            return (abs(self.temperature - other.temperature)< self.TOLERANCE and self.temperature_unit == other.temperature_unit)
+            return (
+                abs(self.temperature - other.temperature) < self.TOLERANCE
+                and self.temperature_unit == other.temperature_unit
+            )
         else:
             return False
-    
+
     def __hash__(self):
         """Overload hash operator of Temperature class.
         
@@ -83,10 +91,14 @@ class Temperature(object):
             hash of temperature object.
 
         """
-        temperature = self.temperature if self.temperature_unit == "KELVIN" else self.temperature + 273.15
+        temperature = (
+            self.temperature
+            if self.temperature_unit == "KELVIN"
+            else self.temperature + 273.15
+        )
         temp_str = "{:.2f}".format(abs(temperature))
         return hash(temp_str) + hash(self.temperature_unit)
-    
+
     @classmethod
     def parse_xml(cls, temperature_xml):
         """Parse XML representation to new instance.
@@ -103,11 +115,15 @@ class Temperature(object):
 
         """
         temp_xpath = "@phasecalc:value"
-        temperature = float(temperature_xml.xpath(temp_xpath, namespaces=PHASE_CALC_NAMESPACE_DICT)[0])
+        temperature = float(
+            temperature_xml.xpath(temp_xpath, namespaces=PHASE_CALC_NAMESPACE_DICT)[0]
+        )
         unit_xpath = "@phasecalc:unit"
-        temperature_unit = temperature_xml.xpath(unit_xpath, namespaces=PHASE_CALC_NAMESPACE_DICT)[0]
+        temperature_unit = temperature_xml.xpath(
+            unit_xpath, namespaces=PHASE_CALC_NAMESPACE_DICT
+        )[0]
         return Temperature(temperature, temperature_unit)
-        
+
     def write_to_xml(self):
         """Write information to Etree representation of XML.
 
@@ -117,10 +133,13 @@ class Temperature(object):
             XML representation of Temperature.
 
         """
-        temp_element = etree.Element(PHASE_CALCULATOR + "Temperature", nsmap=PHASE_CALC_NAMESPACE_DICT)
+        temp_element = etree.Element(
+            PHASE_CALCULATOR + "Temperature", nsmap=PHASE_CALC_NAMESPACE_DICT
+        )
         temp_element.set(PHASE_CALCULATOR + "value", "{:.1f}".format(self.temperature))
         temp_element.set(PHASE_CALCULATOR + "unit", self.temperature_unit)
         return temp_element
+
     def to_dict(self):
         """Convert to dictionary.
 
@@ -130,5 +149,7 @@ class Temperature(object):
             Dictionary representation.
 
         """
-        return {"temperature_value":self.temperature,
-                "temperature_units":self.temperature_unit}
\ No newline at end of file
+        return {
+            "temperature_value": self.temperature,
+            "temperature_units": self.temperature_unit,
+        }
diff --git a/phasecalculator/classes/xmlnamespacing.py b/phasecalculator/classes/xmlnamespacing.py
index 82bfe41..2530f9a 100755
--- a/phasecalculator/classes/xmlnamespacing.py
+++ b/phasecalculator/classes/xmlnamespacing.py
@@ -26,6 +26,8 @@ logging.basicConfig()
 LOGGER = logging.getLogger(__name__)
 LOGGER.setLevel(logging.WARN)
 
-PHASE_CALC_NAMESPACE_DICT = {"phasecalc": "http://www-hunter.ch.cam.ac.uk/PhaseCalculatorSchema"}
+PHASE_CALC_NAMESPACE_DICT = {
+    "phasecalc": "http://www-hunter.ch.cam.ac.uk/PhaseCalculatorSchema"
+}
 
 PHASE_CALCULATOR = "{{{}}}".format(PHASE_CALC_NAMESPACE_DICT["phasecalc"])
diff --git a/phasecalculator/io/phasecsvconverter.py b/phasecalculator/io/phasecsvconverter.py
index c041517..94e55f0 100755
--- a/phasecalculator/io/phasecsvconverter.py
+++ b/phasecalculator/io/phasecsvconverter.py
@@ -36,6 +36,7 @@ LOGGER.setLevel(logging.WARN)
 NAME_INCHIKEY_MAP = pureinf.get_name_inchikey_mapping()
 INCHIKEY_SSIP_FILE_DICT = pureinf.get_ssip_file_dict()
 
+
 def convert_csv_file_to_phases(csv_filename):
     """Read CSV file and convert contents to Phases.
 
@@ -53,6 +54,7 @@ def convert_csv_file_to_phases(csv_filename):
     csv_file_contents = read_csv_file(csv_filename)
     return create_phases(csv_file_contents)
 
+
 def read_csv_file(csv_filename):
     """Read CSV file to list of rows.
 
@@ -71,6 +73,7 @@ def read_csv_file(csv_filename):
         csv_reader = csv.reader(csv_file, delimiter="\t")
         return [row for row in csv_reader]
 
+
 def create_phases(csv_file_contents):
     """Create Phases for csv file contents
 
@@ -89,7 +92,6 @@ def create_phases(csv_file_contents):
     for csv_file_line in csv_file_contents:
         phase_list.append(create_phase(csv_file_line))
     return Phases(phase_list)
-    
 
 
 def create_phase(csv_file_line):
@@ -109,12 +111,13 @@ def create_phase(csv_file_line):
     """
     temperature = create_temperature(float(csv_file_line[0]))
     molecule_list = []
-    for i in range(1,len(csv_file_line),2):
+    for i in range(1, len(csv_file_line), 2):
         name = csv_file_line[i]
-        molefraction = float(csv_file_line[i+1])
+        molefraction = float(csv_file_line[i + 1])
         molecule_list.append(create_molecule(name, molefraction))
     return Phase(molecule_list, temperature)
 
+
 def create_molecule(name, molefraction):
     """Create Molecule.
 
@@ -144,6 +147,7 @@ def create_molecule(name, molefraction):
         LOGGER.error("Invalid entry: %s Not found.", name)
         raise keyerr
 
+
 def create_temperature(temperature_value):
     """Create Temperature.
 
@@ -158,4 +162,4 @@ def create_temperature(temperature_value):
         Temperature object.
 
     """
-    return Temperature(temperature_value, "KELVIN")
\ No newline at end of file
+    return Temperature(temperature_value, "KELVIN")
diff --git a/phasecalculator/io/phasetransferxmlcreator.py b/phasecalculator/io/phasetransferxmlcreator.py
index 9381a77..e003bf0 100755
--- a/phasecalculator/io/phasetransferxmlcreator.py
+++ b/phasecalculator/io/phasetransferxmlcreator.py
@@ -30,6 +30,7 @@ logging.basicConfig()
 LOGGER = logging.getLogger(__name__)
 LOGGER.setLevel(logging.WARN)
 
+
 def create_solvent_file(mole_fraction_dict_list, solvent_filename, **kwargs):
     """Create solvent XML file for given compositions.
 
@@ -58,6 +59,7 @@ def create_solvent_file(mole_fraction_dict_list, solvent_filename, **kwargs):
     solvent_info_list = generate_solv_info_list(mole_fraction_dict_list, **kwargs)
     write_solvent_file(solvent_info_list, solvent_filename)
 
+
 def create_phase_file(mole_fraction_dict_list_by_temp, phase_filename, **kwargs):
     """Create phase XML file for given compositions and temperatures.
 
@@ -91,6 +93,7 @@ def create_phase_file(mole_fraction_dict_list_by_temp, phase_filename, **kwargs)
         phase_info_by_temp.append([temperature_info, phase_info_list])
     write_phase_file(phase_info_by_temp, phase_filename)
 
+
 def write_solvent_file(solvent_info_list, solvent_filename):
     """Write solvent XML file for given compositions.
 
@@ -129,7 +132,10 @@ def write_phase_file(phase_info_list_by_temp, phase_filename):
     None.
 
     """
-    phasemake.write_phase_information_to_file_diff_temp(phase_info_list_by_temp, phase_filename)
+    phasemake.write_phase_information_to_file_diff_temp(
+        phase_info_list_by_temp, phase_filename
+    )
+
 
 def generate_solv_info_list(mole_fraction_dict_list, **kwargs):
     """Generate solvent info from read in SSIP files and solvent information.
@@ -156,7 +162,16 @@ def generate_solv_info_list(mole_fraction_dict_list, **kwargs):
         compositions.
 
     """
-    solvent_filename = kwargs.get("solvent_info_filename", multiassem.solvconcreader.DEFAULT_SOLVENT_INFORMATION_FILE)
-    ssip_filename_list = kwargs.get("ssip_filename_list",pureinfo.get_ssip_file_dict().values())
-    name_inchikey_map = kwargs.get("name_inchikey_map", pureinfo.get_name_inchikey_mapping())
-    return multiassem.generate_solv_info_from_files(mole_fraction_dict_list, solvent_filename, ssip_filename_list, name_inchikey_map)
+    solvent_filename = kwargs.get(
+        "solvent_info_filename",
+        multiassem.solvconcreader.DEFAULT_SOLVENT_INFORMATION_FILE,
+    )
+    ssip_filename_list = kwargs.get(
+        "ssip_filename_list", pureinfo.get_ssip_file_dict().values()
+    )
+    name_inchikey_map = kwargs.get(
+        "name_inchikey_map", pureinfo.get_name_inchikey_mapping()
+    )
+    return multiassem.generate_solv_info_from_files(
+        mole_fraction_dict_list, solvent_filename, ssip_filename_list, name_inchikey_map
+    )
diff --git a/phasecalculator/io/polynomialio.py b/phasecalculator/io/polynomialio.py
index 0d7b2a0..cdb4f6b 100755
--- a/phasecalculator/io/polynomialio.py
+++ b/phasecalculator/io/polynomialio.py
@@ -31,9 +31,10 @@ LOGGER.setLevel(logging.WARN)
 
 POLY_ORDER_LIST = [8]
 
-POSITIVE_POINTS = ["{:.3f}solute".format((float(x)/10.0)) for x in range(101)]
+POSITIVE_POINTS = ["{:.3f}solute".format((float(x) / 10.0)) for x in range(101)]
+
+NEGATIVE_POINTS = ["{:.3f}solute".format((float(x) / 10.0) - 20.0) for x in range(201)]
 
-NEGATIVE_POINTS = ["{:.3f}solute".format((float(x)/10.0) - 20.0) for x in range(201)]
 
 def read_poly_data_to_dict(poly_filename_list, **kwargs):
     """Parse each file, and then returns the dictionary of information, by solvent ID.
@@ -57,6 +58,7 @@ def read_poly_data_to_dict(poly_filename_list, **kwargs):
     """
     return polyread.parse_polynomial_data_file_list(poly_filename_list, **kwargs)
 
+
 def generate_polynomial_data_free_energy_file_list(free_energy_filename_list):
     """Generate polynomial fits for free energy data in given files.
 
@@ -76,15 +78,22 @@ def generate_polynomial_data_free_energy_file_list(free_energy_filename_list):
     out_res_split = []
     filename_list = []
     for free_energy_filename in free_energy_filename_list:
-        poly_filename_split = generate_polynomial_filename(free_energy_filename, suffix="_poly_fit_split.csv")
-        out_res_split.append(polyplot.parse_free_energy_poly_data_to_file_split_fit(free_energy_filename,
-                                                                                  POLY_ORDER_LIST,
-                                                                                  poly_filename_split,
-                                                                                  POSITIVE_POINTS,
-                                                                                  NEGATIVE_POINTS))
+        poly_filename_split = generate_polynomial_filename(
+            free_energy_filename, suffix="_poly_fit_split.csv"
+        )
+        out_res_split.append(
+            polyplot.parse_free_energy_poly_data_to_file_split_fit(
+                free_energy_filename,
+                POLY_ORDER_LIST,
+                poly_filename_split,
+                POSITIVE_POINTS,
+                NEGATIVE_POINTS,
+            )
+        )
         filename_list.append(poly_filename_split)
     return out_res_split, filename_list
 
+
 def generate_polynomial_data_binding_energy_file_list(binding_energy_filename_list):
     """Generate polynomial fits for binding energy data in given files.
 
@@ -104,16 +113,23 @@ def generate_polynomial_data_binding_energy_file_list(binding_energy_filename_li
     out_res_split = []
     filename_list = []
     for binding_energy_filename in binding_energy_filename_list:
-        poly_filename_split = generate_polynomial_filename(binding_energy_filename, suffix="_poly_fit_split.csv")
-        out_res_split.append(polyplot.parse_binding_energy_poly_data_to_file_split_fit(binding_energy_filename,
-                                                                                  POLY_ORDER_LIST,
-                                                                                  poly_filename_split,
-                                                                                  POSITIVE_POINTS,
-                                                                                  NEGATIVE_POINTS))
+        poly_filename_split = generate_polynomial_filename(
+            binding_energy_filename, suffix="_poly_fit_split.csv"
+        )
+        out_res_split.append(
+            polyplot.parse_binding_energy_poly_data_to_file_split_fit(
+                binding_energy_filename,
+                POLY_ORDER_LIST,
+                poly_filename_split,
+                POSITIVE_POINTS,
+                NEGATIVE_POINTS,
+            )
+        )
         filename_list.append(poly_filename_split)
-    return out_res_split, filename_list   
+    return out_res_split, filename_list
+
 
-def generate_polynomial_filename(free_energy_filename, suffix='_poly_fit.csv'):
+def generate_polynomial_filename(free_energy_filename, suffix="_poly_fit.csv"):
     """Generate polynomial filename from energy XML filename.
 
     Parameters
@@ -129,5 +145,4 @@ def generate_polynomial_filename(free_energy_filename, suffix='_poly_fit.csv'):
         polynomial filename.
 
     """
-    return free_energy_filename.replace('.xml', suffix)
-
+    return free_energy_filename.replace(".xml", suffix)
diff --git a/phasecalculator/io/solventextractor.py b/phasecalculator/io/solventextractor.py
index 4f1ea61..0fc508a 100755
--- a/phasecalculator/io/solventextractor.py
+++ b/phasecalculator/io/solventextractor.py
@@ -27,7 +27,10 @@ logging.basicConfig()
 LOGGER = logging.getLogger(__name__)
 LOGGER.setLevel(logging.WARN)
 
-def extract_and_write_energy_values_from_files(solvent_filename, energy_xml_filename, energy_type, directory):
+
+def extract_and_write_energy_values_from_files(
+    solvent_filename, energy_xml_filename, energy_type, directory
+):
     """Extracts energies and splits to different file for each solvent.
 
     Parameters
@@ -47,6 +50,6 @@ def extract_and_write_energy_values_from_files(solvent_filename, energy_xml_file
         filenames for files outputted to disk.
 
     """
-    return solvextract.extract_and_write_energy_values_from_files(solvent_filename, energy_xml_filename, energy_type, directory)
-
-
+    return solvextract.extract_and_write_energy_values_from_files(
+        solvent_filename, energy_xml_filename, energy_type, directory
+    )
diff --git a/phasecalculator/io/systemcollectionprocessor.py b/phasecalculator/io/systemcollectionprocessor.py
index 7084582..7aa61b7 100755
--- a/phasecalculator/io/systemcollectionprocessor.py
+++ b/phasecalculator/io/systemcollectionprocessor.py
@@ -44,7 +44,9 @@ def read_system_collection_file(xml_filename):
         SystemCollection for calculations.
 
     """
-    system_collection_etree = xmlval.validate_and_read_xml_file(xml_filename, xmlval.PHASE_CALCULATOR_SCHEMA)
+    system_collection_etree = xmlval.validate_and_read_xml_file(
+        xml_filename, xmlval.PHASE_CALCULATOR_SCHEMA
+    )
     return SystemCollection.parse_xml(system_collection_etree)
 
 
@@ -68,4 +70,4 @@ def write_system_collection_file(system_collection, xml_filename):
     xmlval.validate_xml(system_coll_etree, xmlval.PHASE_CALCULATOR_SCHEMA)
     system_coll_etree.write(
         xml_filename, encoding="UTF-8", xml_declaration=True, pretty_print=True
-    )
\ No newline at end of file
+    )
diff --git a/phasecalculator/phasecalculatorcli.py b/phasecalculator/phasecalculatorcli.py
index 71e549f..183dd17 100755
--- a/phasecalculator/phasecalculatorcli.py
+++ b/phasecalculator/phasecalculatorcli.py
@@ -49,6 +49,7 @@ def main():
     args = parser.parse_args()
     return process_args(args)
 
+
 def process_args(args):
     """Process CLI Arguments.
 
@@ -65,6 +66,7 @@ def process_args(args):
     """
     return args.func(args)
 
+
 def process_inputgen(args):
     """Process arguments to run input file creation for phase calculation.
 
@@ -82,6 +84,7 @@ def process_inputgen(args):
     system_collection = create_system_collection(args)
     sysproc.write_system_collection_file(system_collection, output_filename)
 
+
 def process_phasecalculator(args):
     """Process arguments to run phase calculation.
 
@@ -102,6 +105,7 @@ def process_phasecalculator(args):
     else:
         run_system_collection(system_collection)
 
+
 def create_system_collection(args):
     """Create SystemCollection from input arguments
 
@@ -125,11 +129,16 @@ def create_system_collection(args):
     similarity_output = args.sim
     similarity_output_type = args.sim_type if similarity_output else None
     vle_output = args.vle
-    out_inf = create_output_inf(fgip_output, similarity_output, similarity_output_type, vle_output)
+    out_inf = create_output_inf(
+        fgip_output, similarity_output, similarity_output_type, vle_output
+    )
     system = System(phases, run_inf, out_inf)
     return SystemCollection([system])
-    
-def create_output_inf(fgip_output, similarity_output, similarity_output_type, vle_output):
+
+
+def create_output_inf(
+    fgip_output, similarity_output, similarity_output_type, vle_output
+):
     """Create OutputInformation
 
     Parameters
@@ -149,7 +158,10 @@ def create_output_inf(fgip_output, similarity_output, similarity_output_type, vl
         Output information for calculation.
 
     """
-    return OutputInformation(fgip_output, similarity_output, similarity_output_type, vle_output)
+    return OutputInformation(
+        fgip_output, similarity_output, similarity_output_type, vle_output
+    )
+
 
 def create_runtime_inf(jar_path, scratch_dir, output_dir):
     """Create RuntimeInformation
@@ -170,7 +182,8 @@ def create_runtime_inf(jar_path, scratch_dir, output_dir):
 
     """
     return RuntimeInformation(jar_path, scratch_dir, output_dir)
-    
+
+
 def read_calculator_xml(xml_filename):
     """Read SystemCollection XML.
 
@@ -187,6 +200,7 @@ def read_calculator_xml(xml_filename):
     """
     return sysproc.read_system_collection_file(xml_filename)
 
+
 def read_phasecsv(csv_filename):
     """Read CSV file containing phase infomration and create Phases object.
 
@@ -203,6 +217,7 @@ def read_phasecsv(csv_filename):
     """
     return csvconv.convert_csv_file_to_phases(csv_filename)
 
+
 def run_system_collection(system_collection, **kwargs):
     """Run all systems in collection.
 
@@ -221,6 +236,7 @@ def run_system_collection(system_collection, **kwargs):
     for system_info in system_collection.system_list:
         phasecrun.run_all_analysis(system_info, **kwargs)
 
+
 def create_phasecalculator_argparser():
     """Create Argument parser for Phasecalculator module.
 
@@ -232,49 +248,82 @@ def create_phasecalculator_argparser():
     description = """Phase Calculator provides methods to perform FGIP,
 similarity and VLE analysis for solvents."""
     epilog = """Example usage"""
-    phase_argparser= argparse.ArgumentParser(description=description,
-                                             epilog=epilog,
-                                             conflict_handler='resolve',
-                                             formatter_class=argparse.ArgumentDefaultsHelpFormatter)
+    phase_argparser = argparse.ArgumentParser(
+        description=description,
+        epilog=epilog,
+        conflict_handler="resolve",
+        formatter_class=argparse.ArgumentDefaultsHelpFormatter,
+    )
     subparsers = phase_argparser.add_subparsers(title="commands", dest="command")
 
     calc_description = """Calculation runner based on input System XML."""
     calc_epilog = """"""
 
-    calc_argparser = subparsers.add_parser("calculate", description=calc_description,
-                                             epilog=calc_epilog,
-                                           help="calculate phase properties.",
-                                           formatter_class=argparse.ArgumentDefaultsHelpFormatter)
-    calc_argparser.add_argument("-i", "-f","--file", type=str, required=True,
-                                help="filename for SystemCollectionXML")
-    calc_argparser.add_argument("--memreq", type=str, default=None,
-                                help="memory specifier for jar call. Defaults to system default.")
+    calc_argparser = subparsers.add_parser(
+        "calculate",
+        description=calc_description,
+        epilog=calc_epilog,
+        help="calculate phase properties.",
+        formatter_class=argparse.ArgumentDefaultsHelpFormatter,
+    )
+    calc_argparser.add_argument(
+        "-i",
+        "-f",
+        "--file",
+        type=str,
+        required=True,
+        help="filename for SystemCollectionXML",
+    )
+    calc_argparser.add_argument(
+        "--memreq",
+        type=str,
+        default=None,
+        help="memory specifier for jar call. Defaults to system default.",
+    )
     calc_argparser.set_defaults(func=process_phasecalculator)
-    
+
     inpgen_description = """Input SystemCollection XML generation."""
     inpgen_epilog = """"""
-    
-    inpgen_argparser = subparsers.add_parser("inpgen", description=inpgen_description,
-                                               epilog=inpgen_epilog,
-                                          help="create system input xml.",
-                                          formatter_class=argparse.ArgumentDefaultsHelpFormatter)
-    inpgen_argparser.add_argument("-p", "--phases", type=str,
-                                  help="")
-    inpgen_argparser.add_argument("-j", "--jar", type=str, required=True,
-                                  help="Phasetransfer jar path.")
-    inpgen_argparser.add_argument("-x", "--scratch", type=str, default="scratch",
-                                  help="scratch directory path.")
-    inpgen_argparser.add_argument("-o", "--out_dir", type=str, default="output",
-                                  help="output directory for calculation results")
-    
-    inpgen_argparser.add_argument("-f", "--fgip", action='store_true',
-                                  help="Calculate FGIPs for input solvents")
-    inpgen_argparser.add_argument("-s","--sim", action='store_true',
-                                  help="Calculate similarity for input solvents")
-    inpgen_argparser.add_argument("--sim_type", type=str, default="all",
-                                  help="similarity output type.")
-    inpgen_argparser.add_argument("-v","--vle", action='store_true',
-                                  help="Calculate VLE for input solvents")
-    inpgen_argparser.add_argument("--filename", type=str, default="systemcollection.xml")
+
+    inpgen_argparser = subparsers.add_parser(
+        "inpgen",
+        description=inpgen_description,
+        epilog=inpgen_epilog,
+        help="create system input xml.",
+        formatter_class=argparse.ArgumentDefaultsHelpFormatter,
+    )
+    inpgen_argparser.add_argument("-p", "--phases", type=str, help="")
+    inpgen_argparser.add_argument(
+        "-j", "--jar", type=str, required=True, help="Phasetransfer jar path."
+    )
+    inpgen_argparser.add_argument(
+        "-x", "--scratch", type=str, default="scratch", help="scratch directory path."
+    )
+    inpgen_argparser.add_argument(
+        "-o",
+        "--out_dir",
+        type=str,
+        default="output",
+        help="output directory for calculation results",
+    )
+
+    inpgen_argparser.add_argument(
+        "-f", "--fgip", action="store_true", help="Calculate FGIPs for input solvents"
+    )
+    inpgen_argparser.add_argument(
+        "-s",
+        "--sim",
+        action="store_true",
+        help="Calculate similarity for input solvents",
+    )
+    inpgen_argparser.add_argument(
+        "--sim_type", type=str, default="all", help="similarity output type."
+    )
+    inpgen_argparser.add_argument(
+        "-v", "--vle", action="store_true", help="Calculate VLE for input solvents"
+    )
+    inpgen_argparser.add_argument(
+        "--filename", type=str, default="systemcollection.xml"
+    )
     inpgen_argparser.set_defaults(func=process_inputgen)
     return phase_argparser
diff --git a/phasecalculator/runners/fgipanalysisrunner.py b/phasecalculator/runners/fgipanalysisrunner.py
index 72623c4..d75e999 100755
--- a/phasecalculator/runners/fgipanalysisrunner.py
+++ b/phasecalculator/runners/fgipanalysisrunner.py
@@ -32,7 +32,10 @@ logging.basicConfig()
 LOGGER = logging.getLogger(__name__)
 LOGGER.setLevel(logging.WARN)
 
-def calc_energies_and_fgips(jar_path, energy_xml_filename, solvent_filename, directory_base, **kwargs):
+
+def calc_energies_and_fgips(
+    jar_path, energy_xml_filename, solvent_filename, directory_base, **kwargs
+):
     """Run phasetransfer calculation and generate FGIPs for input solvent.
 
     Parameters
@@ -60,12 +63,19 @@ def calc_energies_and_fgips(jar_path, energy_xml_filename, solvent_filename, dir
         List of results of calculation outcomes, and latex text block for figures.
 
     """
-    temperature = kwargs.get("temperature",298.0)
+    temperature = kwargs.get("temperature", 298.0)
     temperature_unit = kwargs.get("temperature_unit", "KELVIN")
-    run_binding_energy_calculation(jar_path, energy_xml_filename, solvent_filename, **kwargs)
+    run_binding_energy_calculation(
+        jar_path, energy_xml_filename, solvent_filename, **kwargs
+    )
     directory = generate_directory(directory_base, temperature, temperature_unit)
-    out_res, polynomial_filename_list = extract_solvents_and_generate_polynomials(solvent_filename, energy_xml_filename, directory)
-    return run_fgip_analysis(solvent_filename, polynomial_filename_list, directory, **kwargs)
+    out_res, polynomial_filename_list = extract_solvents_and_generate_polynomials(
+        solvent_filename, energy_xml_filename, directory
+    )
+    return run_fgip_analysis(
+        solvent_filename, polynomial_filename_list, directory, **kwargs
+    )
+
 
 def generate_directory(directory_base, temperature, temperature_unit):
     """Generate directory to put information based on temperature of simulation.
@@ -89,11 +99,14 @@ def generate_directory(directory_base, temperature, temperature_unit):
         
 
     """
-    temperature_name = "{:.1f}{}".format(temperature, "K" if temperature_unit == "KELVIN" else "C").replace(".","_")
+    temperature_name = "{:.1f}{}".format(
+        temperature, "K" if temperature_unit == "KELVIN" else "C"
+    ).replace(".", "_")
     dir_path = pathlib.Path(directory_base) / temperature_name
-    dir_path.mkdir(parents=True,exist_ok=True)
+    dir_path.mkdir(parents=True, exist_ok=True)
     return dir_path.as_posix()
 
+
 def run_fgip_analysis(solvent_filename, polynomial_filename_list, directory, **kwargs):
     """Run FGIP analysis for all solvents included in solvent file.
 
@@ -114,9 +127,14 @@ def run_fgip_analysis(solvent_filename, polynomial_filename_list, directory, **k
         List of results of calculation outcomes, and latex text block for figures.
 
     """
-    return fgipanalysis.create_solv_map_and_fgips_from_files(solvent_filename, polynomial_filename_list, directory, **kwargs)
+    return fgipanalysis.create_solv_map_and_fgips_from_files(
+        solvent_filename, polynomial_filename_list, directory, **kwargs
+    )
 
-def extract_solvents_and_generate_polynomials(solvent_filename, energy_xml_filename, directory):
+
+def extract_solvents_and_generate_polynomials(
+    solvent_filename, energy_xml_filename, directory
+):
     """Extract solvation binding energies and calculate binding polynomials per solvent.
 
     Parameters
@@ -135,10 +153,17 @@ def extract_solvents_and_generate_polynomials(solvent_filename, energy_xml_filen
         list of polynomial filenames.
 
     """
-    energy_xml_filenames = solvextract.extract_and_write_energy_values_from_files(solvent_filename, energy_xml_filename, "binding", directory)
-    return polyio.generate_polynomial_data_binding_energy_file_list(energy_xml_filenames)
+    energy_xml_filenames = solvextract.extract_and_write_energy_values_from_files(
+        solvent_filename, energy_xml_filename, "binding", directory
+    )
+    return polyio.generate_polynomial_data_binding_energy_file_list(
+        energy_xml_filenames
+    )
+
 
-def run_binding_energy_calculation(jar_path, output_filename, solvent_filename, **kwargs):
+def run_binding_energy_calculation(
+    jar_path, output_filename, solvent_filename, **kwargs
+):
     """Run solute solvation binding energy calculation.
 
     Parameters
@@ -170,4 +195,6 @@ def run_binding_energy_calculation(jar_path, output_filename, solvent_filename,
         result of system call.
 
     """
-    return phaserun.run_phasetransfer_binding_energy(jar_path, output_filename, solvent_filename, **kwargs)
\ No newline at end of file
+    return phaserun.run_phasetransfer_binding_energy(
+        jar_path, output_filename, solvent_filename, **kwargs
+    )
diff --git a/phasecalculator/runners/phasecalculatorrunner.py b/phasecalculator/runners/phasecalculatorrunner.py
index fc6ff20..79d8861 100755
--- a/phasecalculator/runners/phasecalculatorrunner.py
+++ b/phasecalculator/runners/phasecalculatorrunner.py
@@ -51,14 +51,17 @@ def run_all_analysis(system_info, **kwargs):
     None.
 
     """
-    phase_filename, solvent_list = create_phase_and_solvent_xml_files(system_info, **kwargs)
+    phase_filename, solvent_list = create_phase_and_solvent_xml_files(
+        system_info, **kwargs
+    )
     if system_info.calc_vle():
         run_vle_analysis(system_info, phase_filename, **kwargs)
     if system_info.calc_fgip():
         run_fgip_analysis(system_info, solvent_list, **kwargs)
     if system_info.calc_similarity():
         run_similarity_analysis(system_info, solvent_list, **kwargs)
-    
+
+
 def run_fgip_analysis(system_info, solvent_filename_dict_list, **kwargs):
     """Run FGIP analysis.
 
@@ -92,14 +95,20 @@ def run_fgip_analysis(system_info, solvent_filename_dict_list, **kwargs):
         directory_base = system_info.runtime_information.output_dir
         temperature = solvent_filename_dict["temperature_value"]
         temperature_unit = solvent_filename_dict["temperature_units"]
-        results, latex_blocks = fgiprun.calc_energies_and_fgips(jar_path, energy_xml_filename,
-                                    solvent_filename, directory_base,
-                                    temperature=temperature,
-                                    temperature_unit=temperature_unit,
-                                    **kwargs)
+        results, latex_blocks = fgiprun.calc_energies_and_fgips(
+            jar_path,
+            energy_xml_filename,
+            solvent_filename,
+            directory_base,
+            temperature=temperature,
+            temperature_unit=temperature_unit,
+            **kwargs
+        )
         combined_results.extend(results)
         combined_latex_blocks += latex_blocks
     return combined_results, combined_latex_blocks
+
+
 def run_similarity_analysis(system_info, solvent_filename_dict, **kwargs):
     """Run similarity analysis.
 
@@ -129,18 +138,24 @@ def run_similarity_analysis(system_info, solvent_filename_dict, **kwargs):
         temperature_unit = solv_dict["temperature_units"]
         solv_dict["energy_filename"] = energy_filename
         solvent_filename_dict_list.append(solv_dict)
-        simrun.run_free_energy_calculation(jar_path, energy_filename,
-                                           solvent_filename,
-                                           temperature=temperature,
-                                           temperature_unit=temperature_unit,
-                                           **kwargs)
+        simrun.run_free_energy_calculation(
+            jar_path,
+            energy_filename,
+            solvent_filename,
+            temperature=temperature,
+            temperature_unit=temperature_unit,
+            **kwargs
+        )
     output_dir = system_info.runtime_information.output_dir
     output_type = system_info.output_information.similarity_output_type
-    out_res, poly_filename_list = simrun.extract_all_solvents_and_generate_polynomials(solvent_filename_dict_list,
-                                                                                       output_dir)
-    simrun.run_similarity_analysis(poly_filename_list, output_type, output_dir, **kwargs)
+    out_res, poly_filename_list = simrun.extract_all_solvents_and_generate_polynomials(
+        solvent_filename_dict_list, output_dir
+    )
+    simrun.run_similarity_analysis(
+        poly_filename_list, output_type, output_dir, **kwargs
+    )
+
 
-    
 def run_vle_analysis(system_info, phase_filename, **kwargs):
     """Run VLE phase calculation.
 
@@ -166,7 +181,10 @@ def run_vle_analysis(system_info, phase_filename, **kwargs):
     """
     jar_path = system_info.runtime_information.phasetransfer_jar
     output_filename = create_phase_output_filename(phase_filename)
-    return vlerun.run_vle_calculation(jar_path, phase_filename, output_filename, **kwargs)
+    return vlerun.run_vle_calculation(
+        jar_path, phase_filename, output_filename, **kwargs
+    )
+
 
 def create_output_dir(system_info):
     """Makes output directory for system calculation. 
@@ -182,9 +200,10 @@ def create_output_dir(system_info):
 
     """
     output_path = pathlib.Path(system_info.runtime_information.output_dir)
-    output_path.mkdir(parents=True,exist_ok=True)
+    output_path.mkdir(parents=True, exist_ok=True)
     return output_path.as_posix()
 
+
 def create_free_energy_output_filename(solvent_filename):
     """Create free energy filename for solvent file. 
 
@@ -199,7 +218,9 @@ def create_free_energy_output_filename(solvent_filename):
         Output energy filename.
 
     """
-    return solvent_filename.replace(".xml","free.xml")
+    return solvent_filename.replace(".xml", "free.xml")
+
+
 def create_binding_energy_output_filename(solvent_filename):
     """Create binding energy filename for solvent file.
 
@@ -215,6 +236,8 @@ def create_binding_energy_output_filename(solvent_filename):
 
     """
     return solvent_filename.replace(".xml", "binding.xml")
+
+
 def create_phase_output_filename(phase_filename):
     """
 
@@ -231,6 +254,7 @@ def create_phase_output_filename(phase_filename):
     """
     return phase_filename.replace(".xml", "calculated.xml")
 
+
 def create_phase_and_solvent_xml_files(system_info, **kwargs):
     """Create solvent and phase files for given system.
 
@@ -257,4 +281,4 @@ def create_phase_and_solvent_xml_files(system_info, **kwargs):
 
 
     """
-    return phasexmlrun.create_phase_and_solvent_files(system_info, **kwargs)
\ No newline at end of file
+    return phasexmlrun.create_phase_and_solvent_files(system_info, **kwargs)
diff --git a/phasecalculator/runners/phasetransferrunner.py b/phasecalculator/runners/phasetransferrunner.py
index 8973205..e707120 100755
--- a/phasecalculator/runners/phasetransferrunner.py
+++ b/phasecalculator/runners/phasetransferrunner.py
@@ -30,8 +30,6 @@ LOGGER = logging.getLogger(__name__)
 LOGGER.setLevel(logging.WARN)
 
 
-
-
 def run_vle_calculation(jar_path, phase_filename, output_filename, **kwargs):
     """Run VLE phase calculation.
 
@@ -58,12 +56,17 @@ def run_vle_calculation(jar_path, phase_filename, output_filename, **kwargs):
 
     """
     if check_jar_exists(jar_path):
-        vle_args = generate_vle_calc_args(jar_path, phase_filename, output_filename, **kwargs)
+        vle_args = generate_vle_calc_args(
+            jar_path, phase_filename, output_filename, **kwargs
+        )
         return run_calculation(vle_args)
     else:
         raise FileNotFoundError("File does not exist: %s", jar_path)
 
-def run_phasetransfer_binding_energy(jar_path, output_filename, solvent_filename, **kwargs):
+
+def run_phasetransfer_binding_energy(
+    jar_path, output_filename, solvent_filename, **kwargs
+):
     """Run solute solvation binding energy calculation.
 
     Parameters
@@ -96,12 +99,17 @@ def run_phasetransfer_binding_energy(jar_path, output_filename, solvent_filename
 
     """
     if check_jar_exists(jar_path):
-        phase_binding_args = generate_phasetransfer_binding_args(jar_path, output_filename, solvent_filename, **kwargs)
+        phase_binding_args = generate_phasetransfer_binding_args(
+            jar_path, output_filename, solvent_filename, **kwargs
+        )
         return run_calculation(phase_binding_args)
     else:
         raise FileNotFoundError("File does not exist: %s", jar_path)
 
-def run_phasetransfer_free_energy(jar_path, output_filename, solvent_filename, **kwargs):
+
+def run_phasetransfer_free_energy(
+    jar_path, output_filename, solvent_filename, **kwargs
+):
     """Run solute solvation free energy calculation.
 
     Parameters
@@ -133,11 +141,14 @@ def run_phasetransfer_free_energy(jar_path, output_filename, solvent_filename, *
 
     """
     if check_jar_exists(jar_path):
-        phase_free_args = generate_phasetransfer_free_args(jar_path, output_filename, solvent_filename, **kwargs)
+        phase_free_args = generate_phasetransfer_free_args(
+            jar_path, output_filename, solvent_filename, **kwargs
+        )
         return run_calculation(phase_free_args)
     else:
         raise FileNotFoundError("File does not exist: %s", jar_path)
 
+
 def run_calculation(arg_list):
     """Run calculation with given arguments.
 
@@ -153,7 +164,8 @@ def run_calculation(arg_list):
 
     """
     return subprocess.run(arg_list)
-    
+
+
 def generate_vle_calc_args(jar_path, phase_filename, output_filename, **kwargs):
     """Generate full argument list for VLE phase calculation.
 
@@ -174,10 +186,14 @@ def generate_vle_calc_args(jar_path, phase_filename, output_filename, **kwargs):
         argument list for phasetransfer jar call.
 
     """
-    jar_args = make_java_arguments(jar_path,memory_req=kwargs.pop("memory_req",None))
+    jar_args = make_java_arguments(jar_path, memory_req=kwargs.pop("memory_req", None))
     phase_calc_args = generate_phase_calc_args(phase_filename, output_filename)
     return jar_args + phase_calc_args
-def generate_phasetransfer_free_args(jar_path, output_filename, solvent_filename, **kwargs):
+
+
+def generate_phasetransfer_free_args(
+    jar_path, output_filename, solvent_filename, **kwargs
+):
     """Generate full argument list for solute solvation free energy calculation call.
 
     Parameters
@@ -203,12 +219,17 @@ def generate_phasetransfer_free_args(jar_path, output_filename, solvent_filename
         argument list for phasetransfer jar call.
 
     """
-    jar_args = make_java_arguments(jar_path,memory_req=kwargs.pop("memory_req",None))
+    jar_args = make_java_arguments(jar_path, memory_req=kwargs.pop("memory_req", None))
     free_args = ["--energies", "solvationtotal"]
-    solvent_args = generate_solvent_calc_args(output_filename, solvent_filename, **kwargs)
+    solvent_args = generate_solvent_calc_args(
+        output_filename, solvent_filename, **kwargs
+    )
     return jar_args + free_args + solvent_args
 
-def generate_phasetransfer_binding_args(jar_path, output_filename, solvent_filename, **kwargs):
+
+def generate_phasetransfer_binding_args(
+    jar_path, output_filename, solvent_filename, **kwargs
+):
     """Generate full argument list for solute solvation binding energy calculation call.
 
     Parameters
@@ -234,11 +255,14 @@ def generate_phasetransfer_binding_args(jar_path, output_filename, solvent_filen
         argument list for phasetransfer jar call.
 
     """
-    jar_args = make_java_arguments(jar_path,memory_req=kwargs.pop("memory_req",None))
+    jar_args = make_java_arguments(jar_path, memory_req=kwargs.pop("memory_req", None))
     binding_args = ["--energies", "solvationbinding"]
-    solvent_args = generate_solvent_calc_args(output_filename, solvent_filename, **kwargs)
+    solvent_args = generate_solvent_calc_args(
+        output_filename, solvent_filename, **kwargs
+    )
     return jar_args + binding_args + solvent_args
-    
+
+
 def generate_phase_calc_args(phase_filename, output_filename):
     """Generate argument list for phasetransfer VLE phase call.
 
@@ -255,13 +279,26 @@ def generate_phase_calc_args(phase_filename, output_filename):
         argument calls for jar file.
 
     """
-    return ["--phaseOut", "--phaseCollectionList", "--conccalc",
-            "--gascalc", "--calc", "--phaseFile", phase_filename,
-                      "-o", output_filename]
-
-def generate_solvent_calc_args(output_filename, solvent_filename,temperature=298.0,
-                               temperature_unit="KELVIN",
-                               solute_filename=pureinf.SINGLE_SSIP_SOLUTE_FILE):
+    return [
+        "--phaseOut",
+        "--phaseCollectionList",
+        "--conccalc",
+        "--gascalc",
+        "--calc",
+        "--phaseFile",
+        phase_filename,
+        "-o",
+        output_filename,
+    ]
+
+
+def generate_solvent_calc_args(
+    output_filename,
+    solvent_filename,
+    temperature=298.0,
+    temperature_unit="KELVIN",
+    solute_filename=pureinf.SINGLE_SSIP_SOLUTE_FILE,
+):
     """Generate list of arguments for solvation calculation.
     
     for solvent/solute.
@@ -285,9 +322,22 @@ def generate_solvent_calc_args(output_filename, solvent_filename,temperature=298
         list of arguments for calculation related to solvent calculation.
 
     """
-    return ["--calc", "--conccalc", "-o", output_filename, "--solvent", solvent_filename,
-            "--solute", solute_filename, "--temperatureUnit", temperature_unit, "-t", "{:.1f}".format(temperature)]
-    
+    return [
+        "--calc",
+        "--conccalc",
+        "-o",
+        output_filename,
+        "--solvent",
+        solvent_filename,
+        "--solute",
+        solute_filename,
+        "--temperatureUnit",
+        temperature_unit,
+        "-t",
+        "{:.1f}".format(temperature),
+    ]
+
+
 def make_java_arguments(jar_path, memory_req=None):
     """Create java runtime arguments.
 
@@ -306,9 +356,10 @@ def make_java_arguments(jar_path, memory_req=None):
     """
     mem_options = []
     if memory_req is not None:
-       mem_options = ["-Xms{}".format(memory_req), "-Xmx{}".format(memory_req)] 
+        mem_options = ["-Xms{}".format(memory_req), "-Xmx{}".format(memory_req)]
     return ["java"] + mem_options + ["-jar", jar_path]
 
+
 def check_jar_exists(jar_path):
     """Check to see if the jar_path given corresponds to a file.
 
@@ -324,4 +375,4 @@ def check_jar_exists(jar_path):
 
     """
     jar_file_path = pathlib.Path(jar_path)
-    return jar_file_path.exists()
\ No newline at end of file
+    return jar_file_path.exists()
diff --git a/phasecalculator/runners/phasexmlcreatorrunner.py b/phasecalculator/runners/phasexmlcreatorrunner.py
index ebc1aaf..0ab2360 100755
--- a/phasecalculator/runners/phasexmlcreatorrunner.py
+++ b/phasecalculator/runners/phasexmlcreatorrunner.py
@@ -29,7 +29,6 @@ LOGGER = logging.getLogger(__name__)
 LOGGER.setLevel(logging.WARN)
 
 
-
 def create_phase_and_solvent_files(system_info, filestem="system", **kwargs):
     """Create solvent and phase files for given system.
 
@@ -61,9 +60,10 @@ def create_phase_and_solvent_files(system_info, filestem="system", **kwargs):
     if system_info.calc_vle():
         phase_file = create_phase_file(system_info, filestem + "phase", **kwargs)
     if system_info.calc_fgip() or system_info.calc_similarity():
-        solvent_list = create_solvent_files(system_info, filestem +"solvent", **kwargs)
+        solvent_list = create_solvent_files(system_info, filestem + "solvent", **kwargs)
     return phase_file, solvent_list
 
+
 def create_phase_file(system_info, filestem, **kwargs):
     """Create phase file for input information.
 
@@ -86,11 +86,20 @@ def create_phase_file(system_info, filestem, **kwargs):
         phase filename.
 
     """
-    phase_filename = create_phase_filename(system_info.runtime_information.scratch_dir, filestem)
+    phase_filename = create_phase_filename(
+        system_info.runtime_information.scratch_dir, filestem
+    )
     mole_fractions_by_temp_dict = system_info.get_phases_by_temp_list()
     ssip_filename_list = system_info.get_ssip_file_locations()
-    phasexmlcreate.create_phase_file(mole_fractions_by_temp_dict, phase_filename, ssip_filename_list=ssip_filename_list, **kwargs)
+    phasexmlcreate.create_phase_file(
+        mole_fractions_by_temp_dict,
+        phase_filename,
+        ssip_filename_list=ssip_filename_list,
+        **kwargs
+    )
     return phase_filename
+
+
 def create_solvent_files(system_info, filestem, **kwargs):
     """Create solvent files for input information.
 
@@ -117,15 +126,28 @@ def create_solvent_files(system_info, filestem, **kwargs):
     ssip_filename_list = system_info.get_ssip_file_locations()
     solvent_list = []
     for temp_info, mole_fraction_dict_list in mole_fractions_by_temp_dict.items():
-        solvent_filename = create_solvent_file(mole_fraction_dict_list,
-                                               ssip_filename_list, temp_info,
-                                               filestem,
-                                               system_info.runtime_information.scratch_dir, **kwargs)
-        solvent_list.append({"solvent_filename":solvent_filename, **temp_info.to_dict()})
+        solvent_filename = create_solvent_file(
+            mole_fraction_dict_list,
+            ssip_filename_list,
+            temp_info,
+            filestem,
+            system_info.runtime_information.scratch_dir,
+            **kwargs
+        )
+        solvent_list.append(
+            {"solvent_filename": solvent_filename, **temp_info.to_dict()}
+        )
     return solvent_list
-    
 
-def create_solvent_file(mole_fraction_dict_list, ssip_filename_list, temp_info, filestem, scratch_dir, **kwargs):
+
+def create_solvent_file(
+    mole_fraction_dict_list,
+    ssip_filename_list,
+    temp_info,
+    filestem,
+    scratch_dir,
+    **kwargs
+):
     """Create solvent file for input information.
 
     Parameters
@@ -154,9 +176,15 @@ def create_solvent_file(mole_fraction_dict_list, ssip_filename_list, temp_info,
 
     """
     solvent_filename = create_solvent_filename(scratch_dir, temp_info, filestem)
-    phasexmlcreate.create_solvent_file(mole_fraction_dict_list, solvent_filename, ssip_filename_list=ssip_filename_list, **kwargs)
+    phasexmlcreate.create_solvent_file(
+        mole_fraction_dict_list,
+        solvent_filename,
+        ssip_filename_list=ssip_filename_list,
+        **kwargs
+    )
     return solvent_filename
 
+
 def create_scratch_dir(system_info):
     """Makes scratch directory for system calculation. 
 
@@ -171,8 +199,9 @@ def create_scratch_dir(system_info):
 
     """
     scratch_path = pathlib.Path(system_info.runtime_information.scratch_dir)
-    scratch_path.mkdir(parents=True,exist_ok=True)
-    
+    scratch_path.mkdir(parents=True, exist_ok=True)
+
+
 def create_solvent_filename(scratch_dir, temp_info, filestem):
     """Create solvent filename.
 
@@ -191,11 +220,14 @@ def create_solvent_filename(scratch_dir, temp_info, filestem):
         filename path including scratch directory.
 
     """
-    temp_string = create_temperaturestring(temp_info.temperature, temp_info.temperature_unit)
+    temp_string = create_temperaturestring(
+        temp_info.temperature, temp_info.temperature_unit
+    )
     filename = filestem + "_" + temp_string + ".xml"
     path = (pathlib.Path(scratch_dir) / filename).as_posix()
     return path
 
+
 def create_phase_filename(scratch_dir, filestem):
     """Create filename for phase XML.
 
@@ -216,6 +248,7 @@ def create_phase_filename(scratch_dir, filestem):
     path = (pathlib.Path(scratch_dir) / filename).as_posix()
     return path
 
+
 def create_temperaturestring(temperature, temperature_unit):
     """Write temperature information in formatted string for use in filenames.
 
@@ -232,4 +265,4 @@ def create_temperaturestring(temperature, temperature_unit):
         temperature string.
 
     """
-    return "{:.1f}{}".format(temperature, "K" if temperature_unit == "KELVIN" else "C")
\ No newline at end of file
+    return "{:.1f}{}".format(temperature, "K" if temperature_unit == "KELVIN" else "C")
diff --git a/phasecalculator/runners/similarityanalysisrunner.py b/phasecalculator/runners/similarityanalysisrunner.py
index a257364..54adef2 100755
--- a/phasecalculator/runners/similarityanalysisrunner.py
+++ b/phasecalculator/runners/similarityanalysisrunner.py
@@ -31,7 +31,10 @@ logging.basicConfig()
 LOGGER = logging.getLogger(__name__)
 LOGGER.setLevel(logging.WARN)
 
-def run_similarity_analysis(poly_filename_list, output_type, output_dir, output_filename="similaritymatrix.csv"):
+
+def run_similarity_analysis(
+    poly_filename_list, output_type, output_dir, output_filename="similaritymatrix.csv"
+):
     """Run similarity analysis.
 
     Parameters
@@ -52,14 +55,20 @@ def run_similarity_analysis(poly_filename_list, output_type, output_dir, output_
 
     """
     if output_type == "all":
-        simanalysis.compare_all_solvents(poly_filename_list, output_dir, output_filename)
+        simanalysis.compare_all_solvents(
+            poly_filename_list, output_dir, output_filename
+        )
     elif output_type == "mixturecomparison":
-        simanalysis.compare_solvent_list(poly_filename_list, output_dir, output_filename)
+        simanalysis.compare_solvent_list(
+            poly_filename_list, output_dir, output_filename
+        )
     elif output_type == "purecomparison":
         simanalysis.compare_with_pure_solvents(poly_filename_list, output_dir)
 
 
-def extract_all_solvents_and_generate_polynomials(solv_energy_dict_list, directory_base):
+def extract_all_solvents_and_generate_polynomials(
+    solv_energy_dict_list, directory_base
+):
     """Extract results for all solvents, and partition results based on temperature.
 
     Parameters
@@ -80,13 +89,21 @@ def extract_all_solvents_and_generate_polynomials(solv_energy_dict_list, directo
     combined_out_res = []
     combined_filename_list = []
     for solv_energy_dict in solv_energy_dict_list:
-        directory = generate_directory(directory_base, solv_energy_dict["temperature_value"], solv_energy_dict["temperature_units"])
+        directory = generate_directory(
+            directory_base,
+            solv_energy_dict["temperature_value"],
+            solv_energy_dict["temperature_units"],
+        )
         solvent_filename = solv_energy_dict["solvent_filename"]
         energy_xml_filename = solv_energy_dict["energy_filename"]
-        out_res, filename_list = extract_solvents_and_generate_polynomials(solvent_filename, energy_xml_filename, directory)
+        out_res, filename_list = extract_solvents_and_generate_polynomials(
+            solvent_filename, energy_xml_filename, directory
+        )
         combined_out_res.extend(out_res)
         combined_filename_list.extend(filename_list)
     return combined_out_res, combined_filename_list
+
+
 def generate_directory(directory_base, temperature, temperature_unit):
     """Generate directory to put information based on temperature of simulation.
     
@@ -109,12 +126,17 @@ def generate_directory(directory_base, temperature, temperature_unit):
         
 
     """
-    temperature_name = "{:.1f}{}".format(temperature, "K" if temperature_unit == "KELVIN" else "C").replace(".","_")
+    temperature_name = "{:.1f}{}".format(
+        temperature, "K" if temperature_unit == "KELVIN" else "C"
+    ).replace(".", "_")
     dir_path = pathlib.Path(directory_base) / temperature_name
-    dir_path.mkdir(parents=True,exist_ok=True)
+    dir_path.mkdir(parents=True, exist_ok=True)
     return dir_path.as_posix()
 
-def extract_solvents_and_generate_polynomials(solvent_filename, energy_xml_filename, directory):
+
+def extract_solvents_and_generate_polynomials(
+    solvent_filename, energy_xml_filename, directory
+):
     """Extract solvation free energies and calculate free energy polynomials per solvent.
 
     Parameters
@@ -133,9 +155,12 @@ def extract_solvents_and_generate_polynomials(solvent_filename, energy_xml_filen
         list of polynomial filenames.
 
     """
-    energy_xml_filenames = solvextract.extract_and_write_energy_values_from_files(solvent_filename, energy_xml_filename, "free", directory)
+    energy_xml_filenames = solvextract.extract_and_write_energy_values_from_files(
+        solvent_filename, energy_xml_filename, "free", directory
+    )
     return polyio.generate_polynomial_data_free_energy_file_list(energy_xml_filenames)
 
+
 def run_free_energy_calculation(jar_path, output_filename, solvent_filename, **kwargs):
     """Run solute solvation free energy calculation.
 
@@ -168,4 +193,6 @@ def run_free_energy_calculation(jar_path, output_filename, solvent_filename, **k
         result of system call.
 
     """
-    return phaserun.run_phasetransfer_free_energy(jar_path, output_filename, solvent_filename, **kwargs)
\ No newline at end of file
+    return phaserun.run_phasetransfer_free_energy(
+        jar_path, output_filename, solvent_filename, **kwargs
+    )
diff --git a/phasecalculator/runners/vleanalysisrunner.py b/phasecalculator/runners/vleanalysisrunner.py
index 472576c..de7b32c 100755
--- a/phasecalculator/runners/vleanalysisrunner.py
+++ b/phasecalculator/runners/vleanalysisrunner.py
@@ -27,6 +27,7 @@ logging.basicConfig()
 LOGGER = logging.getLogger(__name__)
 LOGGER.setLevel(logging.WARN)
 
+
 def run_vle_calculation(jar_path, phase_filename, output_filename, **kwargs):
     """Run VLE phase calculation.
 
@@ -52,4 +53,6 @@ def run_vle_calculation(jar_path, phase_filename, output_filename, **kwargs):
         result of system call.
 
     """
-    return phaserun.run_vle_calculation(jar_path, phase_filename, output_filename, **kwargs)
\ No newline at end of file
+    return phaserun.run_vle_calculation(
+        jar_path, phase_filename, output_filename, **kwargs
+    )
diff --git a/phasecalculator/test/analysistest/fgipanalysistest.py b/phasecalculator/test/analysistest/fgipanalysistest.py
index 1f2ebea..cbef618 100755
--- a/phasecalculator/test/analysistest/fgipanalysistest.py
+++ b/phasecalculator/test/analysistest/fgipanalysistest.py
@@ -30,8 +30,10 @@ logging.basicConfig()
 LOGGER = logging.getLogger(__name__)
 LOGGER.setLevel(logging.WARN)
 
+
 class FGIPAnalysisTestCase(unittest.TestCase):
     """Test case for FGIP analysis methods."""
+
     def setUp(self):
         """Set up for tests.
 
@@ -42,9 +44,20 @@ class FGIPAnalysisTestCase(unittest.TestCase):
         """
         self.parent_directory = pathlib.Path(__file__).parents[1]
         self.solvent_filename = (
-            (self.parent_directory / "resources/expected_solvent.xml").absolute().as_posix()
+            (self.parent_directory / "resources/expected_solvent.xml")
+            .absolute()
+            .as_posix()
+        )
+        self.poly_file = (
+            (
+                self.parent_directory
+                / "resources"
+                / "testfiles"
+                / "1-butanol0.165water0.835binding_poly_fit_split.csv"
+            )
+            .absolute()
+            .as_posix()
         )
-        self.poly_file = (self.parent_directory / "resources"/ "testfiles" / "1-butanol0.165water0.835binding_poly_fit_split.csv").absolute().as_posix()
         self.matrix_file = "1-butanol0.165water0.835_solv_map.csv"
         self.solvent_map = "1-butanol0.165water0.835_solv_map.svg"
         self.fgip_file = "1-butanol0_165water0_835_FGIP.svg"
@@ -56,6 +69,7 @@ class FGIPAnalysisTestCase(unittest.TestCase):
     \label{fig:1-butanol0_165water0_835solvationmap}
 \end{figure}
 """
+
     def tearDown(self):
         """Clean up after tests.
 
@@ -70,6 +84,7 @@ class FGIPAnalysisTestCase(unittest.TestCase):
             os.remove(self.solvent_map)
         if pathlib.Path(self.fgip_file).is_file():
             os.remove(self.fgip_file)
+
     def test_create_solv_map_and_fgips_from_files(self):
         """Test solvent map, FGIP and matrix are produced.
 
@@ -78,12 +93,15 @@ class FGIPAnalysisTestCase(unittest.TestCase):
         None.
 
         """
-        results, latex_blocks = fgipanalysis.create_solv_map_and_fgips_from_files(self.solvent_filename, [self.poly_file], "")
-        self.assertListEqual([(0,0)], results)
+        results, latex_blocks = fgipanalysis.create_solv_map_and_fgips_from_files(
+            self.solvent_filename, [self.poly_file], ""
+        )
+        self.assertListEqual([(0, 0)], results)
         self.assertMultiLineEqual(self.expected_latex, latex_blocks)
         self.assertTrue(pathlib.Path(self.matrix_file).is_file())
         self.assertTrue(pathlib.Path(self.solvent_map).is_file())
         self.assertTrue(pathlib.Path(self.fgip_file).is_file())
+
     def test_create_fgips_from_file_list(self):
         """Test FGIPs are created.
 
@@ -92,10 +110,17 @@ class FGIPAnalysisTestCase(unittest.TestCase):
         None.
 
         """
-        plot_outputs, filenames = fgipanalysis.create_solvation_plots_from_poly_files(fgipanalysis.EPSILON_I_LIST, fgipanalysis.EPSILON_J_LIST, self.solvent_filename, [self.poly_file], 8)
+        plot_outputs, filenames = fgipanalysis.create_solvation_plots_from_poly_files(
+            fgipanalysis.EPSILON_I_LIST,
+            fgipanalysis.EPSILON_J_LIST,
+            self.solvent_filename,
+            [self.poly_file],
+            8,
+        )
         latex_blocks = fgipanalysis.create_fgips_from_file_list(filenames)
         self.assertMultiLineEqual(self.expected_latex, latex_blocks)
         self.assertTrue(pathlib.Path(self.fgip_file).is_file())
+
     def test_create_solvation_plots_from_poly_files(self):
         """Test expected solvation map and matrix file are created.
 
@@ -104,11 +129,18 @@ class FGIPAnalysisTestCase(unittest.TestCase):
         None.
 
         """
-        plot_outputs, filenames = fgipanalysis.create_solvation_plots_from_poly_files(fgipanalysis.EPSILON_I_LIST, fgipanalysis.EPSILON_J_LIST, self.solvent_filename, [self.poly_file], 8)
-        self.assertListEqual([(0,0)], plot_outputs)
+        plot_outputs, filenames = fgipanalysis.create_solvation_plots_from_poly_files(
+            fgipanalysis.EPSILON_I_LIST,
+            fgipanalysis.EPSILON_J_LIST,
+            self.solvent_filename,
+            [self.poly_file],
+            8,
+        )
+        self.assertListEqual([(0, 0)], plot_outputs)
         self.assertEqual(["1-butanol0.165water0.835_solv_map.svg"], filenames)
         self.assertTrue(pathlib.Path(self.matrix_file).is_file())
         self.assertTrue(pathlib.Path(self.solvent_map).is_file())
+
     def test_get_solvent_id_from_poly_filename(self):
         """Test expected solvent ID is extracted.
 
@@ -117,7 +149,11 @@ class FGIPAnalysisTestCase(unittest.TestCase):
         None.
 
         """
-        self.assertEqual("1-butanol0.165water0.835", fgipanalysis.get_solvent_id_from_poly_filename(self.poly_file))
+        self.assertEqual(
+            "1-butanol0.165water0.835",
+            fgipanalysis.get_solvent_id_from_poly_filename(self.poly_file),
+        )
+
     def test_create_solvation_plot(self):
         """Test solvent map and matrix created.
 
@@ -126,9 +162,15 @@ class FGIPAnalysisTestCase(unittest.TestCase):
         None.
 
         """
-        solv_plot, matrix_res = fgipanalysis.create_solvation_plot(fgipanalysis.EPSILON_I_LIST, fgipanalysis.EPSILON_J_LIST, self.solvent_filename, "1-butanol0.165water0.835", self.poly_file, 8)
+        solv_plot, matrix_res = fgipanalysis.create_solvation_plot(
+            fgipanalysis.EPSILON_I_LIST,
+            fgipanalysis.EPSILON_J_LIST,
+            self.solvent_filename,
+            "1-butanol0.165water0.835",
+            self.poly_file,
+            8,
+        )
         self.assertEqual(0, matrix_res)
         self.assertEqual(0, solv_plot)
         self.assertTrue(pathlib.Path(self.matrix_file).exists())
         self.assertTrue(pathlib.Path(self.solvent_map).exists())
-        
\ No newline at end of file
diff --git a/phasecalculator/test/analysistest/similarityanalysistest.py b/phasecalculator/test/analysistest/similarityanalysistest.py
index 3fad217..20998aa 100755
--- a/phasecalculator/test/analysistest/similarityanalysistest.py
+++ b/phasecalculator/test/analysistest/similarityanalysistest.py
@@ -33,6 +33,7 @@ logging.basicConfig()
 LOGGER = logging.getLogger(__name__)
 LOGGER.setLevel(logging.WARN)
 
+
 class SimilarityAnalysisTestCase(unittest.TestCase):
     """Test case for similarity analysis."""
 
@@ -45,15 +46,29 @@ class SimilarityAnalysisTestCase(unittest.TestCase):
 
         """
         parent_directory = pathlib.Path(__file__).parents[1]
-        self.expected_free_poly = (parent_directory /"resources" / "expected_parsedfreepoly.csv").absolute().as_posix()
-        self.expected_matrix_file = (parent_directory/ "resources"/ "expectd_matrix.csv").absolute().as_posix()
-        self.example_poly_data = simanalysis.read_polynomial_files([self.expected_free_poly], suffix="freepoly.csv",
-                                                    temperature_dir=True)
-        self.example_with_pure_data = {**simanalysis.PURE_SOLVENT_INFO,
-                                       **self.example_poly_data}
-        self.example_matrix = simanalysis.calculate_similarity_matrix(self.example_with_pure_data)
+        self.expected_free_poly = (
+            (parent_directory / "resources" / "expected_parsedfreepoly.csv")
+            .absolute()
+            .as_posix()
+        )
+        self.expected_matrix_file = (
+            (parent_directory / "resources" / "expectd_matrix.csv")
+            .absolute()
+            .as_posix()
+        )
+        self.example_poly_data = simanalysis.read_polynomial_files(
+            [self.expected_free_poly], suffix="freepoly.csv", temperature_dir=True
+        )
+        self.example_with_pure_data = {
+            **simanalysis.PURE_SOLVENT_INFO,
+            **self.example_poly_data,
+        }
+        self.example_matrix = simanalysis.calculate_similarity_matrix(
+            self.example_with_pure_data
+        )
         self.actual_matrix_file = "actual_matrix.csv"
         self.actual_series_file = "resourcesexpected_parsedfreepoly.csv.csv"
+
     def tearDown(self):
         """Clean up after tests.
 
@@ -72,6 +87,7 @@ class SimilarityAnalysisTestCase(unittest.TestCase):
             os.remove(self.actual_series_file)
         del self.actual_matrix_file
         del self.actual_series_file
+
     def test_read_polynomial_files(self):
         """Test expected information is read.
 
@@ -80,26 +96,61 @@ class SimilarityAnalysisTestCase(unittest.TestCase):
         None.
 
         """
-        expected_dict = {'resourcesexpected,parsed':{8: {'negative': {'RMSE': 0.0137444779,
-                                               'coefficients': np.array([-2.60836624e-01,  4.65295250e-01,  2.57637417e-01,  2.19491128e-01,
-        4.20087475e-02,  4.02289353e-03,  2.12247938e-04,  5.89243946e-06,
-        6.73443996e-08]),
-                                               'covar': 0.0379710451935,
-                                               'order': 8},
-                                  'positive': {'RMSE': 0.008907316,
-                                               'coefficients': np.array([-2.52075337e-01, -7.07009850e-01,  9.86359325e-01, -1.40859321e+00,
-        5.04060101e-01, -9.17970326e-02,  9.28812463e-03, -4.97458825e-04,
-        1.10198937e-05]),
-                                               'covar': 0.008013368123414,
-                                               'order': 8}}}}
+        expected_dict = {
+            "resourcesexpected,parsed": {
+                8: {
+                    "negative": {
+                        "RMSE": 0.0137444779,
+                        "coefficients": np.array(
+                            [
+                                -2.60836624e-01,
+                                4.65295250e-01,
+                                2.57637417e-01,
+                                2.19491128e-01,
+                                4.20087475e-02,
+                                4.02289353e-03,
+                                2.12247938e-04,
+                                5.89243946e-06,
+                                6.73443996e-08,
+                            ]
+                        ),
+                        "covar": 0.0379710451935,
+                        "order": 8,
+                    },
+                    "positive": {
+                        "RMSE": 0.008907316,
+                        "coefficients": np.array(
+                            [
+                                -2.52075337e-01,
+                                -7.07009850e-01,
+                                9.86359325e-01,
+                                -1.40859321e00,
+                                5.04060101e-01,
+                                -9.17970326e-02,
+                                9.28812463e-03,
+                                -4.97458825e-04,
+                                1.10198937e-05,
+                            ]
+                        ),
+                        "covar": 0.008013368123414,
+                        "order": 8,
+                    },
+                }
+            }
+        }
         actual_dict = self.example_poly_data
         self.assertListEqual(list(expected_dict.keys()), list(actual_dict.keys()))
-        for region, info_dict in actual_dict['resourcesexpected,parsed'][8].items():
+        for region, info_dict in actual_dict["resourcesexpected,parsed"][8].items():
             for key, value in info_dict.items():
                 if key == "coefficients":
-                    np.testing.assert_allclose(value, expected_dict['resourcesexpected,parsed'][8][region][key])
+                    np.testing.assert_allclose(
+                        value, expected_dict["resourcesexpected,parsed"][8][region][key]
+                    )
                 else:
-                    self.assertEqual(value, expected_dict['resourcesexpected,parsed'][8][region][key])
+                    self.assertEqual(
+                        value, expected_dict["resourcesexpected,parsed"][8][region][key]
+                    )
+
     def test_compare_all_solvents(self):
         """Test complete matrix is produced.
 
@@ -108,10 +159,15 @@ class SimilarityAnalysisTestCase(unittest.TestCase):
         None.
 
         """
-        simanalysis.compare_all_solvents([self.expected_free_poly], "", self.actual_matrix_file)
+        simanalysis.compare_all_solvents(
+            [self.expected_free_poly], "", self.actual_matrix_file
+        )
         self.assertTrue(pathlib.Path(self.actual_matrix_file).is_file())
-        actual_dataframe = pandas.read_csv(self.actual_matrix_file, sep="\t",header=0,index_col=0)
-        self.assertEqual((262,262), actual_dataframe.shape)
+        actual_dataframe = pandas.read_csv(
+            self.actual_matrix_file, sep="\t", header=0, index_col=0
+        )
+        self.assertEqual((262, 262), actual_dataframe.shape)
+
     def test_compare_with_pure_solvents(self):
         """Test column matrix is produced.
 
@@ -122,8 +178,11 @@ class SimilarityAnalysisTestCase(unittest.TestCase):
         """
         simanalysis.compare_with_pure_solvents([self.expected_free_poly], "")
         self.assertTrue(pathlib.Path(self.actual_series_file).is_file())
-        actual_dataframe = pandas.read_csv(self.actual_series_file, sep="\t",header=0,index_col=0)
-        self.assertEqual((261,1), actual_dataframe.shape)
+        actual_dataframe = pandas.read_csv(
+            self.actual_series_file, sep="\t", header=0, index_col=0
+        )
+        self.assertEqual((261, 1), actual_dataframe.shape)
+
     def test_compare_solvent_list(self):
         """Test expected matrix is produced.
 
@@ -132,10 +191,15 @@ class SimilarityAnalysisTestCase(unittest.TestCase):
         None.
 
         """
-        simanalysis.compare_solvent_list([self.expected_free_poly], "", self.actual_matrix_file)
+        simanalysis.compare_solvent_list(
+            [self.expected_free_poly], "", self.actual_matrix_file
+        )
         self.assertTrue(pathlib.Path(self.actual_matrix_file).is_file())
-        actual_dataframe = pandas.read_csv(self.actual_matrix_file, sep="\t",header=0,index_col=0)
-        self.assertEqual((1,1), actual_dataframe.shape)
+        actual_dataframe = pandas.read_csv(
+            self.actual_matrix_file, sep="\t", header=0, index_col=0
+        )
+        self.assertEqual((1, 1), actual_dataframe.shape)
+
     def test_write_frame_to_file(self):
         """Test expected file is exists.
 
@@ -146,6 +210,7 @@ class SimilarityAnalysisTestCase(unittest.TestCase):
         """
         simanalysis.write_frame_to_file(self.example_matrix, self.actual_matrix_file)
         self.assertTrue(pathlib.Path(self.actual_matrix_file).is_file())
+
     def test_extract_comparison_to_pure_solvents(self):
         """Test expected comparisons are produced.
 
@@ -154,14 +219,24 @@ class SimilarityAnalysisTestCase(unittest.TestCase):
         None.
 
         """
-        extracted_data = simanalysis.extract_comparison_to_pure_solvents(self.example_matrix, "resourcesexpected,parsed")
-        expected_top5 = pandas.Series(data={"formamide":0.07340402,
-"hydrogen peroxide": 0.12358179,
-"methanesulfonic acid": 0.12495022,
-"ethylene glycol": 0.13908444,
-"1,2-butanediol": 0.14388483}, name="resourcesexpected,parsed")
+        extracted_data = simanalysis.extract_comparison_to_pure_solvents(
+            self.example_matrix, "resourcesexpected,parsed"
+        )
+        expected_top5 = pandas.Series(
+            data={
+                "formamide": 0.07340402,
+                "hydrogen peroxide": 0.12358179,
+                "methanesulfonic acid": 0.12495022,
+                "ethylene glycol": 0.13908444,
+                "1,2-butanediol": 0.14388483,
+            },
+            name="resourcesexpected,parsed",
+        )
         np.testing.assert_allclose(expected_top5.values, extracted_data[:5].values)
-        self.assertListEqual(expected_top5.index.to_list(), extracted_data[:5].index.to_list())
+        self.assertListEqual(
+            expected_top5.index.to_list(), extracted_data[:5].index.to_list()
+        )
+
     def test_calculate_similarity_matrix(self):
         """Test expected dataframe produced.
 
@@ -171,5 +246,4 @@ class SimilarityAnalysisTestCase(unittest.TestCase):
 
         """
         actual_dataframe = self.example_matrix
-        self.assertEqual((262,262), actual_dataframe.shape)
-        
\ No newline at end of file
+        self.assertEqual((262, 262), actual_dataframe.shape)
diff --git a/phasecalculator/test/classestest/moleculetest.py b/phasecalculator/test/classestest/moleculetest.py
index 10a71aa..e697313 100755
--- a/phasecalculator/test/classestest/moleculetest.py
+++ b/phasecalculator/test/classestest/moleculetest.py
@@ -29,8 +29,10 @@ logging.basicConfig()
 LOGGER = logging.getLogger(__name__)
 LOGGER.setLevel(logging.WARN)
 
+
 class MoleculeTestCase(unittest.TestCase):
     """Test case for Molecule class."""
+
     def setUp(self):
         """Set up before tests.
 
@@ -39,7 +41,13 @@ class MoleculeTestCase(unittest.TestCase):
         None.
 
         """
-        self.molecule = Molecule("water", "XLYOFNOQVPJJNP-UHFFFAOYSA-N", "XLYOFNOQVPJJNP-UHFFFAOYSA-N_ssip.xml", 1.0)
+        self.molecule = Molecule(
+            "water",
+            "XLYOFNOQVPJJNP-UHFFFAOYSA-N",
+            "XLYOFNOQVPJJNP-UHFFFAOYSA-N_ssip.xml",
+            1.0,
+        )
+
     def tearDown(self):
         """Clean up after tests.
 
@@ -49,6 +57,7 @@ class MoleculeTestCase(unittest.TestCase):
 
         """
         del self.molecule
+
     def test_parse_xml(self):
         """Test expected molecule object is created.
 
@@ -59,6 +68,7 @@ class MoleculeTestCase(unittest.TestCase):
         """
         actual_molecule = Molecule.parse_xml(self.molecule.write_to_xml())
         self.assertEqual(self.molecule, actual_molecule)
+
     def test_write_to_xml(self):
         """Test expected XML is produced.
 
@@ -70,5 +80,6 @@ class MoleculeTestCase(unittest.TestCase):
         expected_xml = """<phasecalc:Molecule xmlns:phasecalc="http://www-hunter.ch.cam.ac.uk/PhaseCalculatorSchema" phasecalc:name="water" phasecalc:inChIKey="XLYOFNOQVPJJNP-UHFFFAOYSA-N" phasecalc:ssipFileLocation="XLYOFNOQVPJJNP-UHFFFAOYSA-N_ssip.xml" phasecalc:molefraction="1.0000"/>
 """
         actual_xml = self.molecule.write_to_xml()
-        self.assertMultiLineEqual(expected_xml, etree.tounicode(actual_xml, pretty_print=True))
-        
\ No newline at end of file
+        self.assertMultiLineEqual(
+            expected_xml, etree.tounicode(actual_xml, pretty_print=True)
+        )
diff --git a/phasecalculator/test/classestest/outputinformationtest.py b/phasecalculator/test/classestest/outputinformationtest.py
index 7e93fcf..479181f 100755
--- a/phasecalculator/test/classestest/outputinformationtest.py
+++ b/phasecalculator/test/classestest/outputinformationtest.py
@@ -29,8 +29,10 @@ logging.basicConfig()
 LOGGER = logging.getLogger(__name__)
 LOGGER.setLevel(logging.WARN)
 
+
 class OutputInformationTestCase(unittest.TestCase):
     """Test case for OutputInformation class."""
+
     def setUp(self):
         """Set up for tests.
 
@@ -40,6 +42,7 @@ class OutputInformationTestCase(unittest.TestCase):
 
         """
         self.out_inf = OutputInformation(True, True, "all", True)
+
     def tearDown(self):
         """Clean up after tests.
 
@@ -49,6 +52,7 @@ class OutputInformationTestCase(unittest.TestCase):
 
         """
         del self.out_inf
+
     def test_parse_xml(self):
         """Test expected information is parsed.
 
@@ -59,6 +63,7 @@ class OutputInformationTestCase(unittest.TestCase):
         """
         actual_output = OutputInformation.parse_xml(self.out_inf.write_to_xml())
         self.assertEqual(self.out_inf, actual_output)
+
     def test_parse_fgip_output(self):
         """Test expected information is parsed.
 
@@ -69,6 +74,7 @@ class OutputInformationTestCase(unittest.TestCase):
         """
         actual_output = OutputInformation.parse_fgip_output(self.out_inf.write_to_xml())
         self.assertTrue(actual_output)
+
     def test_parse_similarity_output(self):
         """Test expected information is parsed.
 
@@ -77,9 +83,12 @@ class OutputInformationTestCase(unittest.TestCase):
         None.
 
         """
-        actual_output, actual_type = OutputInformation.parse_similarity_output(self.out_inf.write_to_xml())
+        actual_output, actual_type = OutputInformation.parse_similarity_output(
+            self.out_inf.write_to_xml()
+        )
         self.assertTrue(actual_output)
         self.assertEqual("all", actual_type)
+
     def test_parse_vle_output(self):
         """Test expected information is parsed.
 
@@ -90,6 +99,7 @@ class OutputInformationTestCase(unittest.TestCase):
         """
         actual_output = OutputInformation.parse_vle_output(self.out_inf.write_to_xml())
         self.assertTrue(actual_output)
+
     def test_write_to_xml(self):
         """Test expected XML produced.
 
@@ -105,7 +115,10 @@ class OutputInformationTestCase(unittest.TestCase):
 </phasecalc:OutputInformation>
 """
         actual_xml = self.out_inf.write_to_xml()
-        self.assertMultiLineEqual(expected_xml, etree.tounicode(actual_xml, pretty_print=True))
+        self.assertMultiLineEqual(
+            expected_xml, etree.tounicode(actual_xml, pretty_print=True)
+        )
+
     def test_write_fgip_output(self):
         """Test expected XML produced.
 
@@ -117,7 +130,10 @@ class OutputInformationTestCase(unittest.TestCase):
         expected_xml = """<phasecalc:FGIPOutput xmlns:phasecalc="http://www-hunter.ch.cam.ac.uk/PhaseCalculatorSchema">true</phasecalc:FGIPOutput>
 """
         actual_xml = self.out_inf.write_fgip_output()
-        self.assertMultiLineEqual(expected_xml, etree.tounicode(actual_xml, pretty_print=True))
+        self.assertMultiLineEqual(
+            expected_xml, etree.tounicode(actual_xml, pretty_print=True)
+        )
+
     def test_write_similarity_output(self):
         """Test expected XML produced.
 
@@ -129,7 +145,10 @@ class OutputInformationTestCase(unittest.TestCase):
         expected_xml = """<phasecalc:SimilarityOutput xmlns:phasecalc="http://www-hunter.ch.cam.ac.uk/PhaseCalculatorSchema" phasecalc:outputType="all">true</phasecalc:SimilarityOutput>
 """
         actual_xml = self.out_inf.write_similarity_output()
-        self.assertMultiLineEqual(expected_xml, etree.tounicode(actual_xml, pretty_print=True))
+        self.assertMultiLineEqual(
+            expected_xml, etree.tounicode(actual_xml, pretty_print=True)
+        )
+
     def test_write_vle_output(self):
         """Test expected XML produced.
 
@@ -141,5 +160,6 @@ class OutputInformationTestCase(unittest.TestCase):
         expected_xml = """<phasecalc:VLEOutput xmlns:phasecalc="http://www-hunter.ch.cam.ac.uk/PhaseCalculatorSchema">true</phasecalc:VLEOutput>
 """
         actual_xml = self.out_inf.write_vle_output()
-        self.assertMultiLineEqual(expected_xml, etree.tounicode(actual_xml, pretty_print=True))
-    
\ No newline at end of file
+        self.assertMultiLineEqual(
+            expected_xml, etree.tounicode(actual_xml, pretty_print=True)
+        )
diff --git a/phasecalculator/test/classestest/phasestest.py b/phasecalculator/test/classestest/phasestest.py
index 2a30e70..87f5162 100755
--- a/phasecalculator/test/classestest/phasestest.py
+++ b/phasecalculator/test/classestest/phasestest.py
@@ -32,8 +32,10 @@ logging.basicConfig()
 LOGGER = logging.getLogger(__name__)
 LOGGER.setLevel(logging.WARN)
 
+
 class PhasesTestCase(unittest.TestCase):
     """Test case for Phases class."""
+
     def setUp(self):
         """Set up before tests.
 
@@ -43,9 +45,15 @@ class PhasesTestCase(unittest.TestCase):
 
         """
         self.temperature = Temperature(298.0, "KELVIN")
-        self.molecule = Molecule("water", "XLYOFNOQVPJJNP-UHFFFAOYSA-N", "XLYOFNOQVPJJNP-UHFFFAOYSA-N_ssip.xml", 1.0)
+        self.molecule = Molecule(
+            "water",
+            "XLYOFNOQVPJJNP-UHFFFAOYSA-N",
+            "XLYOFNOQVPJJNP-UHFFFAOYSA-N_ssip.xml",
+            1.0,
+        )
         self.phase = Phase([self.molecule], self.temperature)
         self.phases = Phases([self.phase])
+
     def tearDown(self):
         """Clean up after tests.
 
@@ -58,6 +66,7 @@ class PhasesTestCase(unittest.TestCase):
         del self.molecule
         del self.temperature
         del self.phases
+
     def test_parse_xml(self):
         """Test expected phases object is created.
 
@@ -68,6 +77,7 @@ class PhasesTestCase(unittest.TestCase):
         """
         actual_phases = Phases.parse_xml(self.phases.write_to_xml())
         self.assertEqual(self.phases, actual_phases)
+
     def test_write_to_xml(self):
         """Test expected XML is produced.
 
@@ -84,7 +94,10 @@ class PhasesTestCase(unittest.TestCase):
 </phasecalc:Phases>
 """
         actual_xml = self.phases.write_to_xml()
-        self.assertMultiLineEqual(expected_xml, etree.tounicode(actual_xml, pretty_print=True))
+        self.assertMultiLineEqual(
+            expected_xml, etree.tounicode(actual_xml, pretty_print=True)
+        )
+
     def test_get_phase_compositions_by_temperature(self):
         """Test expected dictionary produced.
 
@@ -96,6 +109,7 @@ class PhasesTestCase(unittest.TestCase):
         expected_dict = {self.temperature: [self.phase]}
         actual_dict = self.phases.get_phase_compositions_by_temperature()
         self.assertDictEqual(expected_dict, actual_dict)
+
     def test_get_phase_molefractions_by_temperature(self):
         """Test expected dictionary produced.
 
@@ -104,9 +118,10 @@ class PhasesTestCase(unittest.TestCase):
         None.
 
         """
-        expected_dict = {self.temperature: [{"water":1.0}]}
+        expected_dict = {self.temperature: [{"water": 1.0}]}
         actual_dict = self.phases.get_phase_molefractions_by_temperature()
         self.assertDictEqual(expected_dict, actual_dict)
+
     def test_get_molefractions_by_molecule_list(self):
         """Test expected list is produced.
 
@@ -115,9 +130,10 @@ class PhasesTestCase(unittest.TestCase):
         None.
 
         """
-        expected_list = [{"water":1.0}]
+        expected_list = [{"water": 1.0}]
         actual_list = self.phases.get_molefractions_by_molecule_list()
         self.assertListEqual(expected_list, actual_list)
+
     def test_get_ssip_file_locations(self):
         """Test expected set of file locations is returned.
 
@@ -128,4 +144,4 @@ class PhasesTestCase(unittest.TestCase):
         """
         expected_set = {self.molecule.ssip_file_loc}
         actual_set = self.phases.get_ssip_file_locations()
-        self.assertSetEqual(expected_set, actual_set)
\ No newline at end of file
+        self.assertSetEqual(expected_set, actual_set)
diff --git a/phasecalculator/test/classestest/phasetest.py b/phasecalculator/test/classestest/phasetest.py
index 3bd1764..50ca4c3 100755
--- a/phasecalculator/test/classestest/phasetest.py
+++ b/phasecalculator/test/classestest/phasetest.py
@@ -31,8 +31,10 @@ logging.basicConfig()
 LOGGER = logging.getLogger(__name__)
 LOGGER.setLevel(logging.WARN)
 
+
 class PhaseTestCase(unittest.TestCase):
     """Test case for Phase class."""
+
     def setUp(self):
         """Set up before tests.
 
@@ -42,8 +44,14 @@ class PhaseTestCase(unittest.TestCase):
 
         """
         self.temperature = Temperature(298.0, "KELVIN")
-        self.molecule = Molecule("water", "XLYOFNOQVPJJNP-UHFFFAOYSA-N", "XLYOFNOQVPJJNP-UHFFFAOYSA-N_ssip.xml", 1.0)
+        self.molecule = Molecule(
+            "water",
+            "XLYOFNOQVPJJNP-UHFFFAOYSA-N",
+            "XLYOFNOQVPJJNP-UHFFFAOYSA-N_ssip.xml",
+            1.0,
+        )
         self.phase = Phase([self.molecule], self.temperature)
+
     def tearDown(self):
         """Clean up after tests.
 
@@ -55,6 +63,7 @@ class PhaseTestCase(unittest.TestCase):
         del self.phase
         del self.molecule
         del self.temperature
+
     def test_parse_xml(self):
         """Test expected phase object is created.
 
@@ -65,6 +74,7 @@ class PhaseTestCase(unittest.TestCase):
         """
         actual_phase = Phase.parse_xml(self.phase.write_to_xml())
         self.assertEqual(self.phase, actual_phase)
+
     def test_parse_molecules(self):
         """Test expected molecule list is created.
 
@@ -75,6 +85,7 @@ class PhaseTestCase(unittest.TestCase):
         """
         actual_mol_list = Phase.parse_molecules(self.phase.write_to_xml())
         self.assertListEqual([self.molecule], actual_mol_list)
+
     def test_parse_temperature(self):
         """Test expected temperature object is created.
 
@@ -85,6 +96,7 @@ class PhaseTestCase(unittest.TestCase):
         """
         actual_temp = Phase.parse_temperature(self.temperature.write_to_xml())
         self.assertEqual(self.temperature, actual_temp)
+
     def test_write_to_xml(self):
         """Test expected XML is produced.
 
@@ -99,7 +111,10 @@ class PhaseTestCase(unittest.TestCase):
 </phasecalc:Phase>
 """
         actual_xml = self.phase.write_to_xml()
-        self.assertMultiLineEqual(expected_xml, etree.tounicode(actual_xml, pretty_print=True))
+        self.assertMultiLineEqual(
+            expected_xml, etree.tounicode(actual_xml, pretty_print=True)
+        )
+
     def test_get_molefractions_by_molecule(self):
         """Test expected molefractions are returned.
 
@@ -108,9 +123,10 @@ class PhaseTestCase(unittest.TestCase):
         None.
 
         """
-        expected_dict = {"water":1.0}
+        expected_dict = {"water": 1.0}
         actual_dict = self.phase.get_molefractions_by_molecule()
         self.assertDictEqual(expected_dict, actual_dict)
+
     def test_get_ssip_file_locations(self):
         """Test expected SSIP file locations are returned.
 
@@ -121,4 +137,4 @@ class PhaseTestCase(unittest.TestCase):
         """
         expected_list = [self.molecule.ssip_file_loc]
         actual_list = self.phase.get_ssip_file_locations()
-        self.assertListEqual(expected_list, actual_list)
\ No newline at end of file
+        self.assertListEqual(expected_list, actual_list)
diff --git a/phasecalculator/test/classestest/runtimeinformationtest.py b/phasecalculator/test/classestest/runtimeinformationtest.py
index 06f2e86..de1ae91 100755
--- a/phasecalculator/test/classestest/runtimeinformationtest.py
+++ b/phasecalculator/test/classestest/runtimeinformationtest.py
@@ -30,8 +30,10 @@ logging.basicConfig()
 LOGGER = logging.getLogger(__name__)
 LOGGER.setLevel(logging.WARN)
 
+
 class RuntimeInformationTestCase(unittest.TestCase):
     """Test case for methods."""
+
     def setUp(self):
         """Set up for tests.
 
@@ -42,7 +44,7 @@ class RuntimeInformationTestCase(unittest.TestCase):
         """
         self.example_jar = "resources/example.jar"
         self.runtime_inf = RuntimeInformation(self.example_jar, "scratch", "fgip")
-        
+
     def tearDown(self):
         """Clean up after tests.
 
@@ -53,6 +55,7 @@ class RuntimeInformationTestCase(unittest.TestCase):
         """
         del self.example_jar
         del self.runtime_inf
+
     def test_parse_xml(self):
         """Test expected runtime information found.
 
@@ -63,6 +66,7 @@ class RuntimeInformationTestCase(unittest.TestCase):
         """
         actual_inf = RuntimeInformation.parse_xml(self.runtime_inf.write_to_xml())
         self.assertEqual(self.runtime_inf, actual_inf)
+
     def test_parse_phasetransfer_jar(self):
         """Test expected Jar is found.
 
@@ -71,8 +75,11 @@ class RuntimeInformationTestCase(unittest.TestCase):
         None.
 
         """
-        actual_jar = RuntimeInformation.parse_phasetransfer_jar(self.runtime_inf.write_to_xml())
+        actual_jar = RuntimeInformation.parse_phasetransfer_jar(
+            self.runtime_inf.write_to_xml()
+        )
         self.assertEqual(self.example_jar, actual_jar)
+
     def test_parse_scratch_dir(self):
         """Test expected scratch directory is found.
 
@@ -82,8 +89,11 @@ class RuntimeInformationTestCase(unittest.TestCase):
 
         """
         expected_dir = "scratch"
-        actual_dir = RuntimeInformation.parse_scratch_dir(self.runtime_inf.write_to_xml())
+        actual_dir = RuntimeInformation.parse_scratch_dir(
+            self.runtime_inf.write_to_xml()
+        )
         self.assertEqual(expected_dir, actual_dir)
+
     def test_parse_output_dir(self):
         """Test expected output directory is found.
 
@@ -93,8 +103,11 @@ class RuntimeInformationTestCase(unittest.TestCase):
 
         """
         expected_dir = "fgip"
-        actual_dir = RuntimeInformation.parse_output_dir(self.runtime_inf.write_to_xml())
+        actual_dir = RuntimeInformation.parse_output_dir(
+            self.runtime_inf.write_to_xml()
+        )
         self.assertEqual(expected_dir, actual_dir)
+
     def test_write_to_xml(self):
         """Test expected XML produced.
 
@@ -110,7 +123,10 @@ class RuntimeInformationTestCase(unittest.TestCase):
 </phasecalc:RuntimeInformation>
 """
         actual_xml = self.runtime_inf.write_to_xml()
-        self.assertMultiLineEqual(expected_xml, etree.tounicode(actual_xml, pretty_print=True))
+        self.assertMultiLineEqual(
+            expected_xml, etree.tounicode(actual_xml, pretty_print=True)
+        )
+
     def test_write_phasetransfer_jar_xml(self):
         """Test expected XML produced.
 
@@ -122,7 +138,10 @@ class RuntimeInformationTestCase(unittest.TestCase):
         expected_xml = """<phasecalc:PhaseTransferJar xmlns:phasecalc="http://www-hunter.ch.cam.ac.uk/PhaseCalculatorSchema">resources/example.jar</phasecalc:PhaseTransferJar>
 """
         actual_xml = self.runtime_inf.write_phasetransfer_jar_xml()
-        self.assertMultiLineEqual(expected_xml, etree.tounicode(actual_xml, pretty_print=True))
+        self.assertMultiLineEqual(
+            expected_xml, etree.tounicode(actual_xml, pretty_print=True)
+        )
+
     def test_write_scratch_dir_xml(self):
         """Test scratch directory XML is produced.
 
@@ -134,7 +153,10 @@ class RuntimeInformationTestCase(unittest.TestCase):
         expected_xml = """<phasecalc:ScratchDirectory xmlns:phasecalc="http://www-hunter.ch.cam.ac.uk/PhaseCalculatorSchema">scratch</phasecalc:ScratchDirectory>
 """
         actual_xml = self.runtime_inf.write_scratch_dir_xml()
-        self.assertMultiLineEqual(expected_xml, etree.tounicode(actual_xml, pretty_print=True))
+        self.assertMultiLineEqual(
+            expected_xml, etree.tounicode(actual_xml, pretty_print=True)
+        )
+
     def test_write_output_dir_xml(self):
         """Test output directory XML is produced.
 
@@ -146,4 +168,6 @@ class RuntimeInformationTestCase(unittest.TestCase):
         expected_xml = """<phasecalc:OutputDirectory xmlns:phasecalc="http://www-hunter.ch.cam.ac.uk/PhaseCalculatorSchema">fgip</phasecalc:OutputDirectory>
 """
         actual_xml = self.runtime_inf.write_output_dir_xml()
-        self.assertMultiLineEqual(expected_xml, etree.tounicode(actual_xml, pretty_print=True))
\ No newline at end of file
+        self.assertMultiLineEqual(
+            expected_xml, etree.tounicode(actual_xml, pretty_print=True)
+        )
diff --git a/phasecalculator/test/classestest/systemtest.py b/phasecalculator/test/classestest/systemtest.py
index afd44fe..3cdae10 100755
--- a/phasecalculator/test/classestest/systemtest.py
+++ b/phasecalculator/test/classestest/systemtest.py
@@ -35,6 +35,7 @@ logging.basicConfig()
 LOGGER = logging.getLogger(__name__)
 LOGGER.setLevel(logging.WARN)
 
+
 class SystemTestCase(unittest.TestCase):
     """System and system collection tests."""
 
@@ -48,7 +49,12 @@ class SystemTestCase(unittest.TestCase):
         """
         self.maxDiff = None
         self.temperature = Temperature(298.0, "KELVIN")
-        self.molecule = Molecule("water", "XLYOFNOQVPJJNP-UHFFFAOYSA-N", "XLYOFNOQVPJJNP-UHFFFAOYSA-N_ssip.xml", 1.0)
+        self.molecule = Molecule(
+            "water",
+            "XLYOFNOQVPJJNP-UHFFFAOYSA-N",
+            "XLYOFNOQVPJJNP-UHFFFAOYSA-N_ssip.xml",
+            1.0,
+        )
         self.phase = Phase([self.molecule], self.temperature)
         self.phases = Phases([self.phase])
         self.example_jar = "resources/example.jar"
@@ -56,6 +62,7 @@ class SystemTestCase(unittest.TestCase):
         self.out_inf = OutputInformation(True, True, "all", True)
         self.system = System(self.phases, self.runtime_inf, self.out_inf)
         self.system_collection = SystemCollection([self.system])
+
     def tearDown(self):
         """Clean up after tests.
 
@@ -72,6 +79,7 @@ class SystemTestCase(unittest.TestCase):
         del self.out_inf
         del self.system
         del self.system_collection
+
     def test_coll_parse_xml(self):
         """Test expected system object is produced.
 
@@ -80,8 +88,11 @@ class SystemTestCase(unittest.TestCase):
         None.
 
         """
-        actual_collection = SystemCollection.parse_xml(self.system_collection.write_to_xml())
+        actual_collection = SystemCollection.parse_xml(
+            self.system_collection.write_to_xml()
+        )
         self.assertEqual(self.system_collection, actual_collection)
+
     def test_coll_write_to_xml(self):
         """Test expected XML is produced.
 
@@ -112,7 +123,10 @@ class SystemTestCase(unittest.TestCase):
 </phasecalc:SystemCollection>
 """
         actual_xml = self.system_collection.write_to_xml()
-        self.assertMultiLineEqual(expected_xml, etree.tounicode(actual_xml, pretty_print=True))
+        self.assertMultiLineEqual(
+            expected_xml, etree.tounicode(actual_xml, pretty_print=True)
+        )
+
     def test_sys_parse_xml(self):
         """Test expected system object is produced.
 
@@ -123,6 +137,7 @@ class SystemTestCase(unittest.TestCase):
         """
         actual_system = System.parse_xml(self.system.write_to_xml())
         self.assertEqual(self.system, actual_system)
+
     def test_sys_write_to_xml(self):
         """Test expected XML is produced.
 
@@ -151,7 +166,10 @@ class SystemTestCase(unittest.TestCase):
 </phasecalc:System>
 """
         actual_xml = self.system.write_to_xml()
-        self.assertMultiLineEqual(expected_xml, etree.tounicode(actual_xml, pretty_print=True))
+        self.assertMultiLineEqual(
+            expected_xml, etree.tounicode(actual_xml, pretty_print=True)
+        )
+
     def test_sys_get_phase_compositions_by_temperature(self):
         """Test expected dictionary produced.
 
@@ -160,9 +178,10 @@ class SystemTestCase(unittest.TestCase):
         None.
 
         """
-        expected_dict = {self.temperature: [{"water":1.0}]}
+        expected_dict = {self.temperature: [{"water": 1.0}]}
         actual_dict = self.system.get_phase_compositions_by_temperature()
         self.assertDictEqual(expected_dict, actual_dict)
+
     def test_get_phases_by_temp_list(self):
         """Test expected list produced.
 
@@ -171,10 +190,15 @@ class SystemTestCase(unittest.TestCase):
         None.
 
         """
-        expected_list = [[[{'temperature_units': 'KELVIN', 'temperature_value': 298.0}],
-                          [{"water":1.0}]]]
+        expected_list = [
+            [
+                [{"temperature_units": "KELVIN", "temperature_value": 298.0}],
+                [{"water": 1.0}],
+            ]
+        ]
         actual_list = self.system.get_phases_by_temp_list()
         self.assertListEqual(expected_list, actual_list)
+
     def test_get_molefractions_by_molecule_list(self):
         """Test
 
@@ -183,9 +207,10 @@ class SystemTestCase(unittest.TestCase):
         None.
 
         """
-        expected_list = [{"water":1.0}]
+        expected_list = [{"water": 1.0}]
         actual_list = self.system.get_molefractions_by_molecule_list()
         self.assertListEqual(expected_list, actual_list)
+
     def test_sys_get_ssip_file_locations(self):
         """Test expected set of file locations is returned.
 
@@ -197,6 +222,7 @@ class SystemTestCase(unittest.TestCase):
         expected_set = {self.molecule.ssip_file_loc}
         actual_set = self.system.get_ssip_file_locations()
         self.assertSetEqual(expected_set, actual_set)
+
     def test_calc_fgip(self):
         """Test expected bool returned.
 
@@ -206,6 +232,7 @@ class SystemTestCase(unittest.TestCase):
 
         """
         self.assertTrue(self.system.calc_fgip())
+
     def test_similarity(self):
         """Test expected bool returned.
 
@@ -215,6 +242,7 @@ class SystemTestCase(unittest.TestCase):
 
         """
         self.assertTrue(self.system.calc_similarity())
+
     def test_vle(self):
         """Test expected bool returned.
 
@@ -223,4 +251,4 @@ class SystemTestCase(unittest.TestCase):
         None.
 
         """
-        self.assertTrue(self.system.calc_vle())
\ No newline at end of file
+        self.assertTrue(self.system.calc_vle())
diff --git a/phasecalculator/test/classestest/temperaturetest.py b/phasecalculator/test/classestest/temperaturetest.py
index 47e882b..f8c802d 100755
--- a/phasecalculator/test/classestest/temperaturetest.py
+++ b/phasecalculator/test/classestest/temperaturetest.py
@@ -29,8 +29,10 @@ logging.basicConfig()
 LOGGER = logging.getLogger(__name__)
 LOGGER.setLevel(logging.WARN)
 
+
 class TemperatureTestCase(unittest.TestCase):
     """Temperature class test case."""
+
     def setUp(self):
         """Set up before tests.
 
@@ -40,6 +42,7 @@ class TemperatureTestCase(unittest.TestCase):
 
         """
         self.temperature = Temperature(298.0, "KELVIN")
+
     def tearDown(self):
         """Clean up after tests.
 
@@ -49,6 +52,7 @@ class TemperatureTestCase(unittest.TestCase):
 
         """
         del self.temperature
+
     def test_parse_xml(self):
         """Test expected temperature object is created.
 
@@ -59,6 +63,7 @@ class TemperatureTestCase(unittest.TestCase):
         """
         actual_temp = Temperature.parse_xml(self.temperature.write_to_xml())
         self.assertEqual(self.temperature, actual_temp)
+
     def test_write_to_xml(self):
         """Test expected XML is produced.
 
@@ -70,7 +75,10 @@ class TemperatureTestCase(unittest.TestCase):
         expected_xml = """<phasecalc:Temperature xmlns:phasecalc="http://www-hunter.ch.cam.ac.uk/PhaseCalculatorSchema" phasecalc:value="298.0" phasecalc:unit="KELVIN"/>
 """
         actual_xml = self.temperature.write_to_xml()
-        self.assertMultiLineEqual(expected_xml, etree.tounicode(actual_xml, pretty_print=True))
+        self.assertMultiLineEqual(
+            expected_xml, etree.tounicode(actual_xml, pretty_print=True)
+        )
+
     def test_to_dict(self):
         """Test expected dict is returned.
 
@@ -79,7 +87,6 @@ class TemperatureTestCase(unittest.TestCase):
         None.
 
         """
-        expected_dict = {"temperature_value":298.0,
-                "temperature_units":"KELVIN"}
+        expected_dict = {"temperature_value": 298.0, "temperature_units": "KELVIN"}
         actual_dict = self.temperature.to_dict()
-        self.assertDictEqual(expected_dict, actual_dict)
\ No newline at end of file
+        self.assertDictEqual(expected_dict, actual_dict)
diff --git a/phasecalculator/test/iotest/phasecsvconvertertest.py b/phasecalculator/test/iotest/phasecsvconvertertest.py
index b20ae45..faffc1b 100755
--- a/phasecalculator/test/iotest/phasecsvconvertertest.py
+++ b/phasecalculator/test/iotest/phasecsvconvertertest.py
@@ -33,8 +33,10 @@ logging.basicConfig()
 LOGGER = logging.getLogger(__name__)
 LOGGER.setLevel(logging.WARN)
 
+
 class PhaseCSVConverterTestCase(unittest.TestCase):
     """Test case for phasecsvconverter methods."""
+
     def setUp(self):
         """Set up for tests.
 
@@ -44,12 +46,20 @@ class PhaseCSVConverterTestCase(unittest.TestCase):
 
         """
         parent_directory = pathlib.Path(__file__).parents[1]
-        self.example_csv = (parent_directory / "resources/examplephasecomp.csv").absolute().as_posix()
+        self.example_csv = (
+            (parent_directory / "resources/examplephasecomp.csv").absolute().as_posix()
+        )
         self.csv_file_contents = phasecsv.read_csv_file(self.example_csv)
         self.temperature = Temperature(298.0, "KELVIN")
-        self.molecule = Molecule("water", "XLYOFNOQVPJJNP-UHFFFAOYSA-N", phasecsv.INCHIKEY_SSIP_FILE_DICT["XLYOFNOQVPJJNP-UHFFFAOYSA-N"], 1.0)
+        self.molecule = Molecule(
+            "water",
+            "XLYOFNOQVPJJNP-UHFFFAOYSA-N",
+            phasecsv.INCHIKEY_SSIP_FILE_DICT["XLYOFNOQVPJJNP-UHFFFAOYSA-N"],
+            1.0,
+        )
         self.phase = Phase([self.molecule], self.temperature)
         self.phases = Phases([self.phase])
+
     def tearDown(self):
         """Clean up after tests.
 
@@ -58,6 +68,7 @@ class PhaseCSVConverterTestCase(unittest.TestCase):
         None.
 
         """
+
     def test_convert_csv_file_to_phases(self):
         """Test
 
@@ -68,6 +79,7 @@ class PhaseCSVConverterTestCase(unittest.TestCase):
         """
         actual_phases = phasecsv.convert_csv_file_to_phases(self.example_csv)
         self.assertEqual(self.phases, actual_phases)
+
     def test_read_csv_file(self):
         """Test
 
@@ -76,8 +88,9 @@ class PhaseCSVConverterTestCase(unittest.TestCase):
         None.
 
         """
-        expected_list = [["298.0","water","1.0"]]
+        expected_list = [["298.0", "water", "1.0"]]
         self.assertListEqual(expected_list, self.csv_file_contents)
+
     def test_create_phases(self):
         """Test
 
@@ -88,6 +101,7 @@ class PhaseCSVConverterTestCase(unittest.TestCase):
         """
         actual_phases = phasecsv.create_phases(self.csv_file_contents)
         self.assertEqual(self.phases, actual_phases)
+
     def test_create_phase(self):
         """Test
 
@@ -96,8 +110,9 @@ class PhaseCSVConverterTestCase(unittest.TestCase):
         None.
 
         """
-        actual_phase = phasecsv.create_phase(["298.0","water","1.0"])
+        actual_phase = phasecsv.create_phase(["298.0", "water", "1.0"])
         self.assertEqual(self.phase, actual_phase)
+
     def test_create_molecule(self):
         """Test
 
@@ -108,6 +123,7 @@ class PhaseCSVConverterTestCase(unittest.TestCase):
         """
         actual_molecule = phasecsv.create_molecule("water", 1.0)
         self.assertEqual(self.molecule, actual_molecule)
+
     def test_create_temperature(self):
         """Test
 
@@ -117,4 +133,4 @@ class PhaseCSVConverterTestCase(unittest.TestCase):
 
         """
         actual_temperature = phasecsv.create_temperature(298.0)
-        self.assertEqual(self.temperature, actual_temperature)
\ No newline at end of file
+        self.assertEqual(self.temperature, actual_temperature)
diff --git a/phasecalculator/test/iotest/phasetransferxmlcreatortest.py b/phasecalculator/test/iotest/phasetransferxmlcreatortest.py
index 6044178..aaa9a14 100755
--- a/phasecalculator/test/iotest/phasetransferxmlcreatortest.py
+++ b/phasecalculator/test/iotest/phasetransferxmlcreatortest.py
@@ -31,8 +31,10 @@ logging.basicConfig()
 LOGGER = logging.getLogger(__name__)
 LOGGER.setLevel(logging.WARN)
 
+
 class PhasetransferXMLCreatorTestCase(unittest.TestCase):
     """Test case for phase transfer XML creator methods."""
+
     def setUp(self):
         """Set up for tests.
 
@@ -142,23 +144,42 @@ class PhasetransferXMLCreatorTestCase(unittest.TestCase):
         <ssip:SSIP ssip:value="-5.365217010700665" ssip:nearestAtomID="a5" cml:x3="-5.353424285394745" cml:y3="-1.7849561367024218" cml:z3="0.11271581239149799"/>
     </ssip:SSIPs>
 </ssip:SSIPMolecule>"""
-        self.mol_info_list = [{"concentration_value":10.8702104695089,
-            "inchikey":"LRHPLDYGYMQRHN-UHFFFAOYSA-N",
-            "mole_fraction":0.16452830188679246,
-            "ssip_molecule":self.expected_butanol_xml},
-            {"concentration_value":55.3496115427303,
-            "inchikey":"XLYOFNOQVPJJNP-UHFFFAOYSA-N",
-            "mole_fraction":0.8354716981132075,
-            "ssip_molecule":self.expected_water_xml,},
-            ]
-        self.mole_fraction_dict_list = [{"water":0.8354716981132075,
-                                         "1-butanol":0.16452830188679246}]
-        self.solvent_info_list = phasexmlmaker.generate_solv_info_list(self.mole_fraction_dict_list)
-        self.expected_phase_file = (parent_directory /"resources" / "expected_phase.xml").absolute().as_posix()
-        self.expected_solvent_file = (parent_directory /"resources" / "expected_solvent.xml").absolute().as_posix()
-        self.temperature_info = [{"temperature_value": 298.0, "temperature_units": "KELVIN"}]
+        self.mol_info_list = [
+            {
+                "concentration_value": 10.8702104695089,
+                "inchikey": "LRHPLDYGYMQRHN-UHFFFAOYSA-N",
+                "mole_fraction": 0.16452830188679246,
+                "ssip_molecule": self.expected_butanol_xml,
+            },
+            {
+                "concentration_value": 55.3496115427303,
+                "inchikey": "XLYOFNOQVPJJNP-UHFFFAOYSA-N",
+                "mole_fraction": 0.8354716981132075,
+                "ssip_molecule": self.expected_water_xml,
+            },
+        ]
+        self.mole_fraction_dict_list = [
+            {"water": 0.8354716981132075, "1-butanol": 0.16452830188679246}
+        ]
+        self.solvent_info_list = phasexmlmaker.generate_solv_info_list(
+            self.mole_fraction_dict_list
+        )
+        self.expected_phase_file = (
+            (parent_directory / "resources" / "expected_phase.xml")
+            .absolute()
+            .as_posix()
+        )
+        self.expected_solvent_file = (
+            (parent_directory / "resources" / "expected_solvent.xml")
+            .absolute()
+            .as_posix()
+        )
+        self.temperature_info = [
+            {"temperature_value": 298.0, "temperature_units": "KELVIN"}
+        ]
         self.phase_filename = "actual_phase.xml"
         self.solvent_filename = "actual_solvent.xml"
+
     def tearDown(self):
         """Clean up after tests.
 
@@ -171,6 +192,7 @@ class PhasetransferXMLCreatorTestCase(unittest.TestCase):
             os.remove(self.phase_filename)
         if os.path.isfile(self.solvent_filename):
             os.remove(self.solvent_filename)
+
     def test_create_solvent_file(self):
         """Test expected file produced.
 
@@ -179,12 +201,15 @@ class PhasetransferXMLCreatorTestCase(unittest.TestCase):
         None.
 
         """
-        phasexmlmaker.create_solvent_file(self.mole_fraction_dict_list, self.solvent_filename)
+        phasexmlmaker.create_solvent_file(
+            self.mole_fraction_dict_list, self.solvent_filename
+        )
         with open(self.solvent_filename, "r") as act_file:
             actual_contents = act_file.read()
             with open(self.expected_solvent_file, "r") as exp_file:
                 expected_contents = exp_file.read()
                 self.assertMultiLineEqual(expected_contents, actual_contents)
+
     def test_create_phase_file(self):
         """Test expected file produced.
 
@@ -193,12 +218,15 @@ class PhasetransferXMLCreatorTestCase(unittest.TestCase):
         None.
 
         """
-        phasexmlmaker.create_phase_file([[self.temperature_info, self.mole_fraction_dict_list]], self.phase_filename)
+        phasexmlmaker.create_phase_file(
+            [[self.temperature_info, self.mole_fraction_dict_list]], self.phase_filename
+        )
         with open(self.phase_filename, "r") as act_file:
             actual_contents = act_file.read()
             with open(self.expected_phase_file, "r") as exp_file:
                 expected_contents = exp_file.read()
                 self.assertMultiLineEqual(expected_contents, actual_contents)
+
     def test_write_solvent_file(self):
         """Test expected file produced.
 
@@ -213,6 +241,7 @@ class PhasetransferXMLCreatorTestCase(unittest.TestCase):
             with open(self.expected_solvent_file, "r") as exp_file:
                 expected_contents = exp_file.read()
                 self.assertMultiLineEqual(expected_contents, actual_contents)
+
     def test_write_phase_file(self):
         """Test expected file produced.
 
@@ -221,12 +250,15 @@ class PhasetransferXMLCreatorTestCase(unittest.TestCase):
         None.
 
         """
-        phasexmlmaker.write_phase_file([[self.temperature_info, self.solvent_info_list]], self.phase_filename)
+        phasexmlmaker.write_phase_file(
+            [[self.temperature_info, self.solvent_info_list]], self.phase_filename
+        )
         with open(self.phase_filename, "r") as act_file:
             actual_contents = act_file.read()
             with open(self.expected_phase_file, "r") as exp_file:
                 expected_contents = exp_file.read()
                 self.assertMultiLineEqual(expected_contents, actual_contents)
+
     def test_generate_solv_info_list(self):
         """Test expected list produced.
 
@@ -255,9 +287,14 @@ class PhasetransferXMLCreatorTestCase(unittest.TestCase):
                 self.assertEqual(
                     expected_dict["inchikey"], information_dict["inchikey"]
                 )
-                self.assertAlmostEqual(expected_dict["concentration_value"], information_dict["concentration_value"])
-                self.assertAlmostEqual(expected_dict["mole_fraction"], information_dict["mole_fraction"])
+                self.assertAlmostEqual(
+                    expected_dict["concentration_value"],
+                    information_dict["concentration_value"],
+                )
+                self.assertAlmostEqual(
+                    expected_dict["mole_fraction"], information_dict["mole_fraction"]
+                )
                 self.assertMultiLineEqual(
                     expected_dict["ssip_molecule"],
                     etree.tounicode(information_dict["ssip_molecule"]),
-                )
\ No newline at end of file
+                )
diff --git a/phasecalculator/test/iotest/polynomialiotest.py b/phasecalculator/test/iotest/polynomialiotest.py
index b51a143..1b3febd 100755
--- a/phasecalculator/test/iotest/polynomialiotest.py
+++ b/phasecalculator/test/iotest/polynomialiotest.py
@@ -34,8 +34,10 @@ logging.basicConfig()
 LOGGER = logging.getLogger(__name__)
 LOGGER.setLevel(logging.WARN)
 
+
 class PolynomialIOTestCase(unittest.TestCase):
     """Test case for polynomialio methods."""
+
     def setUp(self):
         """Set up for tests.
 
@@ -46,12 +48,37 @@ class PolynomialIOTestCase(unittest.TestCase):
         """
         self.maxDiff = None
         parent_directory = pathlib.Path(__file__).parents[1]
-        self.binding_file = (parent_directory / "resources"/ "expected_parsedbinding.xml").absolute().as_posix()
-        self.expected_binding_poly = (parent_directory / "resources"/ "expected_bindingpoly.csv").absolute().as_posix()
-        self.actual_binding_poly_file = (parent_directory / "resources/expected_parsedbinding_poly_fit_split.csv").absolute().as_posix()
-        self.actual_free_poly_file = (parent_directory /"resources" / "expected_parsedfree_poly_fit_split.csv").absolute().as_posix()
-        self.free_file = (parent_directory /"resources" / "expected_parsedfree.xml").absolute().as_posix()
-        self.expected_free_poly = (parent_directory /"resources" / "expected_parsedfreepoly.csv").absolute().as_posix()
+        self.binding_file = (
+            (parent_directory / "resources" / "expected_parsedbinding.xml")
+            .absolute()
+            .as_posix()
+        )
+        self.expected_binding_poly = (
+            (parent_directory / "resources" / "expected_bindingpoly.csv")
+            .absolute()
+            .as_posix()
+        )
+        self.actual_binding_poly_file = (
+            (parent_directory / "resources/expected_parsedbinding_poly_fit_split.csv")
+            .absolute()
+            .as_posix()
+        )
+        self.actual_free_poly_file = (
+            (parent_directory / "resources" / "expected_parsedfree_poly_fit_split.csv")
+            .absolute()
+            .as_posix()
+        )
+        self.free_file = (
+            (parent_directory / "resources" / "expected_parsedfree.xml")
+            .absolute()
+            .as_posix()
+        )
+        self.expected_free_poly = (
+            (parent_directory / "resources" / "expected_parsedfreepoly.csv")
+            .absolute()
+            .as_posix()
+        )
+
     def tearDown(self):
         """Clean up after tests.
 
@@ -64,6 +91,7 @@ class PolynomialIOTestCase(unittest.TestCase):
             os.remove(self.actual_binding_poly_file)
         if os.path.isfile(self.actual_free_poly_file):
             os.remove(self.actual_free_poly_file)
+
     def test_read_poly_data_to_dict(self):
         """Test expected_polynomial information read in.
 
@@ -72,27 +100,63 @@ class PolynomialIOTestCase(unittest.TestCase):
         None.
 
         """
-        expected_dict = {'resourcesexpected,parsed':{8: {'negative': {'RMSE': 0.0137444779,
-                                               'coefficients': np.array([-2.60836624e-01,  4.65295250e-01,  2.57637417e-01,  2.19491128e-01,
-        4.20087475e-02,  4.02289353e-03,  2.12247938e-04,  5.89243946e-06,
-        6.73443996e-08]),
-                                               'covar': 0.0379710451935,
-                                               'order': 8},
-                                  'positive': {'RMSE': 0.008907316,
-                                               'coefficients': np.array([-2.52075337e-01, -7.07009850e-01,  9.86359325e-01, -1.40859321e+00,
-        5.04060101e-01, -9.17970326e-02,  9.28812463e-03, -4.97458825e-04,
-        1.10198937e-05]),
-                                               'covar': 0.008013368123414,
-                                               'order': 8}}}}
-        actual_dict = polyio.read_poly_data_to_dict([self.expected_free_poly], suffix="freepoly.csv",
-                                                    temperature_dir=True)
+        expected_dict = {
+            "resourcesexpected,parsed": {
+                8: {
+                    "negative": {
+                        "RMSE": 0.0137444779,
+                        "coefficients": np.array(
+                            [
+                                -2.60836624e-01,
+                                4.65295250e-01,
+                                2.57637417e-01,
+                                2.19491128e-01,
+                                4.20087475e-02,
+                                4.02289353e-03,
+                                2.12247938e-04,
+                                5.89243946e-06,
+                                6.73443996e-08,
+                            ]
+                        ),
+                        "covar": 0.0379710451935,
+                        "order": 8,
+                    },
+                    "positive": {
+                        "RMSE": 0.008907316,
+                        "coefficients": np.array(
+                            [
+                                -2.52075337e-01,
+                                -7.07009850e-01,
+                                9.86359325e-01,
+                                -1.40859321e00,
+                                5.04060101e-01,
+                                -9.17970326e-02,
+                                9.28812463e-03,
+                                -4.97458825e-04,
+                                1.10198937e-05,
+                            ]
+                        ),
+                        "covar": 0.008013368123414,
+                        "order": 8,
+                    },
+                }
+            }
+        }
+        actual_dict = polyio.read_poly_data_to_dict(
+            [self.expected_free_poly], suffix="freepoly.csv", temperature_dir=True
+        )
         self.assertListEqual(list(expected_dict.keys()), list(actual_dict.keys()))
-        for region, info_dict in actual_dict['resourcesexpected,parsed'][8].items():
+        for region, info_dict in actual_dict["resourcesexpected,parsed"][8].items():
             for key, value in info_dict.items():
                 if key == "coefficients":
-                    np.testing.assert_allclose(value, expected_dict['resourcesexpected,parsed'][8][region][key])
+                    np.testing.assert_allclose(
+                        value, expected_dict["resourcesexpected,parsed"][8][region][key]
+                    )
                 else:
-                    self.assertEqual(value, expected_dict['resourcesexpected,parsed'][8][region][key])
+                    self.assertEqual(
+                        value, expected_dict["resourcesexpected,parsed"][8][region][key]
+                    )
+
     def test_generate_polynomial_data_free_energy_file_list(self):
         """Test expected polynomial data outputed.
 
@@ -101,7 +165,9 @@ class PolynomialIOTestCase(unittest.TestCase):
         None.
 
         """
-        results, filenames = polyio.generate_polynomial_data_free_energy_file_list([self.free_file])
+        results, filenames = polyio.generate_polynomial_data_free_energy_file_list(
+            [self.free_file]
+        )
         self.assertListEqual([0], results)
         exp_file = pandas.read_csv(
             self.expected_free_poly,
@@ -110,7 +176,10 @@ class PolynomialIOTestCase(unittest.TestCase):
             names=list(range(0, 9)),
         )
         act_file = pandas.read_csv(
-            self.actual_free_poly_file, sep="\t", quoting=csv.QUOTE_NONE, names=list(range(0, 9))
+            self.actual_free_poly_file,
+            sep="\t",
+            quoting=csv.QUOTE_NONE,
+            names=list(range(0, 9)),
         )
         self.assertTrue(exp_file.columns.equals(act_file.columns))
         self.assertTrue(exp_file.loc[0].equals(act_file.loc[0]))
@@ -120,6 +189,7 @@ class PolynomialIOTestCase(unittest.TestCase):
                 exp_file.loc[i, 2:].values.astype(float),
                 act_file.loc[i, 2:].values.astype(float),
             )
+
     def test_generate_polynomial_data_binding_energy_file_list(self):
         """Test expected polynomial data outputed.
 
@@ -128,7 +198,9 @@ class PolynomialIOTestCase(unittest.TestCase):
         None.
 
         """
-        results, filenames = polyio.generate_polynomial_data_binding_energy_file_list([self.binding_file])
+        results, filenames = polyio.generate_polynomial_data_binding_energy_file_list(
+            [self.binding_file]
+        )
         self.assertListEqual([0], results)
         exp_file = pandas.read_csv(
             self.expected_binding_poly,
@@ -137,7 +209,10 @@ class PolynomialIOTestCase(unittest.TestCase):
             names=list(range(0, 9)),
         )
         act_file = pandas.read_csv(
-            self.actual_binding_poly_file, sep="\t", quoting=csv.QUOTE_NONE, names=list(range(0, 9))
+            self.actual_binding_poly_file,
+            sep="\t",
+            quoting=csv.QUOTE_NONE,
+            names=list(range(0, 9)),
         )
         self.assertTrue(exp_file.columns.equals(act_file.columns))
         self.assertTrue(exp_file.loc[0].equals(act_file.loc[0]))
@@ -147,6 +222,7 @@ class PolynomialIOTestCase(unittest.TestCase):
                 exp_file.loc[i, 2:].values.astype(float),
                 act_file.loc[i, 2:].values.astype(float),
             )
+
     def test_generate_polynomial_filename(self):
         """Test expected filename is produced.
 
@@ -156,4 +232,4 @@ class PolynomialIOTestCase(unittest.TestCase):
 
         """
         actual_filename = polyio.generate_polynomial_filename("freefile.xml")
-        self.assertEqual("freefile_poly_fit.csv", actual_filename)
\ No newline at end of file
+        self.assertEqual("freefile_poly_fit.csv", actual_filename)
diff --git a/phasecalculator/test/iotest/solventextractortest.py b/phasecalculator/test/iotest/solventextractortest.py
index a1d34df..4846972 100755
--- a/phasecalculator/test/iotest/solventextractortest.py
+++ b/phasecalculator/test/iotest/solventextractortest.py
@@ -31,8 +31,10 @@ logging.basicConfig()
 LOGGER = logging.getLogger(__name__)
 LOGGER.setLevel(logging.WARN)
 
+
 class SolventExtractorTestCase(unittest.TestCase):
     """Test case for solvent extractor methods."""
+
     def setUp(self):
         """Set up for tests.
 
@@ -44,15 +46,20 @@ class SolventExtractorTestCase(unittest.TestCase):
         self.maxDiff = None
         parent_directory = pathlib.Path(__file__).parents[1]
         self.binding_energy_filename = (
-            (parent_directory / "resources/expected_bindingenergy.xml").absolute().as_posix()
+            (parent_directory / "resources/expected_bindingenergy.xml")
+            .absolute()
+            .as_posix()
         )
         self.expected_output_filename = (
-            (parent_directory / "resources/expected_parsedbinding.xml").absolute().as_posix()
-        ) 
+            (parent_directory / "resources/expected_parsedbinding.xml")
+            .absolute()
+            .as_posix()
+        )
         self.output_filename = "1-butanol0.165water0.835binding.xml"
         self.solvent_filename = (
             (parent_directory / "resources/expected_solvent.xml").absolute().as_posix()
         )
+
     def tearDown(self):
         """Clean up after tests.
 
@@ -64,7 +71,7 @@ class SolventExtractorTestCase(unittest.TestCase):
         if os.path.isfile(self.output_filename):
             os.remove(self.output_filename)
         del self.output_filename
-        
+
     def test_extract_and_write_energy_values_from_file(self):
         """Test extraction and writing of individual solvent energy values file.
 
@@ -73,10 +80,12 @@ class SolventExtractorTestCase(unittest.TestCase):
         None.
 
         """
-        filenames = solvextract.extract_and_write_energy_values_from_files(self.solvent_filename, self.binding_energy_filename, "binding", "")
+        filenames = solvextract.extract_and_write_energy_values_from_files(
+            self.solvent_filename, self.binding_energy_filename, "binding", ""
+        )
         self.assertListEqual([self.output_filename], filenames)
         with open(self.output_filename, "r") as actual_file:
             actual_xml = actual_file.read()
             with open(self.expected_output_filename) as expected_file:
                 expected_xml = expected_file.read()
-                self.assertMultiLineEqual(expected_xml, actual_xml)
\ No newline at end of file
+                self.assertMultiLineEqual(expected_xml, actual_xml)
diff --git a/phasecalculator/test/iotest/systemcollectionprocessortest.py b/phasecalculator/test/iotest/systemcollectionprocessortest.py
index 378e368..4ebbe5e 100755
--- a/phasecalculator/test/iotest/systemcollectionprocessortest.py
+++ b/phasecalculator/test/iotest/systemcollectionprocessortest.py
@@ -38,8 +38,10 @@ logging.basicConfig()
 LOGGER = logging.getLogger(__name__)
 LOGGER.setLevel(logging.WARN)
 
+
 class SystemCollectionProcessorTestCase(unittest.TestCase):
     """Test case for  System Collection Processor methods."""
+
     def setUp(self):
         """Set up before tests.
 
@@ -50,7 +52,12 @@ class SystemCollectionProcessorTestCase(unittest.TestCase):
         """
         self.maxDiff = None
         self.temperature = Temperature(298.0, "KELVIN")
-        self.molecule = Molecule("water", "XLYOFNOQVPJJNP-UHFFFAOYSA-N", "XLYOFNOQVPJJNP-UHFFFAOYSA-N_ssip.xml", 1.0)
+        self.molecule = Molecule(
+            "water",
+            "XLYOFNOQVPJJNP-UHFFFAOYSA-N",
+            "XLYOFNOQVPJJNP-UHFFFAOYSA-N_ssip.xml",
+            1.0,
+        )
         self.phase = Phase([self.molecule], self.temperature)
         self.phases = Phases([self.phase])
         self.example_jar = "resources/example.jar"
@@ -60,6 +67,7 @@ class SystemCollectionProcessorTestCase(unittest.TestCase):
         self.system_collection = SystemCollection([self.system])
         self.xml_filename = "syscollection.xml"
         sysproc.write_system_collection_file(self.system_collection, self.xml_filename)
+
     def tearDown(self):
         """Clean up after tests.
 
@@ -79,6 +87,7 @@ class SystemCollectionProcessorTestCase(unittest.TestCase):
         if os.path.isfile(self.xml_filename):
             os.remove(self.xml_filename)
         del self.xml_filename
+
     def test_read_system_collection_file(self):
         """Test expected collection is read in
 
@@ -89,6 +98,7 @@ class SystemCollectionProcessorTestCase(unittest.TestCase):
         """
         actual_sys_collection = sysproc.read_system_collection_file(self.xml_filename)
         self.assertEqual(self.system_collection, actual_sys_collection)
+
     def test_write_system_collection_file(self):
         """Test file contents produced as expected.
 
@@ -122,4 +132,3 @@ class SystemCollectionProcessorTestCase(unittest.TestCase):
         with open(self.xml_filename, "r") as actual_file:
             actual_contents = actual_file.read()
             self.assertMultiLineEqual(expected_contents, actual_contents)
-        
diff --git a/phasecalculator/test/phasecalculatortests.py b/phasecalculator/test/phasecalculatortests.py
index b1fae6c..f4bc491 100755
--- a/phasecalculator/test/phasecalculatortests.py
+++ b/phasecalculator/test/phasecalculatortests.py
@@ -25,17 +25,29 @@ This can also be used to run tests on the installed instance of the library.
 import logging
 import unittest
 import sys
-from phasecalculator.test.iotest.phasetransferxmlcreatortest import PhasetransferXMLCreatorTestCase
+from phasecalculator.test.iotest.phasetransferxmlcreatortest import (
+    PhasetransferXMLCreatorTestCase,
+)
 from phasecalculator.test.iotest.solventextractortest import SolventExtractorTestCase
-from phasecalculator.test.runnerstest.phasetransferrunnertest import PhasetransferRunnerTestCase
-from phasecalculator.test.runnerstest.fgipanalysisrunnertest import FGIPAnalysisRunnerTestCase
-from phasecalculator.test.runnerstest.vleanalysisrunnertest import VLEAnalysisRunnerTestCase
+from phasecalculator.test.runnerstest.phasetransferrunnertest import (
+    PhasetransferRunnerTestCase,
+)
+from phasecalculator.test.runnerstest.fgipanalysisrunnertest import (
+    FGIPAnalysisRunnerTestCase,
+)
+from phasecalculator.test.runnerstest.vleanalysisrunnertest import (
+    VLEAnalysisRunnerTestCase,
+)
 from phasecalculator.test.analysistest.fgipanalysistest import FGIPAnalysisTestCase
 from phasecalculator.test.classestest.moleculetest import MoleculeTestCase
-from phasecalculator.test.classestest.outputinformationtest import OutputInformationTestCase
+from phasecalculator.test.classestest.outputinformationtest import (
+    OutputInformationTestCase,
+)
 from phasecalculator.test.classestest.phasestest import PhasesTestCase
 from phasecalculator.test.classestest.phasetest import PhaseTestCase
-from phasecalculator.test.classestest.runtimeinformationtest import RuntimeInformationTestCase
+from phasecalculator.test.classestest.runtimeinformationtest import (
+    RuntimeInformationTestCase,
+)
 from phasecalculator.test.classestest.systemtest import SystemTestCase
 from phasecalculator.test.classestest.temperaturetest import TemperatureTestCase
 
@@ -43,24 +55,28 @@ logging.basicConfig()
 LOGGER = logging.getLogger(__name__)
 LOGGER.setLevel(logging.WARN)
 
-IO_TEST_CASES = [PhasetransferXMLCreatorTestCase,
-                 SolventExtractorTestCase,]
+IO_TEST_CASES = [PhasetransferXMLCreatorTestCase, SolventExtractorTestCase]
 
-RUNNERS_TEST_CASES = [PhasetransferRunnerTestCase,
-                      FGIPAnalysisRunnerTestCase,
-                      VLEAnalysisRunnerTestCase]
+RUNNERS_TEST_CASES = [
+    PhasetransferRunnerTestCase,
+    FGIPAnalysisRunnerTestCase,
+    VLEAnalysisRunnerTestCase,
+]
 
-ANALYSIS_TEST_CASES = [FGIPAnalysisTestCase,]
+ANALYSIS_TEST_CASES = [FGIPAnalysisTestCase]
 
 MODULE_TEST_CASES = []
 
-CLASSES_TEST_CASES = [MoleculeTestCase,
-                     OutputInformationTestCase,
-                     PhasesTestCase,
-                     PhaseTestCase,
-                     RuntimeInformationTestCase,
-                     SystemTestCase,
-                     TemperatureTestCase]
+CLASSES_TEST_CASES = [
+    MoleculeTestCase,
+    OutputInformationTestCase,
+    PhasesTestCase,
+    PhaseTestCase,
+    RuntimeInformationTestCase,
+    SystemTestCase,
+    TemperatureTestCase,
+]
+
 
 def create_test_suite():
     """Create a test suite with all the tests from the package.
diff --git a/phasecalculator/test/runnerstest/fgipanalysisrunnertest.py b/phasecalculator/test/runnerstest/fgipanalysisrunnertest.py
index d052e1c..4cf9691 100755
--- a/phasecalculator/test/runnerstest/fgipanalysisrunnertest.py
+++ b/phasecalculator/test/runnerstest/fgipanalysisrunnertest.py
@@ -34,8 +34,10 @@ logging.basicConfig()
 LOGGER = logging.getLogger(__name__)
 LOGGER.setLevel(logging.WARN)
 
+
 class FGIPAnalysisRunnerTestCase(unittest.TestCase):
     """Test case for fgip analysis runner methods."""
+
     def setUp(self):
         """Set up before tests.
 
@@ -46,20 +48,36 @@ class FGIPAnalysisRunnerTestCase(unittest.TestCase):
         """
         self.Popen = MockPopen()
         self.r = Replacer()
-        self.r.replace('phasecalculator.runners.phasetransferrunner.subprocess.call', self.Popen)
+        self.r.replace(
+            "phasecalculator.runners.phasetransferrunner.subprocess.call", self.Popen
+        )
         self.addCleanup(self.r.restore)
-        
+
         self.parent_directory = pathlib.Path(__file__).parents[1]
         self.solvent_filename = (
-            (self.parent_directory / "resources/expected_solvent.xml").absolute().as_posix()
+            (self.parent_directory / "resources/expected_solvent.xml")
+            .absolute()
+            .as_posix()
+        )
+        self.example_jar = (
+            (self.parent_directory / "resources" / "example.jar").absolute().as_posix()
+        )
+        self.binding_output_filename = (
+            (self.parent_directory / "resources" / "expected_bindingenergy.xml")
+            .absolute()
+            .as_posix()
         )
-        self.example_jar = (self.parent_directory / "resources" /"example.jar").absolute().as_posix()
-        self.binding_output_filename = (self.parent_directory /"resources" / "expected_bindingenergy.xml").absolute().as_posix()
         self.directory_base = "fgip"
-        self.directory = fgiprunner.generate_directory(self.directory_base, 298.0, "KELVIN")
-        self.out_res, self.filename_list = fgiprunner.extract_solvents_and_generate_polynomials(self.solvent_filename, self.binding_output_filename, self.directory)
+        self.directory = fgiprunner.generate_directory(
+            self.directory_base, 298.0, "KELVIN"
+        )
+        self.out_res, self.filename_list = fgiprunner.extract_solvents_and_generate_polynomials(
+            self.solvent_filename, self.binding_output_filename, self.directory
+        )
         self.energy_xmlfile = "fgip/298_0K/1-butanol0.165water0.835binding.xml"
-        self.poly_file = "fgip/298_0K/1-butanol0.165water0.835binding_poly_fit_split.csv"
+        self.poly_file = (
+            "fgip/298_0K/1-butanol0.165water0.835binding_poly_fit_split.csv"
+        )
         self.matrix_file = "fgip/298_0K/1-butanol0.165water0.835_solv_map.csv"
         self.solvent_map = "fgip/298_0K/1-butanol0.165water0.835_solv_map.svg"
         self.fgip_file = "fgip/298_0K/1-butanol0_165water0_835_FGIP.svg"
@@ -71,6 +89,7 @@ class FGIPAnalysisRunnerTestCase(unittest.TestCase):
     \label{fig:1-butanol0_165water0_835solvationmap}
 \end{figure}
 """
+
     def tearDown(self):
         """Clean up after tests.
 
@@ -87,9 +106,10 @@ class FGIPAnalysisRunnerTestCase(unittest.TestCase):
                 elif os.path.isdir(file_path):
                     shutil.rmtree(file_path)
             except Exception as e:
-                LOGGER.error('Failed to delete %s. Reason: %s', file_path, e)
+                LOGGER.error("Failed to delete %s. Reason: %s", file_path, e)
         if pathlib.Path(self.directory_base).is_dir():
             os.rmdir(self.directory_base)
+
     def test_calc_energies_and_fgips(self):
         """Test calculation and FGIP analysis is run.
 
@@ -98,12 +118,18 @@ class FGIPAnalysisRunnerTestCase(unittest.TestCase):
         None.
 
         """
-        results, latex_blocks = fgiprunner.calc_energies_and_fgips(self.example_jar, self.binding_output_filename, self.solvent_filename, self.directory_base)
-        self.assertListEqual([(0,0)], results)
+        results, latex_blocks = fgiprunner.calc_energies_and_fgips(
+            self.example_jar,
+            self.binding_output_filename,
+            self.solvent_filename,
+            self.directory_base,
+        )
+        self.assertListEqual([(0, 0)], results)
         self.assertMultiLineEqual(self.expected_latex, latex_blocks)
         self.assertTrue(pathlib.Path(self.matrix_file).is_file())
         self.assertTrue(pathlib.Path(self.solvent_map).is_file())
         self.assertTrue(pathlib.Path(self.fgip_file).is_file())
+
     def test_generate_directory(self):
         """Test directory is generated.
 
@@ -113,6 +139,7 @@ class FGIPAnalysisRunnerTestCase(unittest.TestCase):
 
         """
         self.assertTrue(pathlib.Path(self.directory).is_dir())
+
     def test_run_fgip_analysis(self):
         """Test FGIP analysis is run.
 
@@ -121,12 +148,15 @@ class FGIPAnalysisRunnerTestCase(unittest.TestCase):
         None.
 
         """
-        results, latex_blocks = fgiprunner.run_fgip_analysis(self.solvent_filename, self.filename_list, self.directory)
-        self.assertListEqual([(0,0)], results)
+        results, latex_blocks = fgiprunner.run_fgip_analysis(
+            self.solvent_filename, self.filename_list, self.directory
+        )
+        self.assertListEqual([(0, 0)], results)
         self.assertMultiLineEqual(self.expected_latex, latex_blocks)
         self.assertTrue(pathlib.Path(self.matrix_file).is_file())
         self.assertTrue(pathlib.Path(self.solvent_map).is_file())
         self.assertTrue(pathlib.Path(self.fgip_file).is_file())
+
     def test_extract_solvents_and_generate_polynomials(self):
         """Test expected solvent information is extracted and binding polynomial is produced.
 
@@ -137,6 +167,7 @@ class FGIPAnalysisRunnerTestCase(unittest.TestCase):
         """
         self.assertListEqual([0], self.out_res)
         self.assertListEqual([self.poly_file], self.filename_list)
+
     def test_run_binding_energy_calculation(self):
         """Test expected system call is produced.
 
@@ -145,10 +176,26 @@ class FGIPAnalysisRunnerTestCase(unittest.TestCase):
         None.
 
         """
-        expected_args = ["java", "-jar", self.example_jar, '--energies',
-                         'solvationbinding', "--calc", "--conccalc",
-                         "-o", self.binding_output_filename,
-                         "--solvent", self.solvent_filename,
-            "--solute", fgiprunner.phaserun.pureinf.SINGLE_SSIP_SOLUTE_FILE, "--temperatureUnit", "KELVIN", "-t", "298.0"]
-        process = fgiprunner.run_binding_energy_calculation(self.example_jar, self.binding_output_filename, self.solvent_filename)
-        self.assertListEqual(expected_args, process.args)
\ No newline at end of file
+        expected_args = [
+            "java",
+            "-jar",
+            self.example_jar,
+            "--energies",
+            "solvationbinding",
+            "--calc",
+            "--conccalc",
+            "-o",
+            self.binding_output_filename,
+            "--solvent",
+            self.solvent_filename,
+            "--solute",
+            fgiprunner.phaserun.pureinf.SINGLE_SSIP_SOLUTE_FILE,
+            "--temperatureUnit",
+            "KELVIN",
+            "-t",
+            "298.0",
+        ]
+        process = fgiprunner.run_binding_energy_calculation(
+            self.example_jar, self.binding_output_filename, self.solvent_filename
+        )
+        self.assertListEqual(expected_args, process.args)
diff --git a/phasecalculator/test/runnerstest/phasecalculatorrunnertest.py b/phasecalculator/test/runnerstest/phasecalculatorrunnertest.py
index cb7aa6a..2966b80 100755
--- a/phasecalculator/test/runnerstest/phasecalculatorrunnertest.py
+++ b/phasecalculator/test/runnerstest/phasecalculatorrunnertest.py
@@ -48,6 +48,7 @@ LOGGER.setLevel(logging.WARN)
 
 class PhaseCalculatorRunnerTestCase(unittest.TestCase):
     """Test case for phase calculator runner methods."""
+
     def setUp(self):
         """Set up before tests.
 
@@ -60,28 +61,59 @@ class PhaseCalculatorRunnerTestCase(unittest.TestCase):
         self.water_ssip = ssip_filenames["XLYOFNOQVPJJNP-UHFFFAOYSA-N"]
         self.butanol_ssip = ssip_filenames["LRHPLDYGYMQRHN-UHFFFAOYSA-N"]
         self.temperature = Temperature(298.0, "KELVIN")
-        self.water_molecule = Molecule("water", "XLYOFNOQVPJJNP-UHFFFAOYSA-N", self.water_ssip, 0.8354716981132075)
-        self.butanol_molecule = Molecule("1-butanol", "LRHPLDYGYMQRHN-UHFFFAOYSA-N", self.butanol_ssip, 0.16452830188679246)
-        self.phase = Phase([self.water_molecule, self.butanol_molecule], self.temperature)
+        self.water_molecule = Molecule(
+            "water", "XLYOFNOQVPJJNP-UHFFFAOYSA-N", self.water_ssip, 0.8354716981132075
+        )
+        self.butanol_molecule = Molecule(
+            "1-butanol",
+            "LRHPLDYGYMQRHN-UHFFFAOYSA-N",
+            self.butanol_ssip,
+            0.16452830188679246,
+        )
+        self.phase = Phase(
+            [self.water_molecule, self.butanol_molecule], self.temperature
+        )
         self.phases = Phases([self.phase])
         parent_directory = pathlib.Path(__file__).parents[1]
-        self.example_jar = (parent_directory / "resources/example.jar").absolute().as_posix()
+        self.example_jar = (
+            (parent_directory / "resources/example.jar").absolute().as_posix()
+        )
         self.runtime_inf = RuntimeInformation(self.example_jar, "scratch", "fgip")
         self.out_inf = OutputInformation(True, True, "all", True)
         self.system = System(self.phases, self.runtime_inf, self.out_inf)
         pcalcrun.phasexmlrun.create_scratch_dir(self.system)
         self.directory_base = pcalcrun.create_output_dir(self.system)
-        
-        self.expected_phase_file = (parent_directory /"resources" / "expected_phase.xml").absolute().as_posix()
-        self.expected_solvent_file = (parent_directory /"resources" / "expected_solvent.xml").absolute().as_posix()
-        self.expected_binding_file = (parent_directory /"resources" / "expected_solventbinding.xml").absolute().as_posix()
-        self.expected_free_file = (parent_directory /"resources" / "expected_solventfree.xml").absolute().as_posix()
+
+        self.expected_phase_file = (
+            (parent_directory / "resources" / "expected_phase.xml")
+            .absolute()
+            .as_posix()
+        )
+        self.expected_solvent_file = (
+            (parent_directory / "resources" / "expected_solvent.xml")
+            .absolute()
+            .as_posix()
+        )
+        self.expected_binding_file = (
+            (parent_directory / "resources" / "expected_solventbinding.xml")
+            .absolute()
+            .as_posix()
+        )
+        self.expected_free_file = (
+            (parent_directory / "resources" / "expected_solventfree.xml")
+            .absolute()
+            .as_posix()
+        )
         self.phase_filename = "scratch/systemphase.xml"
-        self.solv_energy_dict = {"solvent_filename":self.expected_solvent_file,
-                                 "temperature_value":298.0,
-                                 "temperature_units":"KELVIN"}
+        self.solv_energy_dict = {
+            "solvent_filename": self.expected_solvent_file,
+            "temperature_value": 298.0,
+            "temperature_units": "KELVIN",
+        }
         self.energy_xmlfile = "fgip/298_0K/1-butanol0.165water0.835binding.xml"
-        self.poly_file = "fgip/298_0K/1-butanol0.165water0.835binding_poly_fit_split.csv"
+        self.poly_file = (
+            "fgip/298_0K/1-butanol0.165water0.835binding_poly_fit_split.csv"
+        )
         self.matrix_file = "fgip/298_0K/1-butanol0.165water0.835_solv_map.csv"
         self.solvent_map = "fgip/298_0K/1-butanol0.165water0.835_solv_map.svg"
         self.fgip_file = "fgip/298_0K/1-butanol0_165water0_835_FGIP.svg"
@@ -94,6 +126,7 @@ class PhaseCalculatorRunnerTestCase(unittest.TestCase):
     \label{fig:1-butanol0_165water0_835solvationmap}
 \end{figure}
 """
+
     def tearDown(self):
         """Clean up after tests.
 
@@ -110,9 +143,10 @@ class PhaseCalculatorRunnerTestCase(unittest.TestCase):
                 elif os.path.isdir(file_path):
                     shutil.rmtree(file_path)
             except Exception as e:
-                LOGGER.error('Failed to delete %s. Reason: %s', file_path, e)
+                LOGGER.error("Failed to delete %s. Reason: %s", file_path, e)
         if pathlib.Path(self.directory_base).is_dir():
             os.rmdir(self.directory_base)
+
     def copy_intermediate_files(self):
         """Test fixture required for run all analysis test as intermediate
         energy files are not produced during test as an SSIP jar is not present.
@@ -122,8 +156,11 @@ class PhaseCalculatorRunnerTestCase(unittest.TestCase):
         None.
 
         """
-        shutil.copyfile(self.expected_binding_file, "scratch/systemsolvent_298.0Kbinding.xml")
+        shutil.copyfile(
+            self.expected_binding_file, "scratch/systemsolvent_298.0Kbinding.xml"
+        )
         shutil.copyfile(self.expected_free_file, "scratch/systemsolvent_298.0Kfree.xml")
+
     def test_run_all_analysis(self):
         """Test
 
@@ -138,6 +175,7 @@ class PhaseCalculatorRunnerTestCase(unittest.TestCase):
         self.assertTrue(pathlib.Path(self.solvent_map).is_file())
         self.assertTrue(pathlib.Path(self.fgip_file).is_file())
         self.assertTrue(pathlib.Path(self.similarity_file).is_file())
+
     def test_run_fgip_analysis(self):
         """Test
 
@@ -146,12 +184,15 @@ class PhaseCalculatorRunnerTestCase(unittest.TestCase):
         None.
 
         """
-        results, latex_blocks = pcalcrun.run_fgip_analysis(self.system, [self.solv_energy_dict])
-        self.assertListEqual([(0,0)], results)
+        results, latex_blocks = pcalcrun.run_fgip_analysis(
+            self.system, [self.solv_energy_dict]
+        )
+        self.assertListEqual([(0, 0)], results)
         self.assertMultiLineEqual(self.expected_latex, latex_blocks)
         self.assertTrue(pathlib.Path(self.matrix_file).is_file())
         self.assertTrue(pathlib.Path(self.solvent_map).is_file())
         self.assertTrue(pathlib.Path(self.fgip_file).is_file())
+
     def test_run_similarity_analysis(self):
         """Test
 
@@ -162,6 +203,7 @@ class PhaseCalculatorRunnerTestCase(unittest.TestCase):
         """
         pcalcrun.run_similarity_analysis(self.system, [self.solv_energy_dict])
         self.assertTrue(pathlib.Path(self.similarity_file).is_file())
+
     def test_run_vle_analysis(self):
         """Test
 
@@ -170,12 +212,23 @@ class PhaseCalculatorRunnerTestCase(unittest.TestCase):
         None.
 
         """
-        expected_args = ["java", "-jar", self.example_jar,"--phaseOut",
-                         "--phaseCollectionList", "--conccalc",
-            "--gascalc", "--calc", "--phaseFile", self.phase_filename,
-                      "-o", self.phase_filename.replace(".xml","calculated.xml")]
+        expected_args = [
+            "java",
+            "-jar",
+            self.example_jar,
+            "--phaseOut",
+            "--phaseCollectionList",
+            "--conccalc",
+            "--gascalc",
+            "--calc",
+            "--phaseFile",
+            self.phase_filename,
+            "-o",
+            self.phase_filename.replace(".xml", "calculated.xml"),
+        ]
         process = pcalcrun.run_vle_analysis(self.system, self.phase_filename)
         self.assertListEqual(expected_args, process.args)
+
     def test_create_output_dir(self):
         """Test
 
@@ -184,7 +237,10 @@ class PhaseCalculatorRunnerTestCase(unittest.TestCase):
         None.
 
         """
-        self.assertTrue(pathlib.Path(self.system.runtime_information.output_dir).is_dir())
+        self.assertTrue(
+            pathlib.Path(self.system.runtime_information.output_dir).is_dir()
+        )
+
     def test_create_free_energy_output_filename(self):
         """Test
 
@@ -194,8 +250,11 @@ class PhaseCalculatorRunnerTestCase(unittest.TestCase):
 
         """
         expected_filename = "solvent_filenamefree.xml"
-        actual_filename = pcalcrun.create_free_energy_output_filename("solvent_filename.xml")
+        actual_filename = pcalcrun.create_free_energy_output_filename(
+            "solvent_filename.xml"
+        )
         self.assertEqual(expected_filename, actual_filename)
+
     def test_create_binding_energy_output_filename(self):
         """Test
 
@@ -205,8 +264,11 @@ class PhaseCalculatorRunnerTestCase(unittest.TestCase):
 
         """
         expected_filename = "solvent_filenamebinding.xml"
-        actual_filename = pcalcrun.create_binding_energy_output_filename("solvent_filename.xml")
+        actual_filename = pcalcrun.create_binding_energy_output_filename(
+            "solvent_filename.xml"
+        )
         self.assertEqual(expected_filename, actual_filename)
+
     def test_create_phase_output_filename(self):
         """Test
 
@@ -218,6 +280,7 @@ class PhaseCalculatorRunnerTestCase(unittest.TestCase):
         expected_filename = "phase_filenamecalculated.xml"
         actual_filename = pcalcrun.create_phase_output_filename("phase_filename.xml")
         self.assertEqual(expected_filename, actual_filename)
+
     def test_create_phase_and_solvent_xml_files(self):
         """Test
 
@@ -226,16 +289,22 @@ class PhaseCalculatorRunnerTestCase(unittest.TestCase):
         None.
 
         """
-        phase_filename, solvent_filename_list = pcalcrun.create_phase_and_solvent_xml_files(self.system)
+        phase_filename, solvent_filename_list = pcalcrun.create_phase_and_solvent_xml_files(
+            self.system
+        )
         self.assertEqual("scratch/systemphase.xml", phase_filename)
         with open(phase_filename, "r") as act_file:
             actual_contents = act_file.read()
             with open(self.expected_phase_file, "r") as exp_file:
                 expected_contents = exp_file.read()
                 self.assertMultiLineEqual(expected_contents, actual_contents)
-        expected_list = [{"solvent_filename":"scratch/systemsolvent_298.0K.xml",
-                          'temperature_units': 'KELVIN',
-                          'temperature_value': 298.0}]
+        expected_list = [
+            {
+                "solvent_filename": "scratch/systemsolvent_298.0K.xml",
+                "temperature_units": "KELVIN",
+                "temperature_value": 298.0,
+            }
+        ]
         self.assertListEqual(expected_list, solvent_filename_list)
         solvent_filename = solvent_filename_list[0]["solvent_filename"]
         with open(solvent_filename, "r") as act_file:
diff --git a/phasecalculator/test/runnerstest/phasetransferrunnertest.py b/phasecalculator/test/runnerstest/phasetransferrunnertest.py
index 3652a0f..8bbfb55 100755
--- a/phasecalculator/test/runnerstest/phasetransferrunnertest.py
+++ b/phasecalculator/test/runnerstest/phasetransferrunnertest.py
@@ -31,6 +31,7 @@ logging.basicConfig()
 LOGGER = logging.getLogger(__name__)
 LOGGER.setLevel(logging.WARN)
 
+
 class PhasetransferRunnerTestCase(unittest.TestCase):
     """Test case for phasetransferrunner methods."""
 
@@ -44,15 +45,40 @@ class PhasetransferRunnerTestCase(unittest.TestCase):
         """
         self.Popen = MockPopen()
         self.r = Replacer()
-        self.r.replace('phasecalculator.runners.phasetransferrunner.subprocess.call', self.Popen)
+        self.r.replace(
+            "phasecalculator.runners.phasetransferrunner.subprocess.call", self.Popen
+        )
         self.addCleanup(self.r.restore)
         parent_directory = pathlib.Path(__file__).parents[1]
-        self.example_jar = (parent_directory / "resources" /"example.jar").absolute().as_posix()
-        self.phase_filename = (parent_directory /"resources" / "expected_phase.xml").absolute().as_posix()
-        self.solvent_filename  = (parent_directory /"resources" / "expected_solvent.xml").absolute().as_posix()
-        self.free_output_filename = (parent_directory /"resources" / "expected_freeenergy.xml").absolute().as_posix()
-        self.binding_output_filename = (parent_directory /"resources" / "expected_bindingenergy.xml").absolute().as_posix()
-        self.phase_output_filename = (parent_directory /"resources" / "expected_phaseout.xml").absolute().as_posix()
+        self.example_jar = (
+            (parent_directory / "resources" / "example.jar").absolute().as_posix()
+        )
+        self.phase_filename = (
+            (parent_directory / "resources" / "expected_phase.xml")
+            .absolute()
+            .as_posix()
+        )
+        self.solvent_filename = (
+            (parent_directory / "resources" / "expected_solvent.xml")
+            .absolute()
+            .as_posix()
+        )
+        self.free_output_filename = (
+            (parent_directory / "resources" / "expected_freeenergy.xml")
+            .absolute()
+            .as_posix()
+        )
+        self.binding_output_filename = (
+            (parent_directory / "resources" / "expected_bindingenergy.xml")
+            .absolute()
+            .as_posix()
+        )
+        self.phase_output_filename = (
+            (parent_directory / "resources" / "expected_phaseout.xml")
+            .absolute()
+            .as_posix()
+        )
+
     def tearDown(self):
         """Clean up after tests.
 
@@ -61,8 +87,8 @@ class PhasetransferRunnerTestCase(unittest.TestCase):
         None.
 
         """
-        #if pathlib.Path(self.example_jar).is_file():
-            
+        # if pathlib.Path(self.example_jar).is_file():
+
     def test_run_vle_calculation(self):
         """Test subprocess called with expected arguments.
 
@@ -71,12 +97,25 @@ class PhasetransferRunnerTestCase(unittest.TestCase):
         None.
 
         """
-        expected_args = ["java", "-jar", self.example_jar,"--phaseOut",
-                         "--phaseCollectionList", "--conccalc",
-            "--gascalc", "--calc", "--phaseFile", self.phase_filename,
-                      "-o", self.phase_output_filename]
-        process = phaserun.run_vle_calculation(self.example_jar, self.phase_filename, self.phase_output_filename)
+        expected_args = [
+            "java",
+            "-jar",
+            self.example_jar,
+            "--phaseOut",
+            "--phaseCollectionList",
+            "--conccalc",
+            "--gascalc",
+            "--calc",
+            "--phaseFile",
+            self.phase_filename,
+            "-o",
+            self.phase_output_filename,
+        ]
+        process = phaserun.run_vle_calculation(
+            self.example_jar, self.phase_filename, self.phase_output_filename
+        )
         self.assertListEqual(expected_args, process.args)
+
     def test_run_phasetransfer_binding_energy(self):
         """Test subprocess called with expected arguments.
 
@@ -85,13 +124,30 @@ class PhasetransferRunnerTestCase(unittest.TestCase):
         None.
 
         """
-        expected_args = ["java", "-jar", self.example_jar, '--energies',
-                         'solvationbinding', "--calc", "--conccalc",
-                         "-o", self.binding_output_filename,
-                         "--solvent", self.solvent_filename,
-            "--solute", phaserun.pureinf.SINGLE_SSIP_SOLUTE_FILE, "--temperatureUnit", "KELVIN", "-t", "298.0"]
-        process = phaserun.run_phasetransfer_binding_energy(self.example_jar, self.binding_output_filename, self.solvent_filename)
+        expected_args = [
+            "java",
+            "-jar",
+            self.example_jar,
+            "--energies",
+            "solvationbinding",
+            "--calc",
+            "--conccalc",
+            "-o",
+            self.binding_output_filename,
+            "--solvent",
+            self.solvent_filename,
+            "--solute",
+            phaserun.pureinf.SINGLE_SSIP_SOLUTE_FILE,
+            "--temperatureUnit",
+            "KELVIN",
+            "-t",
+            "298.0",
+        ]
+        process = phaserun.run_phasetransfer_binding_energy(
+            self.example_jar, self.binding_output_filename, self.solvent_filename
+        )
         self.assertListEqual(expected_args, process.args)
+
     def test_run_phasetransfer_free_energy(self):
         """Test subprocess called with expected arguments.
 
@@ -100,13 +156,30 @@ class PhasetransferRunnerTestCase(unittest.TestCase):
         None.
 
         """
-        expected_args = ["java", "-jar", self.example_jar, '--energies',
-                         'solvationtotal', "--calc", "--conccalc",
-                         "-o", self.free_output_filename,
-                         "--solvent", self.solvent_filename,
-            "--solute", phaserun.pureinf.SINGLE_SSIP_SOLUTE_FILE, "--temperatureUnit", "KELVIN", "-t", "298.0"]
-        process = phaserun.run_phasetransfer_free_energy(self.example_jar, self.free_output_filename, self.solvent_filename)
+        expected_args = [
+            "java",
+            "-jar",
+            self.example_jar,
+            "--energies",
+            "solvationtotal",
+            "--calc",
+            "--conccalc",
+            "-o",
+            self.free_output_filename,
+            "--solvent",
+            self.solvent_filename,
+            "--solute",
+            phaserun.pureinf.SINGLE_SSIP_SOLUTE_FILE,
+            "--temperatureUnit",
+            "KELVIN",
+            "-t",
+            "298.0",
+        ]
+        process = phaserun.run_phasetransfer_free_energy(
+            self.example_jar, self.free_output_filename, self.solvent_filename
+        )
         self.assertListEqual(expected_args, process.args)
+
     def test_run_calculation(self):
         """Test subprocess called with expected arguments.
 
@@ -115,10 +188,10 @@ class PhasetransferRunnerTestCase(unittest.TestCase):
         None.
 
         """
-        self.Popen.set_command('ls ' +self.phase_filename, stdout=b'o', stderr=b'e')
+        self.Popen.set_command("ls " + self.phase_filename, stdout=b"o", stderr=b"e")
 
         # testing of results
-        
+
         process = phaserun.run_calculation(["ls", self.phase_filename])
         self.assertListEqual(["ls", self.phase_filename], process.args)
 
@@ -130,12 +203,25 @@ class PhasetransferRunnerTestCase(unittest.TestCase):
         None.
 
         """
-        expected_args = ["java", "-jar", self.example_jar,"--phaseOut",
-                         "--phaseCollectionList", "--conccalc",
-            "--gascalc", "--calc", "--phaseFile", self.phase_filename,
-                      "-o", self.phase_output_filename]
-        actual_args = phaserun.generate_vle_calc_args(self.example_jar, self.phase_filename, self.phase_output_filename)
+        expected_args = [
+            "java",
+            "-jar",
+            self.example_jar,
+            "--phaseOut",
+            "--phaseCollectionList",
+            "--conccalc",
+            "--gascalc",
+            "--calc",
+            "--phaseFile",
+            self.phase_filename,
+            "-o",
+            self.phase_output_filename,
+        ]
+        actual_args = phaserun.generate_vle_calc_args(
+            self.example_jar, self.phase_filename, self.phase_output_filename
+        )
         self.assertListEqual(expected_args, actual_args)
+
     def test_generate_phasetransfer_free_args(self):
         """Test expected argument list produced.
 
@@ -144,13 +230,30 @@ class PhasetransferRunnerTestCase(unittest.TestCase):
         None.
 
         """
-        expected_args = ["java", "-jar", self.example_jar, '--energies',
-                         'solvationtotal', "--calc", "--conccalc",
-                         "-o", self.free_output_filename,
-                         "--solvent", self.solvent_filename,
-            "--solute", phaserun.pureinf.SINGLE_SSIP_SOLUTE_FILE, "--temperatureUnit", "KELVIN", "-t", "298.0"]
-        actual_args = phaserun.generate_phasetransfer_free_args(self.example_jar, self.free_output_filename, self.solvent_filename)
+        expected_args = [
+            "java",
+            "-jar",
+            self.example_jar,
+            "--energies",
+            "solvationtotal",
+            "--calc",
+            "--conccalc",
+            "-o",
+            self.free_output_filename,
+            "--solvent",
+            self.solvent_filename,
+            "--solute",
+            phaserun.pureinf.SINGLE_SSIP_SOLUTE_FILE,
+            "--temperatureUnit",
+            "KELVIN",
+            "-t",
+            "298.0",
+        ]
+        actual_args = phaserun.generate_phasetransfer_free_args(
+            self.example_jar, self.free_output_filename, self.solvent_filename
+        )
         self.assertListEqual(expected_args, actual_args)
+
     def test_generate_phasetransfer_binding_args(self):
         """Test expected argument list produced.
 
@@ -159,13 +262,30 @@ class PhasetransferRunnerTestCase(unittest.TestCase):
         None.
 
         """
-        expected_args = ["java", "-jar", self.example_jar, '--energies',
-                         'solvationbinding', "--calc", "--conccalc",
-                         "-o", self.binding_output_filename,
-                         "--solvent", self.solvent_filename,
-            "--solute", phaserun.pureinf.SINGLE_SSIP_SOLUTE_FILE, "--temperatureUnit", "KELVIN", "-t", "298.0"]
-        actual_args = phaserun.generate_phasetransfer_binding_args(self.example_jar, self.binding_output_filename, self.solvent_filename)
+        expected_args = [
+            "java",
+            "-jar",
+            self.example_jar,
+            "--energies",
+            "solvationbinding",
+            "--calc",
+            "--conccalc",
+            "-o",
+            self.binding_output_filename,
+            "--solvent",
+            self.solvent_filename,
+            "--solute",
+            phaserun.pureinf.SINGLE_SSIP_SOLUTE_FILE,
+            "--temperatureUnit",
+            "KELVIN",
+            "-t",
+            "298.0",
+        ]
+        actual_args = phaserun.generate_phasetransfer_binding_args(
+            self.example_jar, self.binding_output_filename, self.solvent_filename
+        )
         self.assertListEqual(expected_args, actual_args)
+
     def test_generate_phase_calc_args(self):
         """Test expected argument list produced.
 
@@ -174,11 +294,22 @@ class PhasetransferRunnerTestCase(unittest.TestCase):
         None.
 
         """
-        expected_args = ["--phaseOut", "--phaseCollectionList", "--conccalc",
-            "--gascalc", "--calc", "--phaseFile", self.phase_filename,
-                      "-o", self.phase_output_filename]
-        actual_args = phaserun.generate_phase_calc_args(self.phase_filename, self.phase_output_filename)
+        expected_args = [
+            "--phaseOut",
+            "--phaseCollectionList",
+            "--conccalc",
+            "--gascalc",
+            "--calc",
+            "--phaseFile",
+            self.phase_filename,
+            "-o",
+            self.phase_output_filename,
+        ]
+        actual_args = phaserun.generate_phase_calc_args(
+            self.phase_filename, self.phase_output_filename
+        )
         self.assertListEqual(expected_args, actual_args)
+
     def test_generate_solvent_calc_args(self):
         """Test expected argument list produced.
 
@@ -187,11 +318,25 @@ class PhasetransferRunnerTestCase(unittest.TestCase):
         None.
 
         """
-        expected_args = ["--calc", "--conccalc", "-o", self.free_output_filename,
-                         "--solvent", self.solvent_filename,
-            "--solute", phaserun.pureinf.SINGLE_SSIP_SOLUTE_FILE, "--temperatureUnit", "KELVIN", "-t", "298.0"]
-        actual_args = phaserun.generate_solvent_calc_args(self.free_output_filename, self.solvent_filename)
+        expected_args = [
+            "--calc",
+            "--conccalc",
+            "-o",
+            self.free_output_filename,
+            "--solvent",
+            self.solvent_filename,
+            "--solute",
+            phaserun.pureinf.SINGLE_SSIP_SOLUTE_FILE,
+            "--temperatureUnit",
+            "KELVIN",
+            "-t",
+            "298.0",
+        ]
+        actual_args = phaserun.generate_solvent_calc_args(
+            self.free_output_filename, self.solvent_filename
+        )
         self.assertListEqual(expected_args, actual_args)
+
     def test_make_java_arguments(self):
         """Test java call pattern matches expected pattern.
 
@@ -201,11 +346,14 @@ class PhasetransferRunnerTestCase(unittest.TestCase):
 
         """
         expected_args1 = ["java", "-jar", self.example_jar]
-        actual_args1 = phaserun.make_java_arguments(self.example_jar) 
+        actual_args1 = phaserun.make_java_arguments(self.example_jar)
         self.assertListEqual(expected_args1, actual_args1)
         expected_args2 = ["java", "-Xms12000m", "-Xmx12000m", "-jar", self.example_jar]
-        actual_args2 = phaserun.make_java_arguments(self.example_jar, memory_req="12000m") 
+        actual_args2 = phaserun.make_java_arguments(
+            self.example_jar, memory_req="12000m"
+        )
         self.assertListEqual(expected_args2, actual_args2)
+
     def test_check_jar_exists(self):
         """Test if file exists.
 
@@ -214,4 +362,4 @@ class PhasetransferRunnerTestCase(unittest.TestCase):
         None.
 
         """
-        self.assertTrue(phaserun.check_jar_exists(self.example_jar))
\ No newline at end of file
+        self.assertTrue(phaserun.check_jar_exists(self.example_jar))
diff --git a/phasecalculator/test/runnerstest/phasexmlcreatorrunnertest.py b/phasecalculator/test/runnerstest/phasexmlcreatorrunnertest.py
index e6b3aa4..717bd01 100755
--- a/phasecalculator/test/runnerstest/phasexmlcreatorrunnertest.py
+++ b/phasecalculator/test/runnerstest/phasexmlcreatorrunnertest.py
@@ -40,8 +40,10 @@ logging.basicConfig()
 LOGGER = logging.getLogger(__name__)
 LOGGER.setLevel(logging.WARN)
 
+
 class PhaseXMLCreatorRunnerTestCase(unittest.TestCase):
     """Test case for phase XML creator runner methods."""
+
     def setUp(self):
         """Set up for tests.
 
@@ -55,9 +57,18 @@ class PhaseXMLCreatorRunnerTestCase(unittest.TestCase):
         self.water_ssip = ssip_filenames["XLYOFNOQVPJJNP-UHFFFAOYSA-N"]
         self.butanol_ssip = ssip_filenames["LRHPLDYGYMQRHN-UHFFFAOYSA-N"]
         self.temperature = Temperature(298.0, "KELVIN")
-        self.water_molecule = Molecule("water", "XLYOFNOQVPJJNP-UHFFFAOYSA-N", self.water_ssip, 0.8354716981132075)
-        self.butanol_molecule = Molecule("1-butanol", "LRHPLDYGYMQRHN-UHFFFAOYSA-N", self.butanol_ssip, 0.16452830188679246)
-        self.phase = Phase([self.water_molecule, self.butanol_molecule], self.temperature)
+        self.water_molecule = Molecule(
+            "water", "XLYOFNOQVPJJNP-UHFFFAOYSA-N", self.water_ssip, 0.8354716981132075
+        )
+        self.butanol_molecule = Molecule(
+            "1-butanol",
+            "LRHPLDYGYMQRHN-UHFFFAOYSA-N",
+            self.butanol_ssip,
+            0.16452830188679246,
+        )
+        self.phase = Phase(
+            [self.water_molecule, self.butanol_molecule], self.temperature
+        )
         self.phases = Phases([self.phase])
         self.example_jar = "resources/example.jar"
         self.runtime_inf = RuntimeInformation(self.example_jar, "scratch", "fgip")
@@ -65,8 +76,17 @@ class PhaseXMLCreatorRunnerTestCase(unittest.TestCase):
         self.system = System(self.phases, self.runtime_inf, self.out_inf)
         phasecreaterun.create_scratch_dir(self.system)
         parent_directory = pathlib.Path(__file__).parents[1]
-        self.expected_phase_file = (parent_directory /"resources" / "expected_phase.xml").absolute().as_posix()
-        self.expected_solvent_file = (parent_directory /"resources" / "expected_solvent.xml").absolute().as_posix()
+        self.expected_phase_file = (
+            (parent_directory / "resources" / "expected_phase.xml")
+            .absolute()
+            .as_posix()
+        )
+        self.expected_solvent_file = (
+            (parent_directory / "resources" / "expected_solvent.xml")
+            .absolute()
+            .as_posix()
+        )
+
     def tearDown(self):
         """Clean up after tests.
 
@@ -83,8 +103,9 @@ class PhaseXMLCreatorRunnerTestCase(unittest.TestCase):
                 elif os.path.isdir(file_path):
                     shutil.rmtree(file_path)
             except Exception as e:
-                LOGGER.error('Failed to delete %s. Reason: %s', file_path, e)
+                LOGGER.error("Failed to delete %s. Reason: %s", file_path, e)
         os.rmdir(self.runtime_inf.scratch_dir)
+
     def test_create_phase_and_solvent_files(self):
         """Test
 
@@ -93,16 +114,22 @@ class PhaseXMLCreatorRunnerTestCase(unittest.TestCase):
         None.
 
         """
-        phase_filename, solvent_filename_list = phasecreaterun.create_phase_and_solvent_files(self.system)
+        phase_filename, solvent_filename_list = phasecreaterun.create_phase_and_solvent_files(
+            self.system
+        )
         self.assertEqual("scratch/systemphase.xml", phase_filename)
         with open(phase_filename, "r") as act_file:
             actual_contents = act_file.read()
             with open(self.expected_phase_file, "r") as exp_file:
                 expected_contents = exp_file.read()
                 self.assertMultiLineEqual(expected_contents, actual_contents)
-        expected_list = [{"solvent_filename":"scratch/systemsolvent_298.0K.xml",
-                          'temperature_units': 'KELVIN',
-                          'temperature_value': 298.0}]
+        expected_list = [
+            {
+                "solvent_filename": "scratch/systemsolvent_298.0K.xml",
+                "temperature_units": "KELVIN",
+                "temperature_value": 298.0,
+            }
+        ]
         self.assertListEqual(expected_list, solvent_filename_list)
         solvent_filename = solvent_filename_list[0]["solvent_filename"]
         with open(solvent_filename, "r") as act_file:
@@ -110,6 +137,7 @@ class PhaseXMLCreatorRunnerTestCase(unittest.TestCase):
             with open(self.expected_solvent_file, "r") as exp_file:
                 expected_contents = exp_file.read()
                 self.assertMultiLineEqual(expected_contents, actual_contents)
+
     def test_create_phase_file(self):
         """Test
 
@@ -125,6 +153,7 @@ class PhaseXMLCreatorRunnerTestCase(unittest.TestCase):
             with open(self.expected_phase_file, "r") as exp_file:
                 expected_contents = exp_file.read()
                 self.assertMultiLineEqual(expected_contents, actual_contents)
+
     def test_create_solvent_files(self):
         """Test
 
@@ -133,10 +162,16 @@ class PhaseXMLCreatorRunnerTestCase(unittest.TestCase):
         None.
 
         """
-        expected_list = [{"solvent_filename":"scratch/systemsolvent_298.0K.xml",
-                          'temperature_units': 'KELVIN',
-                          'temperature_value': 298.0}]
-        solvent_filename_list = phasecreaterun.create_solvent_files(self.system, "systemsolvent")
+        expected_list = [
+            {
+                "solvent_filename": "scratch/systemsolvent_298.0K.xml",
+                "temperature_units": "KELVIN",
+                "temperature_value": 298.0,
+            }
+        ]
+        solvent_filename_list = phasecreaterun.create_solvent_files(
+            self.system, "systemsolvent"
+        )
         self.assertListEqual(expected_list, solvent_filename_list)
         solvent_filename = solvent_filename_list[0]["solvent_filename"]
         with open(solvent_filename, "r") as act_file:
@@ -144,6 +179,7 @@ class PhaseXMLCreatorRunnerTestCase(unittest.TestCase):
             with open(self.expected_solvent_file, "r") as exp_file:
                 expected_contents = exp_file.read()
                 self.assertMultiLineEqual(expected_contents, actual_contents)
+
     def test_create_solvent_file(self):
         """Test expected solvent XML created.
 
@@ -152,16 +188,25 @@ class PhaseXMLCreatorRunnerTestCase(unittest.TestCase):
         None.
 
         """
-        mole_fraction_dict_list = self.system.get_phase_compositions_by_temperature()[self.temperature]
+        mole_fraction_dict_list = self.system.get_phase_compositions_by_temperature()[
+            self.temperature
+        ]
         temp_info = self.temperature
         ssip_filename_list = self.system.get_ssip_file_locations()
-        solvent_filename = phasecreaterun.create_solvent_file(mole_fraction_dict_list, ssip_filename_list, temp_info, "systemsolvent", "scratch")
+        solvent_filename = phasecreaterun.create_solvent_file(
+            mole_fraction_dict_list,
+            ssip_filename_list,
+            temp_info,
+            "systemsolvent",
+            "scratch",
+        )
         self.assertEqual("scratch/systemsolvent_298.0K.xml", solvent_filename)
         with open(solvent_filename, "r") as act_file:
             actual_contents = act_file.read()
             with open(self.expected_solvent_file, "r") as exp_file:
                 expected_contents = exp_file.read()
                 self.assertMultiLineEqual(expected_contents, actual_contents)
+
     def test_create_scratch_dir(self):
         """Test scratch dir exists.
 
@@ -171,6 +216,7 @@ class PhaseXMLCreatorRunnerTestCase(unittest.TestCase):
 
         """
         self.assertTrue(pathlib.Path("scratch").is_dir())
+
     def test_create_solvent_filename(self):
         """Test expected string produced.
 
@@ -180,8 +226,11 @@ class PhaseXMLCreatorRunnerTestCase(unittest.TestCase):
 
         """
         expected_filename = "scratch/systemsolvent_298.0K.xml"
-        actual_filename = phasecreaterun.create_solvent_filename("scratch", self.temperature, "systemsolvent")
+        actual_filename = phasecreaterun.create_solvent_filename(
+            "scratch", self.temperature, "systemsolvent"
+        )
         self.assertEqual(expected_filename, actual_filename)
+
     def test_create_phase_filename(self):
         """Test expected string produced.
 
@@ -193,6 +242,7 @@ class PhaseXMLCreatorRunnerTestCase(unittest.TestCase):
         expected_filename = "scratch/systemphase.xml"
         actual_filename = phasecreaterun.create_phase_filename("scratch", "systemphase")
         self.assertEqual(expected_filename, actual_filename)
+
     def test_create_temperaturestring(self):
         """Test expected string produced.
 
@@ -203,4 +253,4 @@ class PhaseXMLCreatorRunnerTestCase(unittest.TestCase):
         """
         expected_string = "298.0K"
         actual_string = phasecreaterun.create_temperaturestring(298.0, "KELVIN")
-        self.assertEqual(expected_string, actual_string)
\ No newline at end of file
+        self.assertEqual(expected_string, actual_string)
diff --git a/phasecalculator/test/runnerstest/similarityanalysisrunnertest.py b/phasecalculator/test/runnerstest/similarityanalysisrunnertest.py
index f95a0d8..3618b03 100755
--- a/phasecalculator/test/runnerstest/similarityanalysisrunnertest.py
+++ b/phasecalculator/test/runnerstest/similarityanalysisrunnertest.py
@@ -36,8 +36,10 @@ logging.basicConfig()
 LOGGER = logging.getLogger(__name__)
 LOGGER.setLevel(logging.WARN)
 
+
 class SimilarityAnalysisRunnerTestCase(unittest.TestCase):
     """Test case for similarity analysis."""
+
     def setUp(self):
         """Set up before tests.
 
@@ -48,21 +50,42 @@ class SimilarityAnalysisRunnerTestCase(unittest.TestCase):
         """
         self.Popen = MockPopen()
         self.r = Replacer()
-        self.r.replace('phasecalculator.runners.phasetransferrunner.subprocess.call', self.Popen)
+        self.r.replace(
+            "phasecalculator.runners.phasetransferrunner.subprocess.call", self.Popen
+        )
         self.addCleanup(self.r.restore)
         parent_directory = pathlib.Path(__file__).parents[1]
-        self.example_jar = (parent_directory / "resources" /"example.jar").absolute().as_posix()
-        self.phase_filename = (parent_directory /"resources" / "expected_phase.xml").absolute().as_posix()
-        self.solvent_filename  = (parent_directory /"resources" / "expected_solvent.xml").absolute().as_posix()
-        self.free_output_filename = (parent_directory /"resources" / "expected_freeenergy.xml").absolute().as_posix()
+        self.example_jar = (
+            (parent_directory / "resources" / "example.jar").absolute().as_posix()
+        )
+        self.phase_filename = (
+            (parent_directory / "resources" / "expected_phase.xml")
+            .absolute()
+            .as_posix()
+        )
+        self.solvent_filename = (
+            (parent_directory / "resources" / "expected_solvent.xml")
+            .absolute()
+            .as_posix()
+        )
+        self.free_output_filename = (
+            (parent_directory / "resources" / "expected_freeenergy.xml")
+            .absolute()
+            .as_posix()
+        )
         self.directory = simrun.generate_directory("sim", 298.0, "KELVIN")
         self.energy_xmlfile = "sim/298_0K/1-butanol0.165water0.835free.xml"
         self.poly_file = "sim/298_0K/1-butanol0.165water0.835free_poly_fit_split.csv"
-        self.out_res, self.filename_list = simrun.extract_solvents_and_generate_polynomials(self.solvent_filename, self.free_output_filename, self.directory)
-        self.solv_energy_dict = {"solvent_filename":self.solvent_filename,
-                                 "energy_filename":self.free_output_filename,
-                                 "temperature_value":298.0,
-                                 "temperature_units":"KELVIN"}
+        self.out_res, self.filename_list = simrun.extract_solvents_and_generate_polynomials(
+            self.solvent_filename, self.free_output_filename, self.directory
+        )
+        self.solv_energy_dict = {
+            "solvent_filename": self.solvent_filename,
+            "energy_filename": self.free_output_filename,
+            "temperature_value": 298.0,
+            "temperature_units": "KELVIN",
+        }
+
     def tearDown(self):
         """Clean up after tests.
 
@@ -79,8 +102,9 @@ class SimilarityAnalysisRunnerTestCase(unittest.TestCase):
                 elif os.path.isdir(file_path):
                     shutil.rmtree(file_path)
             except Exception as e:
-                LOGGER.error('Failed to delete %s. Reason: %s', file_path, e)
+                LOGGER.error("Failed to delete %s. Reason: %s", file_path, e)
         os.rmdir("sim")
+
     def test_run_similarity_analysis(self):
         """Test
 
@@ -91,6 +115,7 @@ class SimilarityAnalysisRunnerTestCase(unittest.TestCase):
         """
         simrun.run_similarity_analysis([self.poly_file], "all", "sim")
         self.assertTrue((pathlib.Path("sim") / "similaritymatrix.csv").is_file())
+
     def test_extract_all_solvents_and_generate_polynomials(self):
         """Test
 
@@ -99,9 +124,12 @@ class SimilarityAnalysisRunnerTestCase(unittest.TestCase):
         None.
 
         """
-        out_res, filename_list = simrun.extract_all_solvents_and_generate_polynomials([self.solv_energy_dict], "sim")
+        out_res, filename_list = simrun.extract_all_solvents_and_generate_polynomials(
+            [self.solv_energy_dict], "sim"
+        )
         self.assertListEqual([0], out_res)
         self.assertListEqual([self.poly_file], filename_list)
+
     def test_generate_directory(self):
         """Test
 
@@ -111,6 +139,7 @@ class SimilarityAnalysisRunnerTestCase(unittest.TestCase):
 
         """
         self.assertTrue(pathlib.Path(self.directory).is_dir())
+
     def test_extract_solvents_and_generate_polynomials(self):
         """Test
 
@@ -121,6 +150,7 @@ class SimilarityAnalysisRunnerTestCase(unittest.TestCase):
         """
         self.assertListEqual([0], self.out_res)
         self.assertListEqual([self.poly_file], self.filename_list)
+
     def test_run_free_energy_calculation(self):
         """Test
 
@@ -129,10 +159,26 @@ class SimilarityAnalysisRunnerTestCase(unittest.TestCase):
         None.
 
         """
-        expected_args = ["java", "-jar", self.example_jar, '--energies',
-                         'solvationtotal', "--calc", "--conccalc",
-                         "-o", self.free_output_filename,
-                         "--solvent", self.solvent_filename,
-            "--solute", simrun.phaserun.pureinf.SINGLE_SSIP_SOLUTE_FILE, "--temperatureUnit", "KELVIN", "-t", "298.0"]
-        process = simrun.run_free_energy_calculation(self.example_jar, self.free_output_filename, self.solvent_filename)
-        self.assertListEqual(expected_args, process.args)
\ No newline at end of file
+        expected_args = [
+            "java",
+            "-jar",
+            self.example_jar,
+            "--energies",
+            "solvationtotal",
+            "--calc",
+            "--conccalc",
+            "-o",
+            self.free_output_filename,
+            "--solvent",
+            self.solvent_filename,
+            "--solute",
+            simrun.phaserun.pureinf.SINGLE_SSIP_SOLUTE_FILE,
+            "--temperatureUnit",
+            "KELVIN",
+            "-t",
+            "298.0",
+        ]
+        process = simrun.run_free_energy_calculation(
+            self.example_jar, self.free_output_filename, self.solvent_filename
+        )
+        self.assertListEqual(expected_args, process.args)
diff --git a/phasecalculator/test/runnerstest/vleanalysisrunnertest.py b/phasecalculator/test/runnerstest/vleanalysisrunnertest.py
index 4e1b713..06d4f93 100755
--- a/phasecalculator/test/runnerstest/vleanalysisrunnertest.py
+++ b/phasecalculator/test/runnerstest/vleanalysisrunnertest.py
@@ -33,8 +33,10 @@ logging.basicConfig()
 LOGGER = logging.getLogger(__name__)
 LOGGER.setLevel(logging.WARN)
 
+
 class VLEAnalysisRunnerTestCase(unittest.TestCase):
     """Test case for VLE analysis runner methods."""
+
     def setUp(self):
         """Set up before tests.
 
@@ -45,12 +47,25 @@ class VLEAnalysisRunnerTestCase(unittest.TestCase):
         """
         self.Popen = MockPopen()
         self.r = Replacer()
-        self.r.replace('phasecalculator.runners.phasetransferrunner.subprocess.call', self.Popen)
+        self.r.replace(
+            "phasecalculator.runners.phasetransferrunner.subprocess.call", self.Popen
+        )
         self.addCleanup(self.r.restore)
         self.parent_directory = pathlib.Path(__file__).parents[1]
-        self.example_jar = (self.parent_directory / "resources" /"example.jar").absolute().as_posix()
-        self.phase_filename = (self.parent_directory /"resources" / "expected_phase.xml").absolute().as_posix()
-        self.phase_output_filename = (self.parent_directory /"resources" / "expected_phaseout.xml").absolute().as_posix()
+        self.example_jar = (
+            (self.parent_directory / "resources" / "example.jar").absolute().as_posix()
+        )
+        self.phase_filename = (
+            (self.parent_directory / "resources" / "expected_phase.xml")
+            .absolute()
+            .as_posix()
+        )
+        self.phase_output_filename = (
+            (self.parent_directory / "resources" / "expected_phaseout.xml")
+            .absolute()
+            .as_posix()
+        )
+
     def tearDown(self):
         """Clean up after tests.
 
@@ -59,6 +74,7 @@ class VLEAnalysisRunnerTestCase(unittest.TestCase):
         None.
 
         """
+
     def test_run_vle_calculation(self):
         """Test expected system call is made.
 
@@ -67,9 +83,21 @@ class VLEAnalysisRunnerTestCase(unittest.TestCase):
         None.
 
         """
-        expected_args = ["java", "-jar", self.example_jar,"--phaseOut",
-                         "--phaseCollectionList", "--conccalc",
-            "--gascalc", "--calc", "--phaseFile", self.phase_filename,
-                      "-o", self.phase_output_filename]
-        process = vlerun.run_vle_calculation(self.example_jar, self.phase_filename, self.phase_output_filename)
-        self.assertListEqual(expected_args, process.args)
\ No newline at end of file
+        expected_args = [
+            "java",
+            "-jar",
+            self.example_jar,
+            "--phaseOut",
+            "--phaseCollectionList",
+            "--conccalc",
+            "--gascalc",
+            "--calc",
+            "--phaseFile",
+            self.phase_filename,
+            "-o",
+            self.phase_output_filename,
+        ]
+        process = vlerun.run_vle_calculation(
+            self.example_jar, self.phase_filename, self.phase_output_filename
+        )
+        self.assertListEqual(expected_args, process.args)
-- 
GitLab