From df1b7ae0110736d189c1de4cce7d95875861f919 Mon Sep 17 00:00:00 2001 From: Enzo Date: Sun, 17 Dec 2023 14:59:50 +0100 Subject: [PATCH] test model --- __pycache__/fonction.cpython-312.pyc | Bin 0 -> 3056 bytes __pycache__/testUnitaire.cpython-312.pyc | Bin 0 -> 2600 bytes fonction.py | 49 +++++++++++++++--- testFinal.py | 60 +---------------------- testUnitaire.py | 13 +++-- 5 files changed, 55 insertions(+), 67 deletions(-) create mode 100644 __pycache__/fonction.cpython-312.pyc create mode 100644 __pycache__/testUnitaire.cpython-312.pyc diff --git a/__pycache__/fonction.cpython-312.pyc b/__pycache__/fonction.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d2f50f87543ab3af5c4bf60e0e8c33178ab1e533 GIT binary patch literal 3056 zcmai0O>7&-6`uX&QWQ!3TDE=+$`+F{h*T-H9ar!V6e)()L~0NzEkdYJSKOhr47t0R zT^g1_1`J>z5o$m=7%&wWhz>m{a1S}=o=bsT$Wnobu@e|b4)sm3dD4YC<*=Nu|J1`ST>o_>w!IZPOIsgyQ7Dq0RzbVBr18UWO<=nhT< zIq3C2usdmdk2}V>IsYoOlfNJJmdcPVI+aZ;ZPTFPE!s;Nobu?&oSDs78&;V!zS zmBNeIu~REl$=L?Zx(ul?fBf|J3Y4pr!-sd z?XSo^kK0Z@MIq(F$MO&1_VwgivMiVXw9#4%$4kazHS&@Dp?x=19xC757^$5|Y^yKT z)l)latg6QT-o5EnUcOX)@p5hO%C>s-nTk65b~?^hJI-!SZS_@$&R1TYsddbj%pV4a zHs9TeU#!M2*5cz|&R63TwZYda>gl@LwWIb`)xJvqxo_0-yFK8@vtHC1S--S)sUGdA z_YVK4NT<|2B((-gQ_osZc%asLy7YQo4t_NK;q;xQ^_8`iPd=zcUf79@R3jr>y9w zilGF>?Vyk~MUK}|;Kk}_d4yyWe?bEa<8xzQgYOHJmPr{w@emF1zF3qCGNi3EOIS^V zypvNlPSYSH5+*6^cnO6nM7NePm9p5P3fo>Jtklt#gF}l6g?~S)0kFMErXkF@X%D0m6I? zC=B7fR{?L`&E8=g)LQ|02Yt$~;Sg*gbI_Tx(a}Ugr5eHS=b@mwR00tiI&_LE4q=5@#y3rmhdm*ZF>s9uxsGkQ z*kx#o#r8oEea`si>lI0x#Oa`iW2JVt=35!lEm_cy;TR_YJ*0WHB&k()W2nY6n?q_D_A!$ zamnw%e0~8Y=m9?uv30{Xe#3Ht-$ zUh}^KenH;zc(I`pT$E#ud-^%zM)*yB(k_AKd=_6JuY(Hq=ixGN?n;6ne2c~&qRxk? s;~@%tiv}K|=u^2@Xx|+V2yK=Am-i6R-4lw?SC;k=kiCd1gt+ei19J+zyZ`_I literal 0 HcmV?d00001 diff --git a/__pycache__/testUnitaire.cpython-312.pyc b/__pycache__/testUnitaire.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f70a250dcba11f8d69c6af21dc8b59645f9cdb72 GIT binary patch literal 2600 zcma);O>Epm6oAKGZ`Mtdr3tOt6snfJz(Q&~{#~z7={AKXt&$c9pspe|bps zB5eXiDi8@IjxDzyDglawK;no5hyw>M4J~SADmYXi^%f~T^?-O|uh-tD5go1O%{;&N zX5Rb8p8a)jupdGD?BDmuCmDq9&`H$Noxz3&gGIV9RVHRZcO8MaPhp zx`-@}pgBHrj^%199GBCi&q}}Z3_{K@i@-J;+eD+)&VWIS%p#NTyG!R&dDhR?NRv3G zM=WM2yT4ubihu6srp(SRuqmAS;>qYfLOKhZN&=Q)1IzQN! zSSvjON~zR%>Z8u1+ zn3F_FK8U4*SezE+B9@A(LTiwN#lhg@Y^mzmu)t!jD2W;t3gB+p5TIEFZwbqoE?70| zEypG<)j;~LN7^vPSSu`>S0A7TX~opEm>L#o=*`#)LLpgQJvQoMQ`Jp25rGaiO@NiU zx&WK5CQ)`sX@YJ@Sl8r&W?&gMw22hpPwHqWsh4O-3Vb6j^ngl&94oc}rE3ZlRF!0? zs%D6g=|e$D(^xOUPm#9(g%t&IqlJn=1;;-L3hTfv0wq&W-#-8fvg(4O2b50e&anuo zYyu@4s(_6|OBi)QNix(o(bUAd5|EOC%2qE^usD6&dPBrqLx#E}=&CG9YC+T#6~i`? zyeJD9GEeFPhP`$nL)cv}LlsU@q}d80mUJwss;G&&R4^dy!yt;rG&YJ@+ZrN-2wv`( zp`vNM?;6dcLlCT&eXiOfvkv`~*GhkX@zL}zrw`qw*F^2y*W<7L`PL7I{B3sABTkjH zz1rH7PwYPU&z&D@11~LK#!t5$F!i^a@TGCQm(I?cb-2Vhm(*u{ z&N4mIPdDhz=u+zg2M*kSW2`tc-fEDUvDUof&YW^ubHtl@tpOjJmu;_7YPTm_XY4wO zRh{`nDOQyxX5icAz23Av({_l^UiAB^q7tliZn$%Y3bBsfdG629T|l>ncCRC}cQOP0 z&=l=o$-GI$>CF3sAWmftXF-f*C#X1)o!AB9NcK1tJ5KCc;coAE>Zd)D|pmv>!W_dAq762aKFWkf^f`^(FzsfglIMMX9?DEB>GQL#CVb^v&47Jy3Vfc{ddvj+LExR# zo1?zYZWzYv-sfKkcX-Iz2M_3Ra}DU$Qw+oWfgbw{srNXZIm)cOeKWg%ExZ37qO "getUserWithData" (status_code != 200)') + exit() + return response.json() + +def sendJsonToApi(url,json): + header = {"Content-type": "application/json"} + response = requests.post(url,json,headers=header) + if ( response.status_code != 200): + print('Problème lors de l envoi des données avec l api !! -> "sendJsonToApi" (status_code != 200)') + exit() + return \ No newline at end of file diff --git a/testFinal.py b/testFinal.py index 00881d3..d8b5658 100755 --- a/testFinal.py +++ b/testFinal.py @@ -3,68 +3,13 @@ from sklearn.linear_model import LinearRegression import pandas as pd import numpy as np -import requests import logging import json from datetime import datetime +from fonction import getUserWithData,generateJsonModel,generateModele,sendJsonToApi -# --------------- Fonction ----------------- # -def generateJsonModel(model:LinearRegression): - listCoef = [] - listIntercept = [] - for i in range(0,len(model.coef_)): - listCoef.append(model.coef_[i][0]) - listIntercept.append(model.intercept_[i]) - json = {"coef":listCoef,"intercept":listIntercept} - return json - -def generateModele(dataJson): - # -- Préparation des données - arrayBpm = [] - arrayStartTime = [] - arrayTimeOfActivity = [] - - for data in dataJson: - - info = json.loads(data["json"]) - - arrayBpm.append(int(info["bpmAvg"])) - arrayTimeOfActivity.append(float(info["timeOfActivity"])) - - # Convertir la chaîne en objet datetime - dt_object = datetime.strptime(info["startTime"], "%Y-%m-%dT%H:%M:%S.%f") - # Convertir l'objet datetime en millisecondes depuis l'époque - milliseconds_since_epoch = int(dt_object.timestamp() * 1000) - arrayStartTime.append(milliseconds_since_epoch) - # -- DataFrame - data = pd.DataFrame({ - "Bpm": arrayBpm, - "TimeOfActivity": arrayTimeOfActivity - }) - # -- Régression linéaire - model = LinearRegression() - model.fit(np.array(arrayStartTime).reshape(-1,1),data) - return model - - -def getUserWithData(url:str): - response = requests.get(urlGetAllData) - if ( response.status_code != 200): - print('problème lors de l extraction des données avec l api !! -> "getUserWithData" (status_code != 200)') - exit() - return response.json() - -def sendJsonToApi(url,json): - header = {"Content-type": "application/json"} - response = requests.post(url,json,headers=header) - if ( response.status_code != 200): - print('Problème lors de l envoi des données avec l api !! -> "sendJsonToApi" (status_code != 200)') - exit() - return # ---------------- Main ------------------- # -logging.error("RUNNNNNNNN !") - urlGetAllData = "https://codefirst.iut.uca.fr/containers/SmartFit-smartfit_api/ai/data" # --- Call Api @@ -96,14 +41,13 @@ dataUser = [{ logging.error("Nombre de User : "+str(len(dataUser))) i = 0 + for user in dataUser: userUUID = user["uuid"] for category in user["categories"]: jsonTmp = {} - #Mettre la condition longueur ici - model = generateModele(category["infos"]) jsonTmp["uuid"] = userUUID diff --git a/testUnitaire.py b/testUnitaire.py index c1679a6..bfc5718 100644 --- a/testUnitaire.py +++ b/testUnitaire.py @@ -1,9 +1,16 @@ import unittest -from fonction import generateModele +from fonction import generateModele,generateJsonModel class Testing(unittest.TestCase): def test_model(self): - self.assertEqual(generateModele(),1) + data = [{'json': '{"bpmAvg":114,"bpmMax":145,"bpmMin":79,"denivelePositif":449.00000000000114,"deniveleNegatif":70.00000000000114,"altitudeMax":402.4,"altitudeMin":369.20000000000005,"altitudeAvg":382.2932358318101,"temperatureMax":22,"temperatureMin":18,"temperatureAvg":20,"vitesseMax":4.62,"vitesseMin":0.0,"vitesseAvg":1.3393414634146392,"startTime":"2023-12-10T03:12:54.000","timeOfActivity":2061.82,"distance":2131.0,"calories":215,"steps":1168}'}, {'json': '{"bpmAvg":118,"bpmMax":146,"bpmMin":102,"denivelePositif":448.80000000000007,"deniveleNegatif":55.80000000000007,"altitudeMax":406.6,"altitudeMin":375.4,"altitudeAvg":386.7921763869132,"temperatureMax":24,"temperatureMin":21,"temperatureAvg":22,"vitesseMax":2.3,"vitesseMin":0.0,"vitesseAvg":1.7642135231316907,"startTime":"2023-12-12T17:17:43.000","timeOfActivity":1445.47,"distance":2449.0,"calories":170,"steps":1368}'}, {'json': '{"bpmAvg":111,"bpmMax":122,"bpmMin":103,"denivelePositif":395.19999999999993,"deniveleNegatif":23.799999999999955,"altitudeMax":375.20000000000005,"altitudeMin":369.79999999999995,"altitudeAvg":372.7532258064513,"temperatureMax":30,"temperatureMin":23,"temperatureAvg":25,"vitesseMax":2.56,"vitesseMin":0.0,"vitesseAvg":1.7127125506072893,"startTime":"2023-12-09T19:16:43.000","timeOfActivity":255.62,"distance":466.0,"calories":30,"steps":255}'}] + model = generateJsonModel(generateModele(data)) + self.assertEqual(model["coef"][0],2.4008223334695094e-08) + self.assertEqual(model["coef"][1],1.8702979299828552e-06) + self.assertEqual(model["intercept"][0],-40753.409070545466) + self.assertEqual(model["intercept"][1],-3182440.4230727013) if __name__ == '__main__': - unittest.main() \ No newline at end of file + unittest.main() + +#python -m unittest testUnitaire.py \ No newline at end of file