From 8fd8abf79acd7eea9af4ef993767dfc879ef17ad Mon Sep 17 00:00:00 2001 From: Remi Ehounou Date: Mon, 24 May 2021 00:19:49 -0400 Subject: [PATCH] added @ scheme for internal funcs --- .vscode/launch.json | 9 ++-- MDAF/MDAF.py | 4 ++ MDAF/__pycache__/MDAF.cpython-39.pyc | Bin 0 -> 7662 bytes MDAF/__pycache__/__init__.cpython-39.pyc | Bin 156 -> 249 bytes tests/__pycache__/Bukin2.cpython-39.pyc | Bin 410 -> 5638 bytes .../test_flows.cpython-39-pytest-6.2.4.pyc | Bin 2431 -> 2930 bytes tests/test_flows.py | 40 +++++++++++++++--- 7 files changed, 45 insertions(+), 8 deletions(-) create mode 100644 MDAF/__pycache__/MDAF.cpython-39.pyc diff --git a/.vscode/launch.json b/.vscode/launch.json index 46d4532..c6cff8f 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -4,9 +4,12 @@ // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ - - - + { + "name": "Python: Module", + "type": "python", + "request": "launch", + "module": "MDAF" + }, { "name": "Python: Current File", "type": "python", diff --git a/MDAF/MDAF.py b/MDAF/MDAF.py index d190ebb..bd96093 100644 --- a/MDAF/MDAF.py +++ b/MDAF/MDAF.py @@ -157,6 +157,8 @@ def writerepresentation(funcpath, charas): file.write(newContent) def representfunc(funcpath, forced = False): + if (funcpath.find('@') == 0): funcpath = path.dirname(__file__) + '/TestFunctions/' + funcpath[1:] + #defining the function name funcname = path.splitext(path.basename(funcpath))[0] # loading the function to be represented @@ -217,6 +219,8 @@ def representfunc(funcpath, forced = False): def doe(heuristicpath, testfunctionpaths, args): + for i,path in enumerate(testfunctionpaths): if (path.find('@') == 0): testfunctionpaths[i] = path.dirname(__file__) + '/TestFunctions/' + testfunctionpaths[1:] + if (heuristicpath.find('@') == 0): heuristicpath = path.dirname(__file__) + '/TestFunctions/' + heuristicpath[1:] #defining the function's name funcnames = [path.splitext(path.basename(funcpath))[0] for funcpath in testfunctionpaths] diff --git a/MDAF/__pycache__/MDAF.cpython-39.pyc b/MDAF/__pycache__/MDAF.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e140d5d546aecc0485ed12f3a177af54c11a506d GIT binary patch literal 7662 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 literal 0 HcmV?d00001 diff --git a/MDAF/__pycache__/__init__.cpython-39.pyc b/MDAF/__pycache__/__init__.cpython-39.pyc index 8a31932afa6b9c53e379d8e5655ce653ea5ba283..da1d00d3a6d3801f3e58d4b3a63f1c38adac90b3 100644 GIT binary patch literal 249 zcmYj~u?oU45QdYcii&*=v4ainA}UfBb#dzwOB*qeG?KJ}k0icPS0`V=$-7P-nAJ`@_Z6had zPI_6@m!>LkpekSITBo@#tc3w9tvtqIJ3MUHX@YS0r(=i^@FcE}j`+^`)f&m2G>UI+ p(HKbf9AC|Ls@|_RopT{nrD`FP+oK&Uj4c~2mlOg#CXVTt{s8o{IAQ<* delta 105 zcmey#IET?Ak(ZZ?0SGSLS(yN$AA<;FzzF0x0C6!3kVs(&X3%8xTggxa5=Ice94Bs6 dm9>^w`pO(vJVN%k*~cL3E-{QoLmpW(IEc$@6}0=oB-$z^X2uKe zEy-det^A+<%WMHJHVB3)bT#5kC$4Ft;2ToE;(qS7% zm?+*X z1MAFVLonsJ7`@G$@(2(W&&%)tM+Fi##B(uRW=k*+=v8JZP(Y9aXPJfbQc%`t_*b#OQ5jfxZye60nBRx= z_f4SP5sZ(`WF7di!qt@^2H<46K0`&VYvBm2rS{fYrXIimBRbOTEGcE%X_$(B5Mj5S zoU`RPpEaUm@NfAqLak!gLshA<$QO-cdZp?LR>}M78Z?J(cB3%Mi1J9R+-XGr{T@?F`qzy$z@zZ8KJK zr9mI-^iLSBeA@KL8gREVW~*coRa&)&ekj^yMm2xl-yY}d>A0~9;&emR39i)e1(sbS znVFh#%K#(Acd$A$YO!Jq>EI5Hl=PaUjirDI#|{gaDzESbJ0LtATmY-yb3_^a3qvkI zUJn?N?HD0o>*z#TIb}W&8KHOxL(JXaiDra;Az6$8)ELF2u>9yEa~7kB>3}3r)`AaB z-eWsq&O-TOGeqR6j7EuN0|`KDQPj|6n(c5fs&kM;Or;U#G>O{mT9lNb9vX~+OgaKb zNK2SvnDXE$Lu}HP3&IEyG})z;GB-s1 zka^I%6Lc|!(Y75LUn_-E?0}Uq0>m1@PK5=j9a-yR{PKu**ntrMWvE@aN031kVgx_Dv+v7rP7SuTEf!!KB?v(6lU3C>g3-)o=u+3H2GSLO3i3Tkq-Pv_S@PjOqdoii^RdsRN~^sd%8 zkA4v}e#{tlBNS(Ra`BI~Mu$lxVv_&Hz}ylra>iSVCZy0rNda_@4Rb@C6?1GAkr;KW z3$?F{(^au97H0)6vn0Ta3GP5I;;rb(&o_U6_}5R*KDoe`whXB{~w@2__8{?-0Y`Pp!;{=1H~=hr`)FDK`-;^VmMAH0(P0FBBvW&i*H delta 38 scmZqEnZ?YP$ji&c00f)(Rwry@n8??}R24mOYV_nt(F#V+$(KY;0Ks(&4gdfE diff --git a/tests/__pycache__/test_flows.cpython-39-pytest-6.2.4.pyc b/tests/__pycache__/test_flows.cpython-39-pytest-6.2.4.pyc index fc1ce98abc2a3e3ea57cd4e80172a30c8ea373b8..1635b6a97d29c6610a5ce6bb84f312d0079a8bde 100644 GIT binary patch delta 1337 zcmcIj%}*0i5Pxs??RHxV!Xh6cXe$LuH6Z9k0s-;sVoD+qBQaTJr8RA?$OQ`?e0xXj)r3{w7 zrj{i)uq{#WfD8hSy!b&MkFC||hMFnxv}JmfH}p|sG;+f#a?7!7*D~iKGs(Ip-by3l zqZHHYs>d8Fm)X!VB|BYAx%Wg|9;X9hMV_nnxR&Eu4_%AfsT`g=VJxf*fG{S9r7+d# z85W|Ou{E$X_b$XpJLpJcxi~CwT{{ zg0AC-fhG)s=J{>OLNl9fIRT&lr7bPa$-3fchGD1jmSK1y!^juRQVw*nBOjSQhOv(~ z6KG9^D{#<(!5M%?HC;s5hY2*QQ{D?d?YW1Ll|soamfZ6~RTA@c#z)W&OW-FFPPMxE z5wUI_0XPTZNB|n;5wQ>$`O_-ARBqFT_y!md*VX9Joi8#WpELgRb&=y3)Ws9Ezq1=O z-h+P?-YZ_Kv&(JuVf70jj=z9RrHqE*-5m1g?efZ%!&4?+DMNHlyjRAmux+fiyDL%| z_RQav0PKp!$1w5`z~;cxYBrxQmn4=&m;-Pr*FY&&fgdRM35byeCOKb{umiODY@8kF0{^r-@pJbvkGGY-tUlX67 zEa_hoX%Hpzthfu=9Ua34+6tPti(o?+Y}%zh3BXot_Lg=PAJA8O^xa&S1*}i^NLTfh zKNJ5s7y|}z8V3U|Q48W=L1$(i3pa4k;WCnO z{;0RK&%{S|zHkb=dHOg^%1;#`hUQTO1Gp-R=8`C?Z?dv_ANV-FhB~7r$u=tv)WSu6 z`gl4T5!Fm%B8xU4o{orLYmaHCEIycL1n4(G6D#`cV*Q6g$kSSMeqQH*U3n!0KLoeT zTAR#3# diff --git a/tests/test_flows.py b/tests/test_flows.py index 71285f5..7ff674d 100644 --- a/tests/test_flows.py +++ b/tests/test_flows.py @@ -9,20 +9,39 @@ from MDAF.MDAF import doe # Testing the test function representation workflow class Test_representfunc(unittest.TestCase): - def testoutput(self): + def testexternalfuncs(self): """ Test that the function can calculate the representation and write to the function docstring """ funcpath = 'tests/Bukin2.py' - funcpath_backup = 'tests/Bukin2.py.old' + #funcpath_backup = 'tests/Bukin2.py.old' + results = representfunc(funcpath, forced = True) with open(funcpath,"r") as file: content = file.read() reprCheck = bool(content.find('#_# Represented: 1')) - os.remove(funcpath) - os.replace(funcpath_backup, funcpath) + #os.remove(funcpath) + #os.replace(funcpath_backup, funcpath) + self.assertTrue(reprCheck) + self.assertIsInstance(results, dict) + + def testinternalfuncs(self): + """ + Test that the function can calculate the representation and write to the function docstring + """ + funcpath = '@Bukin2.py' + #funcpath_backup = 'tests/Bukin2.py.old' + + results = representfunc(funcpath, forced = True) + + with open(funcpath,"r") as file: + content = file.read() + reprCheck = bool(content.find('#_# Represented: 1')) + + #os.remove(funcpath) + #os.replace(funcpath_backup, funcpath) self.assertTrue(reprCheck) self.assertIsInstance(results, dict) @@ -39,7 +58,7 @@ class Test_flaccoInstall(unittest.TestCase): # Testing the DOE execution workflow class Test_DOE(unittest.TestCase): - def testoutput(self): + def testexternalfuncs(self): """ Test that it can execute a DOE and output the dictionarry of the results """ @@ -48,6 +67,17 @@ class Test_DOE(unittest.TestCase): args = {"t": 1000, "p": 0.95, "objs": 0} data = doe (heuristicpath, testfunctionpaths, args) self.assertIsInstance(data, dict) + + def testinternalfuncs(self): + """ + Test that it can execute a DOE and output the dictionarry of the results + """ + testfunctionpaths = ["@Bukin2.py"] + heuristicpath = "@SimmulatedAnnealing.py" + args = {"t": 1000, "p": 0.95, "objs": 0} + data = doe (heuristicpath, testfunctionpaths, args) + print(data) + self.assertIsInstance(data, dict) # Testing the surrogate modelling workflow