Source code for defermi.tools.testing.chempots

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Wed Jun 14 15:28:02 2023

@author: villa
"""

from .core import DefermiTest


[docs] class ChempotsTest(DefermiTest): """ Provides methods to test Chempots objects """
[docs] def assert_Chempots_equal(self,chempots1, chempots2, **kwargs): """ Both Chempots or dictionary objects are allowed as input """ dict1 = chempots1 if type(chempots1) == dict else chempots1.mu dict2 = chempots2 if type(chempots2) == dict else chempots2.mu self.assert_object_almost_equal(dict1, dict2, **kwargs)
[docs] class ReservoirsTest(ChempotsTest): """ Provides methods to test Reservoirs objects """
[docs] def assert_Reservoirs_equal(self,reservoirs1, reservoirs2, check_reference=True, **kwargs): """ Reservoirs dictionary, reference chempots and are_chempots_delta are checked. Set check_reference to False to check only reservoirs dictionary. """ keys1 = list(reservoirs1.keys()) keys2 = list(reservoirs2.keys()) self.assert_object_almost_equal(keys1, keys2, **kwargs) for key in reservoirs1: chempots1 = reservoirs1[key] chempots2 = reservoirs2[key] self.assert_Chempots_equal(chempots1, chempots2, **kwargs) if check_reference: self.assert_Chempots_equal(reservoirs1.mu_refs, reservoirs2.mu_refs, **kwargs) assert reservoirs1.are_chempots_delta == reservoirs2.are_chempots_delta