In [1]:
from pycalphad import Database
from pycalphad.tests.datasets import DIFFUSION_TDB, ALFE_TDB, ALNIPT_TDB
In [2]:
dbf = Database(ALNIPT_TDB)
In [3]:
other = Database.from_string(dbf.to_string(fmt='tdb'), fmt='tdb')
print(dbf.phases.keys() == other.phases.keys())
for phase in dbf.phases.keys():
if dbf.phases[phase] != other.phases[phase]:
print(phase + ' differs')
else:
print(phase + ' eq')
In [4]:
dbf == other
Out[4]:
In [5]:
def param_sort_key(x):
return x['phase_name'], x['parameter_type'], x['constituent_array'], x['parameter_order'], x['diffusing_species']
self_params = sorted(dbf._parameters.all(), key=param_sort_key)
other_params = sorted(other._parameters.all(), key=param_sort_key)
self_params == other_params
for s, o in zip(self_params, other_params):
if s != o:
if s['parameter'] != o['parameter']:
print('params differ')
print('self', s['parameter'])
print('other', o['parameter'])
else:
print('eq')
In [6]:
one = sorted(self_params[0].items(), key=operator.itemgetter(0))
In [ ]:
two = sorted(other_params[0].items(), key=operator.itemgetter(0))
In [ ]:
one == two
In [ ]:
one[2][1]
In [ ]:
two[2][1]
In [ ]:
one[2][1].args[1].args[1] == two[2][1].args[1].args[1]
In [ ]:
import numpy as np
np.array(one[2][1].args[1].args[0], dtype=np.longdouble)
In [ ]:
np.array(two[2][1].args[1].args[0], dtype=np.longdouble)
In [ ]:
from sympy import sympify
sympy.evaluate.global_evaluate = False
sympify('ln(-5.01E-4, evaluate=False)', evaluate=False).__class__
In [ ]:
sympify('ln(x)', evaluate=False).xreplace({'x': 5.01E-4})
In [ ]:
sympy.S(5.01e-4).__class__
In [ ]: