simple test failing :(

milestone_2
Oli 3 years ago
parent 30c4715f14
commit e2ff8d395c

2
.gitignore vendored

@ -2,3 +2,5 @@ petsc/
petsc4py/ petsc4py/
openmpi-2.1.1/ openmpi-2.1.1/
openmpi-2.1.1.tar.bz2 openmpi-2.1.1.tar.bz2
tests/integration/tmp_output/
output/

@ -6,6 +6,13 @@ import os
import sys import sys
from tools.Prealization import realization from tools.Prealization import realization
CONFIG_FILE_PATH = os.environ['CONFIG_FILE_PATH']
print(CONFIG_FILE_PATH)
dir_path = os.path.dirname(os.path.realpath(__file__))
print(dir_path)
def main(): def main():
comm = MPI.COMM_WORLD comm = MPI.COMM_WORLD
@ -25,7 +32,7 @@ def main():
def sequential(): def sequential():
comm = MPI.COMM_WORLD comm = MPI.COMM_WORLD
conffile = './config.ini' conffile = CONFIG_FILE_PATH
parser,iterables = get_config(conffile) parser,iterables = get_config(conffile)
njobs = DotheLoop(-1,parser,iterables) njobs = DotheLoop(-1,parser,iterables)
start_job=0 start_job=0
@ -35,7 +42,7 @@ def sequential():
def manager(): def manager():
comm = MPI.COMM_WORLD comm = MPI.COMM_WORLD
conffile = './config.ini' conffile = CONFIG_FILE_PATH
parser,iterables = get_config(conffile) parser,iterables = get_config(conffile)
njobs = DotheLoop(-1,parser,iterables) njobs = DotheLoop(-1,parser,iterables)
start_job=0 start_job=0

@ -18,9 +18,9 @@ cd openmpi-2.1.1
make all make all
make install make install
echo "export PATH=\$PATH:\$HOME/opt/openmpi/bin" >> $HOME/.bashrc echo "export PATH=\$PATH:\$HOME/opt/openmpi/bin" >> $HOME/.$1rc
echo "export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:\$HOME/opt/openmpi/lib" >> $HOME/.bashrc echo "export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:\$HOME/opt/openmpi/lib" >> $HOME/.$1rc
source ~/.$1rc source ~/.$1rc
@ -52,7 +52,7 @@ conda activate py2_7
python --version python --version
pip install --user numpy scipy matplotlib ipython jupyter pandas sympy nose pip install --user numpy scipy matplotlib ipython jupyter pandas sympy nose mpi4py
# setup petsc # setup petsc

@ -0,0 +1,44 @@
[General]
simDir=tests/integration/tmp_output
startJob=0
[Iterables]
p=[10,39,15]
seeds=[5462,2]
lc=[4]
connectivity=[1,2,3]
variances=[1]
[Generation]
Nx = 16
Ny = 16
Nz = 16
variogram_type=1
binary = yes
kh = 100
kl = 0.01
compute_lc = yes
lcBin=yes
genera=yes
[Connectivity]
keep_aspect= yes
block_size = 4
indicators_MinBlockSize =4
Max_sample_size = 12
compGconec= 1
conec=yes
[Solver]
num_of_cores = 1
ref = 2
solve = yes
rtol = 1e-4
[K-Postprocess]
MinBlockSize =1
Max_sample_size = 4
kperm=yes
postprocess=yes
SaveVfield=yes

@ -0,0 +1,78 @@
import filecmp
import os.path
import numpy as np
def are_dir_trees_equal(dir1, dir2):
"""
Compare two directories recursively. Files in each directory are
assumed to be equal if their names and contents are equal.
@param dir1: First directory path
@param dir2: Second directory path
@return: True if the directory trees are the same and
there were no errors while accessing the directories or files,
False otherwise.
"""
dirs_cmp = filecmp.dircmp(dir1, dir2)
if len(dirs_cmp.left_only)>0 or len(dirs_cmp.right_only)>0 or \
len(dirs_cmp.funny_files)>0:
print("error aca :(")
return False
(_, mismatch, errors) = filecmp.cmpfiles(
dir1, dir2, dirs_cmp.common_files, shallow=False)
if (len(mismatch)>0 or len(errors)>0) and dirs_cmp.common_files[0] != 'config.ini':
print(dir1)
print(dir2)
#print(dirs_cmp.common_files)
print(mismatch)
print(errors)
print("error aca 2 :(")
return False
print(dirs_cmp.common_dirs)
for common_dir in dirs_cmp.common_dirs:
print(common_dir)
new_dir1 = os.path.join(dir1, common_dir)
new_dir2 = os.path.join(dir2, common_dir)
are_equal = are_dir_trees_equal(new_dir1, new_dir2)
if not are_equal:
print("error aca 3 :(")
return False
print("todo ok!")
print(dir1, dir2)
return True
def equal_binaries(path_original, path):
binary_original = np.load(path_original)
binary = np.load(path)
diffs = binary_original - binary
comparisons = np.array([abs(x) < 0.001 for x in diffs]) #NO ME DA TAMPOCO CON ESTE ERROR
if comparisons.all():
return True
return False
def test():
os.chdir('../..') #LO COMENTE PARA EVITAR VOLVER A CORRERLO
#config_file = os.path.abspath("./tests/integration/conf_test.ini")
#os.system("CONFIG_FILE_PATH="+ config_file + " mpirun python mpirunner.py")
#are_equal = are_dir_trees_equal("./tests/integration/tmp_output","./test_loop")
for i in range(90): # HABRIA QUE HACER ESTO PERO PARA TODOS
path = './tests/integration/tmp_output/{}/D.npy'.format(i)
path_original = './test_loop/{}/D.npy'.format(i)
if not equal_binaries(path_original, path):
print("Failure :( on {}".format(i))
return
print("Success!")
test()

@ -9,13 +9,15 @@ from shutil import copyfile
from solver.comp_Kperm_scale import comp_kperm_sub from solver.comp_Kperm_scale import comp_kperm_sub
from solver.Ndar import PetscP from solver.Ndar import PetscP
CONFIG_FILE_PATH = os.environ['CONFIG_FILE_PATH']
def realization(job): def realization(job):
if job==-1: if job==-1:
return return
conffile='./config.ini' conffile=CONFIG_FILE_PATH
parser, iterables = get_config(conffile) parser, iterables = get_config(conffile)
start_job=int(parser.get('General',"startJob")) start_job=int(parser.get('General',"startJob"))
@ -27,11 +29,11 @@ def realization(job):
datadir=rdir+str(job)+'/' datadir=rdir+str(job)+'/'
create_dir(datadir,job) create_dir(datadir,job)
if job==0: if job==0:
copyfile(conffile,rdir+conffile[2:]) copyfile(conffile,rdir+"config.ini")
genera=parser.get('Generation',"genera") genera=parser.get('Generation',"genera")
if genera!='no': if genera!='no':
os.system('python ./tools/generation/fftma_gen.py '+ datadir +' '+str(job)+' '+conffile) os.system('CONFIG_FILE_PATH='+CONFIG_FILE_PATH+ ' python ./tools/generation/fftma_gen.py '+ datadir +' '+str(job))
nr= DotheLoop(job,parser, iterables)[3] -iterables['seeds'][0] nr= DotheLoop(job,parser, iterables)[3] -iterables['seeds'][0]

Binary file not shown.

@ -2,12 +2,18 @@ import numpy as np
import configparser import configparser
import json import json
import os
dir_path = os.path.dirname(os.path.realpath(__file__))
print(dir_path)
def get_config(conffile): def get_config(conffile):
parser = configparser.ConfigParser() parser = configparser.ConfigParser()
parser.read(conffile) print(parser.read(conffile))
print(parser)
cons=json.loads(parser.get('Iterables',"connectivity")) cons=json.loads(parser.get('Iterables',"connectivity"))
ps=json.loads(parser.get('Iterables',"p")) ps=json.loads(parser.get('Iterables',"p"))

Binary file not shown.

@ -8,6 +8,7 @@ from variograma import get_lc
from scipy.interpolate import interp1d from scipy.interpolate import interp1d
import sys import sys
import time import time
import os
@ -153,5 +154,6 @@ def binarize(kc,kh,kl,p):
kc=np.where(kc<t1, kl,kh) kc=np.where(kc<t1, kl,kh)
return kc return kc
CONFIG_FILE_PATH = os.environ["CONFIG_FILE_PATH"]
fftmaGenerator(sys.argv[1],int(sys.argv[2]),sys.argv[3]) fftmaGenerator(sys.argv[1],int(sys.argv[2]),CONFIG_FILE_PATH)

Loading…
Cancel
Save