inewave 1.7.4__py3-none-any.whl → 1.8.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (373) hide show
  1. inewave/__init__.py +1 -1
  2. inewave/newave/__init__.py +16 -7
  3. inewave/newave/avl_cortesfpha_nwv.py +10 -0
  4. inewave/newave/avl_desvfpha_s.py +7 -0
  5. inewave/newave/avl_desvfpha_v_q.py +7 -0
  6. inewave/newave/eco_fpha.py +10 -0
  7. inewave/newave/evap_avl_desv.py +33 -0
  8. inewave/newave/evap_cortes.py +34 -0
  9. inewave/newave/evap_eco.py +34 -0
  10. inewave/newave/fpha_avl_desv_s.py +59 -0
  11. inewave/newave/fpha_avl_desv_v_q.py +58 -0
  12. inewave/newave/fpha_cortes.py +40 -0
  13. inewave/newave/fpha_eco.py +41 -0
  14. inewave/newave/modelos/adterm.py +7 -0
  15. inewave/newave/modelos/agrint.py +2 -0
  16. inewave/newave/modelos/arquivos.py +2 -0
  17. inewave/newave/modelos/avl_cortesfpha_nwv.py +4 -0
  18. inewave/newave/modelos/avl_desvfpha_s.py +2 -0
  19. inewave/newave/modelos/avl_desvfpha_v_q.py +2 -0
  20. inewave/newave/modelos/blocos/tabelacsv.py +2 -0
  21. inewave/newave/modelos/blocos/versaomodelo.py +4 -0
  22. inewave/newave/modelos/cadic.py +2 -0
  23. inewave/newave/modelos/caso.py +4 -0
  24. inewave/newave/modelos/clast.py +2 -0
  25. inewave/newave/modelos/confhd.py +2 -0
  26. inewave/newave/modelos/conft.py +2 -0
  27. inewave/newave/modelos/cortes.py +14 -0
  28. inewave/newave/modelos/cortesh.py +20 -0
  29. inewave/newave/modelos/curva.py +2 -0
  30. inewave/newave/modelos/cvar.py +2 -0
  31. inewave/newave/modelos/dger.py +208 -0
  32. inewave/newave/modelos/dsvagua.py +2 -0
  33. inewave/newave/modelos/eafpast.py +2 -0
  34. inewave/newave/modelos/enavazb.py +2 -0
  35. inewave/newave/modelos/enavazf.py +2 -0
  36. inewave/newave/modelos/energiab.py +2 -0
  37. inewave/newave/modelos/energiaf.py +2 -0
  38. inewave/newave/modelos/energias.py +9 -0
  39. inewave/newave/modelos/engnat.py +2 -0
  40. inewave/newave/modelos/exph.py +2 -0
  41. inewave/newave/modelos/expt.py +2 -0
  42. inewave/newave/modelos/forward.py +27 -0
  43. inewave/newave/modelos/forwarh.py +2 -0
  44. inewave/newave/modelos/ghmin.py +2 -0
  45. inewave/newave/modelos/hidr.py +2 -0
  46. inewave/newave/modelos/manutt.py +2 -0
  47. inewave/newave/modelos/modif.py +32 -0
  48. inewave/newave/modelos/newavetim.py +2 -0
  49. inewave/newave/modelos/nwv_avl_evap.py +2 -0
  50. inewave/newave/modelos/nwv_cortes_evap.py +2 -0
  51. inewave/newave/modelos/nwv_eco_evap.py +2 -0
  52. inewave/newave/modelos/parp.py +45 -0
  53. inewave/newave/modelos/parpeol.py +23 -0
  54. inewave/newave/modelos/parpvaz.py +37 -0
  55. inewave/newave/modelos/patamar.py +28 -0
  56. inewave/newave/modelos/penalid.py +2 -0
  57. inewave/newave/modelos/pmo.py +103 -0
  58. inewave/newave/modelos/re.py +2 -0
  59. inewave/newave/modelos/ree.py +2 -0
  60. inewave/newave/modelos/selcor.py +5 -3
  61. inewave/newave/modelos/shist.py +10 -6
  62. inewave/newave/modelos/sistema.py +10 -0
  63. inewave/newave/modelos/term.py +2 -0
  64. inewave/newave/modelos/vazaob.py +2 -0
  65. inewave/newave/modelos/vazaof.py +2 -0
  66. inewave/newave/modelos/vazaos.py +2 -0
  67. inewave/newave/modelos/vazinat.py +2 -0
  68. inewave/newave/modelos/vazoes.py +2 -0
  69. inewave/newave/modelos/vazpast.py +2 -0
  70. inewave/newave/modelos/volref_saz.py +2 -0
  71. inewave/newave/modif.py +2 -0
  72. inewave/newave/nwv_avl_evap.py +10 -0
  73. inewave/newave/nwv_cortes_evap.py +10 -0
  74. inewave/newave/nwv_eco_evap.py +10 -0
  75. inewave/newave/pmo.py +17 -0
  76. inewave/newave/vazoes.py +2 -0
  77. inewave/nwlistcf/modelos/arquivos.py +2 -0
  78. inewave/nwlistcf/modelos/caso.py +2 -0
  79. inewave/nwlistcf/modelos/estados.py +10 -0
  80. inewave/nwlistcf/modelos/nwlistcfdat.py +2 -0
  81. inewave/nwlistcf/modelos/nwlistcfrel.py +2 -0
  82. inewave/nwlistop/__init__.py +65 -30
  83. inewave/nwlistop/c_v_rhq.py +10 -0
  84. inewave/nwlistop/c_v_rhq_s.py +10 -0
  85. inewave/nwlistop/c_v_rhv_s.py +10 -0
  86. inewave/nwlistop/celetricas.py +10 -0
  87. inewave/nwlistop/cviol_eletricasin.py +19 -0
  88. inewave/nwlistop/cviol_rhq.py +21 -0
  89. inewave/nwlistop/cviol_rhq_sin.py +19 -0
  90. inewave/nwlistop/cviol_rhv.py +21 -0
  91. inewave/nwlistop/cviol_rhv_sin.py +19 -0
  92. inewave/nwlistop/deletricas.py +10 -0
  93. inewave/nwlistop/depminuh.py +10 -0
  94. inewave/nwlistop/desvuh.py +10 -0
  95. inewave/nwlistop/dtbmax.py +10 -0
  96. inewave/nwlistop/dtbmin.py +10 -0
  97. inewave/nwlistop/dvazmax.py +10 -0
  98. inewave/nwlistop/modelos/arquivos/arquivoclassetermicasubmercadopatamar.py +2 -0
  99. inewave/nwlistop/modelos/arquivos/arquivoestacaobombeamentopatamar.py +2 -0
  100. inewave/nwlistop/modelos/arquivos/arquivoparsubmercadopatamar.py +2 -0
  101. inewave/nwlistop/modelos/arquivos/arquivoree.py +2 -0
  102. inewave/nwlistop/modelos/arquivos/arquivoreepatamar.py +2 -0
  103. inewave/nwlistop/modelos/arquivos/arquivorestricao.py +2 -0
  104. inewave/nwlistop/modelos/arquivos/arquivorestricaopatamar.py +2 -0
  105. inewave/nwlistop/modelos/arquivos/arquivosin.py +2 -0
  106. inewave/nwlistop/modelos/arquivos/arquivosinpatamar.py +2 -0
  107. inewave/nwlistop/modelos/arquivos/arquivosubmercado.py +2 -0
  108. inewave/nwlistop/modelos/arquivos/arquivosubmercadopatamar.py +2 -0
  109. inewave/nwlistop/modelos/arquivos/arquivousina.py +2 -0
  110. inewave/nwlistop/modelos/arquivos/arquivousinapatamar.py +2 -0
  111. inewave/nwlistop/modelos/blocos/estacaobombeamento.py +2 -0
  112. inewave/nwlistop/modelos/blocos/parsubmercados.py +2 -0
  113. inewave/nwlistop/modelos/blocos/ree.py +2 -0
  114. inewave/nwlistop/modelos/blocos/restricao.py +2 -0
  115. inewave/nwlistop/modelos/blocos/submercado.py +2 -0
  116. inewave/nwlistop/modelos/blocos/usina.py +2 -0
  117. inewave/nwlistop/modelos/blocos/valoresclassetermicaseriepatamar.py +8 -0
  118. inewave/nwlistop/modelos/blocos/valoresserie.py +2 -0
  119. inewave/nwlistop/modelos/blocos/valoresseriepatamar.py +2 -0
  120. inewave/nwlistop/modelos/c_v_rhq.py +2 -0
  121. inewave/nwlistop/modelos/c_v_rhq_s.py +2 -0
  122. inewave/nwlistop/modelos/c_v_rhv.py +2 -0
  123. inewave/nwlistop/modelos/c_v_rhv_s.py +2 -0
  124. inewave/nwlistop/modelos/cbomb.py +2 -0
  125. inewave/nwlistop/modelos/cbombsin.py +2 -0
  126. inewave/nwlistop/modelos/cdef.py +2 -0
  127. inewave/nwlistop/modelos/cdefsin.py +2 -0
  128. inewave/nwlistop/modelos/celetricas.py +2 -0
  129. inewave/nwlistop/modelos/cmarg.py +2 -0
  130. inewave/nwlistop/modelos/cmargmed.py +2 -0
  131. inewave/nwlistop/modelos/coper.py +2 -0
  132. inewave/nwlistop/modelos/corteolm.py +2 -0
  133. inewave/nwlistop/modelos/cterm.py +2 -0
  134. inewave/nwlistop/modelos/ctermsin.py +2 -0
  135. inewave/nwlistop/modelos/cviol_eletricasin.py +28 -0
  136. inewave/nwlistop/modelos/cviol_rhq.py +28 -0
  137. inewave/nwlistop/modelos/cviol_rhq_sin.py +28 -0
  138. inewave/nwlistop/modelos/cviol_rhv.py +26 -0
  139. inewave/nwlistop/modelos/cviol_rhv_sin.py +26 -0
  140. inewave/nwlistop/modelos/def.py +2 -0
  141. inewave/nwlistop/modelos/defsin.py +2 -0
  142. inewave/nwlistop/modelos/deletricas.py +2 -0
  143. inewave/nwlistop/modelos/depminuh.py +2 -0
  144. inewave/nwlistop/modelos/desvuh.py +2 -0
  145. inewave/nwlistop/modelos/dflppdfmaxm.py +2 -0
  146. inewave/nwlistop/modelos/dflpptbmaxm.py +2 -0
  147. inewave/nwlistop/modelos/dfphauh.py +2 -0
  148. inewave/nwlistop/modelos/dlppdfmax.py +2 -0
  149. inewave/nwlistop/modelos/dlppdfmaxs.py +2 -0
  150. inewave/nwlistop/modelos/dlpptbmax.py +2 -0
  151. inewave/nwlistop/modelos/dlpptbmaxs.py +2 -0
  152. inewave/nwlistop/modelos/dnegevap.py +2 -0
  153. inewave/nwlistop/modelos/dposevap.py +2 -0
  154. inewave/nwlistop/modelos/dtbmax.py +2 -0
  155. inewave/nwlistop/modelos/dtbmin.py +2 -0
  156. inewave/nwlistop/modelos/dvazmax.py +2 -0
  157. inewave/nwlistop/modelos/eaf.py +2 -0
  158. inewave/nwlistop/modelos/eafb.py +2 -0
  159. inewave/nwlistop/modelos/eafbm.py +2 -0
  160. inewave/nwlistop/modelos/eafbsin.py +2 -0
  161. inewave/nwlistop/modelos/eafm.py +2 -0
  162. inewave/nwlistop/modelos/earmf.py +2 -0
  163. inewave/nwlistop/modelos/earmfm.py +2 -0
  164. inewave/nwlistop/modelos/earmfp.py +2 -0
  165. inewave/nwlistop/modelos/earmfpm.py +2 -0
  166. inewave/nwlistop/modelos/earmfpsin.py +2 -0
  167. inewave/nwlistop/modelos/earmfsin.py +2 -0
  168. inewave/nwlistop/modelos/edesvc.py +2 -0
  169. inewave/nwlistop/modelos/edesvcm.py +2 -0
  170. inewave/nwlistop/modelos/edesvcsin.py +2 -0
  171. inewave/nwlistop/modelos/evapo.py +2 -0
  172. inewave/nwlistop/modelos/evapom.py +2 -0
  173. inewave/nwlistop/modelos/evaporsin.py +2 -0
  174. inewave/nwlistop/modelos/evert.py +2 -0
  175. inewave/nwlistop/modelos/evertm.py +2 -0
  176. inewave/nwlistop/modelos/evertsin.py +2 -0
  177. inewave/nwlistop/modelos/exces.py +2 -0
  178. inewave/nwlistop/modelos/excessin.py +2 -0
  179. inewave/nwlistop/modelos/form_rhq.py +2 -0
  180. inewave/nwlistop/modelos/form_rhv.py +2 -0
  181. inewave/nwlistop/modelos/fteolm.py +2 -0
  182. inewave/nwlistop/modelos/fteolsin.py +2 -0
  183. inewave/nwlistop/modelos/geol.py +2 -0
  184. inewave/nwlistop/modelos/geolm.py +2 -0
  185. inewave/nwlistop/modelos/geolsin.py +2 -0
  186. inewave/nwlistop/modelos/gh_fphexat.py +2 -0
  187. inewave/nwlistop/modelos/ghidr.py +2 -0
  188. inewave/nwlistop/modelos/ghidrm.py +2 -0
  189. inewave/nwlistop/modelos/ghidrsin.py +2 -0
  190. inewave/nwlistop/modelos/ghiduh.py +2 -0
  191. inewave/nwlistop/modelos/ghmax.py +2 -0
  192. inewave/nwlistop/modelos/ghmax_fpha.py +2 -0
  193. inewave/nwlistop/modelos/ghmax_fphc.py +2 -0
  194. inewave/nwlistop/modelos/ghmaxm.py +2 -0
  195. inewave/nwlistop/modelos/ghmaxmr.py +2 -0
  196. inewave/nwlistop/modelos/ghmaxr.py +2 -0
  197. inewave/nwlistop/modelos/ghmaxrsin.py +2 -0
  198. inewave/nwlistop/modelos/ghmaxsin.py +2 -0
  199. inewave/nwlistop/modelos/ghtot.py +2 -0
  200. inewave/nwlistop/modelos/ghtotm.py +2 -0
  201. inewave/nwlistop/modelos/ghtotsin.py +2 -0
  202. inewave/nwlistop/modelos/gtert.py +2 -0
  203. inewave/nwlistop/modelos/gttot.py +2 -0
  204. inewave/nwlistop/modelos/gttotsin.py +2 -0
  205. inewave/nwlistop/modelos/hjus.py +2 -0
  206. inewave/nwlistop/modelos/hliq.py +2 -0
  207. inewave/nwlistop/modelos/hmont.py +2 -0
  208. inewave/nwlistop/modelos/intercambio.py +2 -0
  209. inewave/nwlistop/modelos/invade.py +2 -0
  210. inewave/nwlistop/modelos/invadem.py +2 -0
  211. inewave/nwlistop/modelos/mediasmerc.py +2 -0
  212. inewave/nwlistop/modelos/mediasree.py +2 -0
  213. inewave/nwlistop/modelos/mediasrep.py +2 -0
  214. inewave/nwlistop/modelos/mediasrhq.py +2 -0
  215. inewave/nwlistop/modelos/mediasrhv.py +2 -0
  216. inewave/nwlistop/modelos/mediassin.py +2 -0
  217. inewave/nwlistop/modelos/mediasusie.py +2 -0
  218. inewave/nwlistop/modelos/mediasusih.py +2 -0
  219. inewave/nwlistop/modelos/mediasusit.py +2 -0
  220. inewave/nwlistop/modelos/mercl.py +2 -0
  221. inewave/nwlistop/modelos/merclsin.py +2 -0
  222. inewave/nwlistop/modelos/mevmin.py +2 -0
  223. inewave/nwlistop/modelos/mevminm.py +2 -0
  224. inewave/nwlistop/modelos/mevminsin.py +2 -0
  225. inewave/nwlistop/modelos/nwlistopdat.py +11 -0
  226. inewave/nwlistop/modelos/perdf.py +2 -0
  227. inewave/nwlistop/modelos/perdfm.py +2 -0
  228. inewave/nwlistop/modelos/perdfsin.py +2 -0
  229. inewave/nwlistop/modelos/pivarm.py +22 -0
  230. inewave/nwlistop/modelos/pivarmincr.py +22 -0
  231. inewave/nwlistop/modelos/qafluh.py +2 -0
  232. inewave/nwlistop/modelos/qbomb.py +28 -0
  233. inewave/nwlistop/modelos/qdesviouh.py +28 -0
  234. inewave/nwlistop/modelos/qincruh.py +2 -0
  235. inewave/nwlistop/modelos/qturuh.py +28 -0
  236. inewave/nwlistop/modelos/qvertuh.py +28 -0
  237. inewave/nwlistop/modelos/rhslppdf.py +2 -0
  238. inewave/nwlistop/modelos/rhslpptb.py +2 -0
  239. inewave/nwlistop/modelos/vagua.py +2 -0
  240. inewave/nwlistop/modelos/valor_agua.py +24 -0
  241. inewave/nwlistop/modelos/varmpuh.py +2 -0
  242. inewave/nwlistop/modelos/varmuh.py +2 -0
  243. inewave/nwlistop/modelos/vbomb.py +2 -0
  244. inewave/nwlistop/modelos/vdesviouh.py +2 -0
  245. inewave/nwlistop/modelos/vento.py +2 -0
  246. inewave/nwlistop/modelos/vertuh.py +2 -0
  247. inewave/nwlistop/modelos/verturb.py +2 -0
  248. inewave/nwlistop/modelos/verturbm.py +2 -0
  249. inewave/nwlistop/modelos/verturbsin.py +2 -0
  250. inewave/nwlistop/modelos/vevapuh.py +2 -0
  251. inewave/nwlistop/modelos/vevmin.py +2 -0
  252. inewave/nwlistop/modelos/vevminm.py +2 -0
  253. inewave/nwlistop/modelos/vevminsin.py +2 -0
  254. inewave/nwlistop/modelos/vghmin.py +2 -0
  255. inewave/nwlistop/modelos/vghminm.py +2 -0
  256. inewave/nwlistop/modelos/vghminsin.py +2 -0
  257. inewave/nwlistop/modelos/vghminuh.py +2 -0
  258. inewave/nwlistop/modelos/viol_eletricasin.py +28 -0
  259. inewave/nwlistop/modelos/viol_evmin.py +23 -0
  260. inewave/nwlistop/modelos/viol_evminm.py +23 -0
  261. inewave/nwlistop/modelos/viol_evminsin.py +23 -0
  262. inewave/nwlistop/modelos/viol_fpha.py +31 -0
  263. inewave/nwlistop/modelos/viol_ghmin.py +29 -0
  264. inewave/nwlistop/modelos/viol_ghminm.py +29 -0
  265. inewave/nwlistop/modelos/viol_ghminsin.py +29 -0
  266. inewave/nwlistop/modelos/viol_ghminuh.py +28 -0
  267. inewave/nwlistop/modelos/viol_lpp_dfmax.py +29 -0
  268. inewave/nwlistop/modelos/viol_lpp_dfmaxm.py +29 -0
  269. inewave/nwlistop/modelos/viol_lpp_dfmaxsin.py +29 -0
  270. inewave/nwlistop/modelos/viol_lpp_tbmax.py +29 -0
  271. inewave/nwlistop/modelos/viol_lpp_tbmaxm.py +29 -0
  272. inewave/nwlistop/modelos/viol_lpp_tbmaxsin.py +29 -0
  273. inewave/nwlistop/modelos/viol_neg_evap.py +26 -0
  274. inewave/nwlistop/modelos/viol_pos_evap.py +26 -0
  275. inewave/nwlistop/modelos/viol_rhq.py +2 -0
  276. inewave/nwlistop/modelos/viol_rhv.py +2 -0
  277. inewave/nwlistop/modelos/viol_turbmax.py +28 -0
  278. inewave/nwlistop/modelos/viol_turbmin.py +28 -0
  279. inewave/nwlistop/modelos/viol_vazmax.py +28 -0
  280. inewave/nwlistop/modelos/viol_vazmin.py +28 -0
  281. inewave/nwlistop/modelos/vmort.py +2 -0
  282. inewave/nwlistop/modelos/vmortm.py +2 -0
  283. inewave/nwlistop/modelos/vmortsin.py +2 -0
  284. inewave/nwlistop/modelos/vretiradauh.py +26 -0
  285. inewave/nwlistop/modelos/vturuh.py +2 -0
  286. inewave/nwlistop/pivarm.py +13 -2
  287. inewave/nwlistop/pivarmincr.py +13 -2
  288. inewave/nwlistop/qbomb.py +23 -0
  289. inewave/nwlistop/qdesviouh.py +21 -0
  290. inewave/nwlistop/qturuh.py +21 -0
  291. inewave/nwlistop/qvertuh.py +21 -0
  292. inewave/nwlistop/vagua.py +10 -0
  293. inewave/nwlistop/valor_agua.py +21 -0
  294. inewave/nwlistop/vertuh.py +10 -0
  295. inewave/nwlistop/vevmin.py +10 -0
  296. inewave/nwlistop/vevminm.py +10 -0
  297. inewave/nwlistop/vevminsin.py +10 -0
  298. inewave/nwlistop/vghmin.py +10 -0
  299. inewave/nwlistop/vghminm.py +10 -0
  300. inewave/nwlistop/vghminsin.py +10 -0
  301. inewave/nwlistop/viol_eletricasin.py +19 -0
  302. inewave/nwlistop/viol_evmin.py +20 -0
  303. inewave/nwlistop/viol_evminm.py +22 -0
  304. inewave/nwlistop/viol_evminsin.py +19 -0
  305. inewave/nwlistop/viol_fpha.py +22 -0
  306. inewave/nwlistop/viol_ghmin.py +22 -0
  307. inewave/nwlistop/viol_ghminm.py +22 -0
  308. inewave/nwlistop/viol_ghminsin.py +19 -0
  309. inewave/nwlistop/viol_ghminuh.py +22 -0
  310. inewave/nwlistop/viol_lpp_dfmax.py +22 -0
  311. inewave/nwlistop/viol_lpp_dfmaxm.py +22 -0
  312. inewave/nwlistop/viol_lpp_dfmaxsin.py +18 -0
  313. inewave/nwlistop/viol_lpp_tbmax.py +22 -0
  314. inewave/nwlistop/viol_lpp_tbmaxm.py +22 -0
  315. inewave/nwlistop/viol_lpp_tbmaxsin.py +18 -0
  316. inewave/nwlistop/viol_neg_evap.py +22 -0
  317. inewave/nwlistop/viol_pos_evap.py +22 -0
  318. inewave/nwlistop/viol_turbmax.py +22 -0
  319. inewave/nwlistop/viol_turbmin.py +22 -0
  320. inewave/nwlistop/viol_vazmax.py +22 -0
  321. inewave/nwlistop/viol_vazmin.py +22 -0
  322. inewave/nwlistop/vretiradauh.py +21 -0
  323. inewave/nwlistop/vturuh.py +10 -0
  324. {inewave-1.7.4.dist-info → inewave-1.8.0.dist-info}/METADATA +2 -2
  325. {inewave-1.7.4.dist-info → inewave-1.8.0.dist-info}/RECORD +373 -264
  326. tests/libs/test_restricoes.py +0 -3
  327. tests/libs/test_usinas_hidreletricas.py +0 -2
  328. tests/mocks/arquivos/pivarm.py +22 -0
  329. tests/mocks/arquivos/pivarmincr.py +22 -0
  330. tests/mocks/arquivos/pmo.py +6 -1
  331. tests/mocks/arquivos/viol_fpha.py +29 -0
  332. tests/newave/test_dger.py +0 -2
  333. tests/newave/test_evap_avl_desv.py +40 -0
  334. tests/newave/test_evap_cortes.py +41 -0
  335. tests/newave/test_evap_eco.py +41 -0
  336. tests/newave/test_fpha_avl_desv_s.py +39 -0
  337. tests/newave/test_fpha_avl_desv_v_q.py +38 -0
  338. tests/newave/test_fpha_cortes.py +48 -0
  339. tests/newave/test_fpha_eco.py +47 -0
  340. tests/newave/test_pmo.py +14 -0
  341. tests/nwlistop/test_cviol_eletricasin.py +37 -0
  342. tests/nwlistop/test_cviol_rhq_sin.py +37 -0
  343. tests/nwlistop/test_cviol_rhv_sin.py +37 -0
  344. tests/nwlistop/test_qbomb.py +40 -0
  345. tests/nwlistop/test_qdesviouh.py +40 -0
  346. tests/nwlistop/test_qturuh.py +40 -0
  347. tests/nwlistop/test_qvertuh.py +40 -0
  348. tests/nwlistop/test_valor_agua.py +40 -0
  349. tests/nwlistop/test_viol_eletricasin.py +37 -0
  350. tests/nwlistop/test_viol_evmin.py +40 -0
  351. tests/nwlistop/test_viol_evminm.py +40 -0
  352. tests/nwlistop/test_viol_evminsin.py +37 -0
  353. tests/nwlistop/test_viol_fpha.py +40 -0
  354. tests/nwlistop/test_viol_ghmin.py +40 -0
  355. tests/nwlistop/test_viol_ghminm.py +40 -0
  356. tests/nwlistop/test_viol_ghminsin.py +37 -0
  357. tests/nwlistop/test_viol_ghminuh.py +40 -0
  358. tests/nwlistop/test_viol_lpp_dfmax.py +40 -0
  359. tests/nwlistop/test_viol_lpp_dfmaxm.py +40 -0
  360. tests/nwlistop/test_viol_lpp_dfmaxsin.py +37 -0
  361. tests/nwlistop/test_viol_lpp_tbmax.py +40 -0
  362. tests/nwlistop/test_viol_lpp_tbmaxm.py +40 -0
  363. tests/nwlistop/test_viol_lpp_tbmaxsin.py +37 -0
  364. tests/nwlistop/test_viol_neg_evap.py +41 -0
  365. tests/nwlistop/test_viol_pos_evap.py +40 -0
  366. tests/nwlistop/test_viol_turbmax.py +40 -0
  367. tests/nwlistop/test_viol_turbmin.py +40 -0
  368. tests/nwlistop/test_viol_vazmax.py +40 -0
  369. tests/nwlistop/test_viol_vazmin.py +40 -0
  370. tests/nwlistop/test_vretiradauh.py +40 -0
  371. {inewave-1.7.4.dist-info → inewave-1.8.0.dist-info}/LICENSE.md +0 -0
  372. {inewave-1.7.4.dist-info → inewave-1.8.0.dist-info}/WHEEL +0 -0
  373. {inewave-1.7.4.dist-info → inewave-1.8.0.dist-info}/top_level.txt +0 -0
@@ -230,7 +230,6 @@ def test_registro_rhv():
230
230
  with patch("builtins.open", m):
231
231
  with open("", "") as fp:
232
232
  r.read(fp)
233
- print(r.data)
234
233
  assert r.data == [1, "1*vtur(18) + 2*vver(17) + 2*varm(18)"]
235
234
  assert r.codigo_restricao == 1
236
235
  r.codigo_restricao = 5
@@ -328,8 +327,6 @@ def test_leitura_escrita_restricoes():
328
327
  linhas_escritas = [
329
328
  chamadas[i].args[0] for i in range(1, len(chamadas) - 1)
330
329
  ]
331
- for li in linhas_escritas:
332
- print(li)
333
330
  m_releitura: MagicMock = mock_open(read_data="".join(linhas_escritas))
334
331
  with patch("builtins.open", m_releitura):
335
332
  cf2 = Restricoes.read(ARQ_TESTE)
@@ -478,8 +478,6 @@ def test_leitura_escrita_usinas_hidreletricas():
478
478
  linhas_escritas = [
479
479
  chamadas[i].args[0] for i in range(1, len(chamadas) - 1)
480
480
  ]
481
- for li in linhas_escritas:
482
- print(li)
483
481
  m_releitura: MagicMock = mock_open(read_data="".join(linhas_escritas))
484
482
  with patch("builtins.open", m_releitura):
485
483
  cf2 = UsinasHidreletricas.read(ARQ_TESTE)
@@ -2012,3 +2012,25 @@ MockPivarm = [
2012
2012
  " MAX 0.00 0.00 0.00 14.47 14.06 14.19 13.59 13.28 13.25 14.25 14.46 14.52\n",
2013
2013
  "\n",
2014
2014
  ]
2015
+
2016
+ MockPivarm_v29_2 = [
2017
+ " Caso Teste \n",
2018
+ " VALOR DA AGUA CALCULADO NO PROPRIO ESTAGIO ($/hm3) USINA:CAMARGOS \n",
2019
+ "\n",
2020
+ " ANO: 2021\n",
2021
+ " 1 2 3 4 5 6 7 8 9 10 11 12 MEDIA\n",
2022
+ " 1 -0.1414677E+07 -0.1349311E+07 -0.1334812E+07 -0.3122534E+06 -0.5733238E+06 -0.8118121E+06 -0.9579259E+06 -0.1287244E+07 -0.1610343E+07 -0.1938827E+07 -0.1400416E+07 -0.1193002E+07 -0.1181996E+07\n",
2023
+ " 2 -0.1633927E+07 -0.1921184E+07 -0.1903470E+07 -0.2510122E+07 -0.1315049E+07 -0.1194394E+07 -0.7854828E+06 -0.8918289E+06 -0.9381198E+06 -0.8028469E+06 -0.4377851E+06 0.7291253E+00 -0.1194517E+07\n",
2024
+ " 3 -0.1470586E+07 -0.1487987E+07 -0.4378156E+06 0.4789146E+00 0.3522076E+00 -0.1315093E+06 -0.1511477E+06 -0.4878529E+05 -0.6861371E+05 -0.3434183E+04 -0.4708708E+04 0.7652909E+00 -0.3170488E+06\n",
2025
+ " 4 -0.1001131E+07 -0.8632798E+06 -0.5095322E+06 0.5867786E+00 0.3681660E+00 -0.1458308E+06 -0.3703057E+06 -0.4865548E+06 -0.4771853E+06 -0.2797431E+06 -0.3693978E+06 -0.4779100E+06 -0.4150725E+06\n",
2026
+ " 5 -0.4394022E+06 0.7009254E+00 0.7982943E+00 0.6948820E+00 0.6731272E+00 0.7516054E+00 0.6621739E+00 -0.2243781E+04 -0.1740437E+04 -0.7347510E+03 0.7666521E+00 0.7963766E+00 -0.3700961E+05\n",
2027
+ " 6 -0.9954916E+06 0.2414514E+00 0.7362821E+00 0.4232431E+00 0.3790797E+00 -0.1609476E+06 -0.2888754E+06 -0.3122430E+06 -0.3584640E+06 -0.3386253E+06 -0.7581071E+04 0.3811179E+00 -0.2051855E+06\n",
2028
+ " 7 -0.1191626E+07 -0.1477003E+07 -0.7068472E+06 -0.7207408E+06 -0.7899582E+06 -0.6012040E+06 -0.1025739E+07 -0.1086481E+07 -0.1088286E+07 -0.1387582E+07 -0.1170988E+07 -0.4186739E+06 -0.9720941E+06\n",
2029
+ " MEDIA -0.1271068E+07 -0.9755682E+06 -0.7278995E+06 -0.5929452E+06 -0.5217324E+06 -0.5974791E+06 -0.6373254E+06 -0.6762271E+06 -0.7116699E+06 -0.7282038E+06 -0.6689438E+06 -0.3910162E+06 -0.7083398E+06\n",
2030
+ " DPADRAO 0.5510314E+06 0.6807061E+06 0.7767428E+06 0.7558677E+06 0.7142074E+06 0.7226282E+06 0.7491109E+06 0.7806701E+06 0.8726851E+06 0.1074805E+07 0.1119712E+07 0.5807778E+06\n",
2031
+ " MIN -0.2735416E+07 -0.3664930E+07 -0.4198116E+07 -0.5733930E+07 -0.5186678E+07 -0.7157272E+07 -0.8462130E+07 -0.9812189E+07 -0.6095935E+07 -0.7423367E+07 -0.7979637E+07 -0.4036746E+07\n",
2032
+ " P5 -0.2299674E+07 -0.2205085E+07 -0.2325010E+07 -0.2281097E+07 -0.2170567E+07 -0.2214207E+07 -0.1921539E+07 -0.1952641E+07 -0.2229460E+07 -0.2769849E+07 -0.3480252E+07 -0.1660316E+07\n",
2033
+ " P95 -0.4034075E+06 0.4249327E+00 0.7811375E+00 0.7300804E+00 0.6745794E+00 0.5851984E+00 -0.7322466E+04 -0.2296590E+04 -0.1844317E+04 0.0000000E+00 0.7381992E+00 0.7933396E+00\n",
2034
+ " MAX -0.3530049E+04 0.4580274E+04 0.7991294E+00 0.7966098E+00 0.7876535E+00 0.7873833E+00 0.7144043E+00 0.3738879E+00 0.7184766E+00 0.7333333E+00 0.7987911E+00 0.7988697E+00\n",
2035
+ "\n",
2036
+ ]
@@ -82,3 +82,25 @@ MockPivarmincr = [
82
82
  " P95 0.98 0.94 0.94 0.88 0.77 0.76 0.78 0.58 0.50 0.51 0.88 0.91\n",
83
83
  " MAX 0.98 0.94 0.94 0.88 0.77 0.76 0.78 0.58 0.50 0.51 0.88 0.91\n",
84
84
  ]
85
+
86
+ MockPivarmincr_v29_2 = [
87
+ " Caso Teste \n",
88
+ " VALOR DA AGUA INCREMENTAL CALCULADO NO PROPRIO ESTAGIOUSINA:FURNAS \n",
89
+ "\n",
90
+ " ANO: 2021\n",
91
+ " 1 2 3 4 5 6 7 8 9 10 11 12 MEDIA\n",
92
+ " 1 -0.1414677E+07 -0.1349311E+07 -0.1334812E+07 -0.3122534E+06 -0.5733238E+06 -0.8118121E+06 -0.9579259E+06 -0.1287244E+07 -0.1610343E+07 -0.1938827E+07 -0.1400416E+07 -0.1193002E+07 -0.1181996E+07\n",
93
+ " 2 -0.1633927E+07 -0.1921184E+07 -0.1903470E+07 -0.2510122E+07 -0.1315049E+07 -0.1194394E+07 -0.7854828E+06 -0.8918289E+06 -0.9381198E+06 -0.8028469E+06 -0.4377851E+06 0.7291253E+00 -0.1194517E+07\n",
94
+ " 3 -0.1470586E+07 -0.1487987E+07 -0.4378156E+06 0.4789146E+00 0.3522076E+00 -0.1315093E+06 -0.1511477E+06 -0.4878529E+05 -0.6861371E+05 -0.3434183E+04 -0.4708708E+04 0.7652909E+00 -0.3170488E+06\n",
95
+ " 4 -0.1001131E+07 -0.8632798E+06 -0.5095322E+06 0.5867786E+00 0.3681660E+00 -0.1458308E+06 -0.3703057E+06 -0.4865548E+06 -0.4771853E+06 -0.2797431E+06 -0.3693978E+06 -0.4779100E+06 -0.4150725E+06\n",
96
+ " 5 -0.4394022E+06 0.7009254E+00 0.7982943E+00 0.6948820E+00 0.6731272E+00 0.7516054E+00 0.6621739E+00 -0.2243781E+04 -0.1740437E+04 -0.7347510E+03 0.7666521E+00 0.7963766E+00 -0.3700961E+05\n",
97
+ " 6 -0.9954916E+06 0.2414514E+00 0.7362821E+00 0.4232431E+00 0.3790797E+00 -0.1609476E+06 -0.2888754E+06 -0.3122430E+06 -0.3584640E+06 -0.3386253E+06 -0.7581071E+04 0.3811179E+00 -0.2051855E+06\n",
98
+ " 7 -0.1191626E+07 -0.1477003E+07 -0.7068472E+06 -0.7207408E+06 -0.7899582E+06 -0.6012040E+06 -0.1025739E+07 -0.1086481E+07 -0.1088286E+07 -0.1387582E+07 -0.1170988E+07 -0.4186739E+06 -0.9720941E+06\n",
99
+ " MEDIA -0.1271068E+07 -0.9755682E+06 -0.7278995E+06 -0.5929452E+06 -0.5217324E+06 -0.5974791E+06 -0.6373254E+06 -0.6762271E+06 -0.7116699E+06 -0.7282038E+06 -0.6689438E+06 -0.3910162E+06 -0.7083398E+06\n",
100
+ " DPADRAO 0.5510314E+06 0.6807061E+06 0.7767428E+06 0.7558677E+06 0.7142074E+06 0.7226282E+06 0.7491109E+06 0.7806701E+06 0.8726851E+06 0.1074805E+07 0.1119712E+07 0.5807778E+06\n",
101
+ " MIN -0.2735416E+07 -0.3664930E+07 -0.4198116E+07 -0.5733930E+07 -0.5186678E+07 -0.7157272E+07 -0.8462130E+07 -0.9812189E+07 -0.6095935E+07 -0.7423367E+07 -0.7979637E+07 -0.4036746E+07\n",
102
+ " P5 -0.2299674E+07 -0.2205085E+07 -0.2325010E+07 -0.2281097E+07 -0.2170567E+07 -0.2214207E+07 -0.1921539E+07 -0.1952641E+07 -0.2229460E+07 -0.2769849E+07 -0.3480252E+07 -0.1660316E+07\n",
103
+ " P95 -0.4034075E+06 0.4249327E+00 0.7811375E+00 0.7300804E+00 0.6745794E+00 0.5851984E+00 -0.7322466E+04 -0.2296590E+04 -0.1844317E+04 0.0000000E+00 0.7381992E+00 0.7933396E+00\n",
104
+ " MAX -0.3530049E+04 0.4580274E+04 0.7991294E+00 0.7966098E+00 0.7876535E+00 0.7873833E+00 0.7144043E+00 0.3738879E+00 0.7184766E+00 0.7333333E+00 0.7987911E+00 0.7988697E+00\n",
105
+ "\n",
106
+ ]
@@ -1,3 +1,7 @@
1
+ MockVersaoModeloPMO = [
2
+ " CEPEL MODELO ESTRATEGICO DE GERACAO HIDROTERMICA A SUBSISTEMAS VERSAO 29.3.1 \n"
3
+ ]
4
+
1
5
  MockBlocoEafPastTendenciaHidrolPMO = [
2
6
  " ENERGIAS AFLUENTES PASSADAS PARA A TENDENCIA HIDROLOGICA EM REFERENCIA A PRIMEIRA CONFIGURACAO DO SISTEMA (MWmes)\n",
3
7
  " X--------------------------------------------------------------------------------------------------------------------------------------------X\n",
@@ -7095,7 +7099,8 @@ MockBlocoCustoOperacaoTotalPMO = [
7095
7099
  ]
7096
7100
 
7097
7101
  MockPMO = (
7098
- MockBlocoEafPastTendenciaHidrolPMO
7102
+ MockVersaoModeloPMO
7103
+ + MockBlocoEafPastTendenciaHidrolPMO
7099
7104
  + MockBlocoEafPastCfugaMedioPMO
7100
7105
  + MockBlocoEnergiaArmazenadaMaximaPMO
7101
7106
  + MockBlocoEnergiaArmazenadaInicialPMO
@@ -0,0 +1,29 @@
1
+ MockViolFpha = [
2
+ " Caso Teste \n",
3
+ " VIOLACAO DA FPHA DA USINA (MWmes) USINA:CAMARGOS \n",
4
+ "\n",
5
+ " ANO: 2021\n",
6
+ " 1 2 3 4 5 6 7 8 9 10 11 12 MEDIA\n",
7
+ " 1 1 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00\n",
8
+ " 2 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00\n",
9
+ " 3 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00\n",
10
+ " 2 1 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00\n",
11
+ " 2 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00\n",
12
+ " 3 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00\n",
13
+ " 3 1 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00\n",
14
+ " 2 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00\n",
15
+ " 3 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00\n",
16
+ " 4 1 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00\n",
17
+ " 2 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00\n",
18
+ " 3 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00\n",
19
+ " 5 1 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00\n",
20
+ " 2 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00\n",
21
+ " 3 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00\n",
22
+ " 6 1 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00\n",
23
+ " 2 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00\n",
24
+ " 3 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00\n",
25
+ " 7 1 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00\n",
26
+ " 2 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00\n",
27
+ " 3 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00\n",
28
+ "\n",
29
+ ]
tests/newave/test_dger.py CHANGED
@@ -1431,8 +1431,6 @@ def test_leitura_escrita_dger():
1431
1431
  linhas_escritas = [
1432
1432
  chamadas[i].args[0] for i in range(1, len(chamadas) - 1)
1433
1433
  ]
1434
- for lin in linhas_escritas:
1435
- print(lin)
1436
1434
  m_releitura: MagicMock = mock_open(read_data="".join(linhas_escritas))
1437
1435
  with patch("builtins.open", m_releitura):
1438
1436
  d2 = Dger.read(ARQ_TESTE)
@@ -0,0 +1,40 @@
1
+ from inewave.newave.evap_avl_desv import EvapAvlDesv
2
+
3
+ from tests.mocks.mock_open import mock_open
4
+ from unittest.mock import MagicMock, patch
5
+
6
+ from tests.mocks.arquivos.nwv_avl_evap import MockNwvAvlEvap
7
+
8
+ ARQ_TESTE = "./tests/mocks/arquivos/__init__.py"
9
+
10
+
11
+ def test_atributos_encontrados_evap_avl_desv():
12
+ m: MagicMock = mock_open(read_data="".join(MockNwvAvlEvap))
13
+ with patch("builtins.open", m):
14
+ rel = EvapAvlDesv.read(ARQ_TESTE)
15
+ assert rel.versao == "FPHA_NEWAVE"
16
+ assert rel.tabela.at[0, "periodo"] == 1
17
+ assert rel.tabela.at[0, "codigo_usina"] == 4
18
+ assert rel.tabela.at[0, "nome_usina"] == "FUNIL-GRANDE"
19
+ assert rel.tabela.at[0, "volume_armazenado_hm3"] == 265.86
20
+ assert rel.tabela.at[0, "evaporacao_calculada_hm3"] == 0.23
21
+ assert rel.tabela.at[0, "evaporacao_modelo_hm3"] == 0.23
22
+ assert rel.tabela.at[0, "desvio_absoluto_hm3"] == 0.0
23
+ assert rel.tabela.at[0, "desvio_percentual"] == 0.0
24
+
25
+
26
+ def test_eq_evap_avl_desv():
27
+ m: MagicMock = mock_open(read_data="".join(MockNwvAvlEvap))
28
+ with patch("builtins.open", m):
29
+ rel1 = EvapAvlDesv.read(ARQ_TESTE)
30
+ rel2 = EvapAvlDesv.read(ARQ_TESTE)
31
+ assert rel1 == rel2
32
+
33
+
34
+ def test_neq_evap_avl_desv():
35
+ m: MagicMock = mock_open(read_data="".join(MockNwvAvlEvap))
36
+ with patch("builtins.open", m):
37
+ rel1 = EvapAvlDesv.read(ARQ_TESTE)
38
+ rel2 = EvapAvlDesv.read(ARQ_TESTE)
39
+ rel1.tabela.iloc[0, 0] = -1
40
+ assert rel1 != rel2
@@ -0,0 +1,41 @@
1
+ from inewave.newave.evap_cortes import EvapCortes
2
+
3
+ from tests.mocks.mock_open import mock_open
4
+ from unittest.mock import MagicMock, patch
5
+
6
+ from tests.mocks.arquivos.nwv_cortes_evap import MockNwvCortesEvap
7
+
8
+ ARQ_TESTE = "./tests/mocks/arquivos/__init__.py"
9
+
10
+
11
+ def test_atributos_encontrados_evap_cortes():
12
+ m: MagicMock = mock_open(read_data="".join(MockNwvCortesEvap))
13
+ with patch("builtins.open", m):
14
+ rel = EvapCortes.read(ARQ_TESTE)
15
+ assert rel.versao == "FPHA_NEWAVE"
16
+ assert rel.tabela.at[0, "periodo"] == 1
17
+ assert rel.tabela.at[0, "codigo_usina"] == 4
18
+ assert rel.tabela.at[0, "nome_usina"] == "FUNIL-GRANDE"
19
+ assert rel.tabela.at[0, "derivada_cota_area"] == 0.0000000000
20
+ assert rel.tabela.at[0, "derivada_volume_cota"] == 0.0000000000
21
+ assert rel.tabela.at[0, "volume_referencia_hm3"] == 265.86
22
+ assert rel.tabela.at[0, "evaporacao_referencia_hm3"] == 0.23
23
+ assert rel.tabela.at[0, "coeficiente_volume"] == 0.0000000000
24
+ assert rel.tabela.at[0, "rhs_volume"] == 0.2263
25
+
26
+
27
+ def test_eq_evap_cortes():
28
+ m: MagicMock = mock_open(read_data="".join(MockNwvCortesEvap))
29
+ with patch("builtins.open", m):
30
+ rel1 = EvapCortes.read(ARQ_TESTE)
31
+ rel2 = EvapCortes.read(ARQ_TESTE)
32
+ assert rel1 == rel2
33
+
34
+
35
+ def test_neq_evap_cortes():
36
+ m: MagicMock = mock_open(read_data="".join(MockNwvCortesEvap))
37
+ with patch("builtins.open", m):
38
+ rel1 = EvapCortes.read(ARQ_TESTE)
39
+ rel2 = EvapCortes.read(ARQ_TESTE)
40
+ rel1.tabela.iloc[0, 0] = -1
41
+ assert rel1 != rel2
@@ -0,0 +1,41 @@
1
+ from inewave.newave.evap_eco import EvapEco
2
+
3
+ from tests.mocks.mock_open import mock_open
4
+ from unittest.mock import MagicMock, patch
5
+
6
+ from tests.mocks.arquivos.nwv_eco_evap import MockNwvEcoEvap
7
+
8
+ ARQ_TESTE = "./tests/mocks/arquivos/__init__.py"
9
+
10
+
11
+ def test_atributos_encontrados_evap_eco():
12
+ m: MagicMock = mock_open(read_data="".join(MockNwvEcoEvap))
13
+ with patch("builtins.open", m):
14
+ rel = EvapEco.read(ARQ_TESTE)
15
+ assert rel.versao == "FPHA_NEWAVE"
16
+ assert rel.tabela.at[0, "periodo"] == 1
17
+ assert rel.tabela.at[0, "codigo_usina"] == 4
18
+ assert rel.tabela.at[0, "nome_usina"] == "FUNIL-GRANDE"
19
+ assert rel.tabela.at[0, "volume_referencia_hm3"] == 265.86
20
+ assert rel.tabela.at[0, "evaporacao_referencia_hm3"] == 0.23
21
+ assert rel.tabela.at[0, "coeficiente_evaporacao_mm_mes"] == 6
22
+ assert rel.tabela.at[0, "flag_evaporacao"] == 1
23
+ assert rel.tabela.at[0, "evaporacao_linear"] == 1
24
+ assert rel.tabela.at[0, "tipo_volume_referencia"] == 1
25
+
26
+
27
+ def test_eq_evap_eco():
28
+ m: MagicMock = mock_open(read_data="".join(MockNwvEcoEvap))
29
+ with patch("builtins.open", m):
30
+ rel1 = EvapEco.read(ARQ_TESTE)
31
+ rel2 = EvapEco.read(ARQ_TESTE)
32
+ assert rel1 == rel2
33
+
34
+
35
+ def test_neq_evap_eco():
36
+ m: MagicMock = mock_open(read_data="".join(MockNwvEcoEvap))
37
+ with patch("builtins.open", m):
38
+ rel1 = EvapEco.read(ARQ_TESTE)
39
+ rel2 = EvapEco.read(ARQ_TESTE)
40
+ rel1.tabela.iloc[0, 0] = -1
41
+ assert rel1 != rel2
@@ -0,0 +1,39 @@
1
+ from inewave.newave.fpha_avl_desv_s import FphaAvlDesvS
2
+
3
+ from tests.mocks.mock_open import mock_open
4
+ from unittest.mock import MagicMock, patch
5
+
6
+ from tests.mocks.arquivos.avl_desvfpha_s import MockAvlDesvFphaS
7
+
8
+ ARQ_TESTE = "./tests/mocks/arquivos/__init__.py"
9
+
10
+
11
+ def test_atributos_encontrados_fpha_avl_desv_s():
12
+ m: MagicMock = mock_open(read_data="".join(MockAvlDesvFphaS))
13
+ with patch("builtins.open", m):
14
+ rel = FphaAvlDesvS.read(ARQ_TESTE)
15
+ assert rel.versao == "FPHA_NEWAVE"
16
+ assert rel.tabela.at[0, "codigo_usina"] == 4
17
+ assert rel.tabela.at[0, "nome_usina"] == "FUNIL-GRANDE"
18
+ assert rel.tabela.at[0, "volume_armazenado_percentual"] == 100.0
19
+ assert rel.tabela.at[0, "vazao_turbinada_m3s"] == 0.0
20
+ assert rel.tabela.at[0, "vazao_vertida_m3s"] == 0.0
21
+ assert rel.tabela.at[0, "desvio_percentual"] == 0.0
22
+
23
+
24
+ def test_es_fpha_avl_desv_s():
25
+ m: MagicMock = mock_open(read_data="".join(MockAvlDesvFphaS))
26
+ with patch("builtins.open", m):
27
+ rel1 = FphaAvlDesvS.read(ARQ_TESTE)
28
+ rel2 = FphaAvlDesvS.read(ARQ_TESTE)
29
+ assert rel1 == rel2
30
+
31
+
32
+ ## Não precisa comparar isto, é somente leitura - passa por agregação
33
+ # def test_nes_fpha_avl_desv_s():
34
+ # m: MagicMock = mock_open(read_data="".join(MockAvlDesvFphaS))
35
+ # with patch("builtins.open", m):
36
+ # rel1 = AvlDesvFphaS.read(ARQ_TESTE)
37
+ # rel2 = AvlDesvFphaS.read(ARQ_TESTE)
38
+ # rel1.tabela.iloc[0, 0] = -1
39
+ # assert rel1 != rel2
@@ -0,0 +1,38 @@
1
+ from inewave.newave.fpha_avl_desv_v_q import FphaAvlDesvVQ
2
+ import pandas as pd # type: ignore
3
+ from tests.mocks.mock_open import mock_open
4
+ from unittest.mock import MagicMock, patch
5
+
6
+ from tests.mocks.arquivos.avl_desvfpha_v_q import MockAvlDesvFphaVQ
7
+
8
+ ARQ_TESTE = "./tests/mocks/arquivos/__init__.py"
9
+
10
+
11
+ def test_atributos_encontrados_fpha_avl_desv_v_q():
12
+ m: MagicMock = mock_open(read_data="".join(MockAvlDesvFphaVQ))
13
+ with patch("builtins.open", m):
14
+ rel = FphaAvlDesvVQ.read(ARQ_TESTE)
15
+ assert rel.versao == "FPHA_NEWAVE"
16
+ assert rel.tabela.at[0, "codigo_usina"] == 4
17
+ assert rel.tabela.at[0, "nome_usina"] == "FUNIL-GRANDE"
18
+ assert pd.isna(rel.tabela.at[0, "volume_armazenado_percentual"])
19
+ assert rel.tabela.at[0, "vazao_turbinada_m3s"] == 0.0
20
+ assert rel.tabela.at[0, "desvio_percentual"] == 0.0
21
+
22
+
23
+ def test_eq_fpha_avl_desv_v_q():
24
+ m: MagicMock = mock_open(read_data="".join(MockAvlDesvFphaVQ))
25
+ with patch("builtins.open", m):
26
+ rel1 = FphaAvlDesvVQ.read(ARQ_TESTE)
27
+ rel2 = FphaAvlDesvVQ.read(ARQ_TESTE)
28
+ assert rel1 == rel2
29
+
30
+
31
+ ## Não precisa comparar isto, é somente leitura - passa por agregação
32
+ # def test_neq_fpha_avl_desv_v_q():
33
+ # m: MagicMock = mock_open(read_data="".join(MockAvlDesvFphaVQ))
34
+ # with patch("builtins.open", m):
35
+ # rel1 = AvlDesvFphaVQ.read(ARQ_TESTE)
36
+ # rel2 = AvlDesvFphaVQ.read(ARQ_TESTE)
37
+ # rel1.tabela.iloc[0, 0] = -1
38
+ # assert rel1 != rel2
@@ -0,0 +1,48 @@
1
+ from inewave.newave.fpha_cortes import FphaCortes
2
+
3
+ from tests.mocks.mock_open import mock_open
4
+ from unittest.mock import MagicMock, patch
5
+
6
+ from tests.mocks.arquivos.avl_cortesfpha_nwv import (
7
+ MockAvlCortesFphaNwv28,
8
+ MockAvlCortesFphaNwv,
9
+ )
10
+
11
+ ARQ_TESTE = "./tests/mocks/arquivos/__init__.py"
12
+
13
+
14
+ def test_atributos_encontrados_fpha_cortes():
15
+ m: MagicMock = mock_open(read_data="".join(MockAvlCortesFphaNwv))
16
+ with patch("builtins.open", m):
17
+ rel = FphaCortes.read(ARQ_TESTE)
18
+ assert rel.versao == "28.16_CPAMP"
19
+ assert rel.tabela.at[0, "codigo_usina"] == 4
20
+ assert rel.tabela.at[0, "periodo"] == 5
21
+ assert rel.tabela.at[0, "nome_usina"] == "FUNIL-GRANDE"
22
+ assert rel.tabela.at[0, "indice_corte"] == 1
23
+ assert rel.tabela.at[0, "fator_correcao"] == 1.0
24
+ assert rel.tabela.at[0, "rhs_energia"] == 0.0
25
+ assert rel.tabela.at[0, "coeficiente_volume_util_MW_hm3"] == 0.0
26
+ assert (
27
+ rel.tabela.at[0, "coeficiente_vazao_turbinada_MW_m3s"]
28
+ == 0.35607775
29
+ )
30
+ assert rel.tabela.at[0, "coeficiente_vazao_vertida_MW_m3s"] == 0.0
31
+ assert rel.tabela.at[0, "coeficiente_vazao_lateral_MW_m3s"] == 0.0
32
+
33
+
34
+ def test_eq_fpha_cortes():
35
+ m: MagicMock = mock_open(read_data="".join(MockAvlCortesFphaNwv))
36
+ with patch("builtins.open", m):
37
+ rel1 = FphaCortes.read(ARQ_TESTE)
38
+ rel2 = FphaCortes.read(ARQ_TESTE)
39
+ assert rel1 == rel2
40
+
41
+
42
+ def test_neq_fpha_cortes():
43
+ m: MagicMock = mock_open(read_data="".join(MockAvlCortesFphaNwv))
44
+ with patch("builtins.open", m):
45
+ rel1 = FphaCortes.read(ARQ_TESTE)
46
+ rel2 = FphaCortes.read(ARQ_TESTE)
47
+ rel1.tabela.iloc[0, 0] = -1
48
+ assert rel1 != rel2
@@ -0,0 +1,47 @@
1
+ from inewave.newave.fpha_eco import FphaEco
2
+
3
+ from tests.mocks.mock_open import mock_open
4
+ from unittest.mock import MagicMock, patch
5
+
6
+ from tests.mocks.arquivos.eco_fpha import MockEcoFpha
7
+
8
+ ARQ_TESTE = "./tests/mocks/arquivos/__init__.py"
9
+
10
+
11
+ def test_atributos_encontrados_fpha_eco():
12
+ m: MagicMock = mock_open(read_data="".join(MockEcoFpha))
13
+ with patch("builtins.open", m):
14
+ rel = FphaEco.read(ARQ_TESTE)
15
+ assert rel.versao == "FPHA_NEWAVE"
16
+ assert rel.tabela.at[0, "codigo_usina"] == 4
17
+ assert rel.tabela.at[0, "periodo"] == 1
18
+ assert rel.tabela.at[0, "nome_usina"] == "FUNIL-GRANDE"
19
+ assert rel.tabela.at[0, "tipo"] == 2
20
+ assert rel.tabela.at[0, "conv"] == 1
21
+ assert rel.tabela.at[0, "alfa"] == 1
22
+ assert rel.tabela.at[0, "rems"] == 1
23
+ assert rel.tabela.at[0, "numero_pontos_vazao_turbinada"] == 5
24
+ assert rel.tabela.at[0, "vazao_turbinada_minima"] == 0.0
25
+ assert rel.tabela.at[0, "vazao_turbinada_maxima"] == 507.2
26
+ assert rel.tabela.at[0, "numero_pontos_volume_armazenado"] == 1
27
+ assert rel.tabela.at[0, "volume_armazenado_minimo"] == 265.9
28
+ assert rel.tabela.at[0, "volume_armazenado_maximo"] == 265.9
29
+ assert rel.tabela.at[0, "geracao_minima"] == 0.0
30
+ assert rel.tabela.at[0, "geracao_maxima"] == 180.0
31
+
32
+
33
+ def test_eq_fpha_eco():
34
+ m: MagicMock = mock_open(read_data="".join(MockEcoFpha))
35
+ with patch("builtins.open", m):
36
+ rel1 = FphaEco.read(ARQ_TESTE)
37
+ rel2 = FphaEco.read(ARQ_TESTE)
38
+ assert rel1 == rel2
39
+
40
+
41
+ def test_neq_fpha_eco():
42
+ m: MagicMock = mock_open(read_data="".join(MockEcoFpha))
43
+ with patch("builtins.open", m):
44
+ rel1 = FphaEco.read(ARQ_TESTE)
45
+ rel2 = FphaEco.read(ARQ_TESTE)
46
+ rel1.tabela.iloc[0, 0] = -1
47
+ assert rel1 != rel2
tests/newave/test_pmo.py CHANGED
@@ -1,4 +1,5 @@
1
1
  from inewave.newave.modelos.pmo import (
2
+ BlocoVersaoModeloPMO,
2
3
  BlocoConvergenciaPMO,
3
4
  BlocoEafPastTendenciaHidrolPMO,
4
5
  BlocoEafPastCfugaMedioPMO,
@@ -28,6 +29,7 @@ from datetime import datetime
28
29
  from tests.mocks.mock_open import mock_open
29
30
  from unittest.mock import MagicMock, patch
30
31
 
32
+ from tests.mocks.arquivos.pmo import MockVersaoModeloPMO
31
33
  from tests.mocks.arquivos.pmo import MockBlocoEafPastTendenciaHidrolPMO
32
34
  from tests.mocks.arquivos.pmo import MockBlocoEafPastCfugaMedioPMO
33
35
  from tests.mocks.arquivos.pmo import MockBlocoConvergenciaPMO
@@ -63,6 +65,16 @@ from tests.mocks.arquivos.pmo import MockPMO
63
65
  ARQ_TESTE = "./tests/mocks/arquivos/__init__.py"
64
66
 
65
67
 
68
+ def test_versao_modelo():
69
+ m: MagicMock = mock_open(read_data="".join(MockVersaoModeloPMO))
70
+ b = BlocoVersaoModeloPMO()
71
+ with patch("builtins.open", m):
72
+ with open("", "") as fp:
73
+ b.read(fp)
74
+
75
+ assert b.data == "29.3.1"
76
+
77
+
66
78
  def test_eafpast_tendencia_hidrologica():
67
79
  m: MagicMock = mock_open(
68
80
  read_data="".join(MockBlocoEafPastTendenciaHidrolPMO)
@@ -376,6 +388,7 @@ def test_atributos_encontrados_pmo():
376
388
  m: MagicMock = mock_open(read_data="".join(MockPMO))
377
389
  with patch("builtins.open", m):
378
390
  pmo = Pmo.read(ARQ_TESTE)
391
+ assert pmo.versao_modelo is not None
379
392
  assert pmo.eafpast_tendencia_hidrologica is not None
380
393
  assert pmo.eafpast_cfuga_medio is not None
381
394
  assert pmo.convergencia is not None
@@ -409,6 +422,7 @@ def test_atributos_nao_encontrados_pmo():
409
422
  m: MagicMock = mock_open(read_data="".join(MockBlocoConvergenciaPMO))
410
423
  with patch("builtins.open", m):
411
424
  pmo = Pmo.read(ARQ_TESTE)
425
+ assert pmo.versao_modelo is None
412
426
  assert pmo.convergencia is not None
413
427
  assert pmo.custo_operacao_series_simuladas is None
414
428
  assert pmo.custo_operacao_total is None
@@ -0,0 +1,37 @@
1
+ from inewave.nwlistop.cviol_eletricasin import CviolEletricasin
2
+
3
+ from datetime import datetime
4
+ from tests.mocks.mock_open import mock_open
5
+ from unittest.mock import MagicMock, patch
6
+
7
+ from tests.mocks.arquivos.celetricas import MockCeletricas
8
+
9
+ ARQ_TESTE = "./tests/mocks/arquivos/__init__.py"
10
+
11
+
12
+ def test_atributos_encontrados_cviol_eletricasin():
13
+ m: MagicMock = mock_open(read_data="".join(MockCeletricas))
14
+ with patch("builtins.open", m):
15
+ n = CviolEletricasin.read(ARQ_TESTE)
16
+ assert n.valores is not None
17
+ assert n.valores.iloc[0, 0] == datetime(2023, 1, 1)
18
+ assert n.valores.iloc[-1, -1] == 0.0
19
+
20
+
21
+ def test_atributos_nao_encontrados_cviol_eletricasin():
22
+ m: MagicMock = mock_open(read_data="")
23
+ with patch("builtins.open", m):
24
+ n = CviolEletricasin.read(ARQ_TESTE)
25
+ assert n.valores is None
26
+
27
+
28
+ def test_eq_cviol_eletricasin():
29
+ m: MagicMock = mock_open(read_data="".join(MockCeletricas))
30
+ with patch("builtins.open", m):
31
+ n1 = CviolEletricasin.read(ARQ_TESTE)
32
+ n2 = CviolEletricasin.read(ARQ_TESTE)
33
+ assert n1 == n2
34
+
35
+
36
+ # Não deve ter teste de diferença, visto que o atributo é
37
+ # implementado como Lazy Property.
@@ -0,0 +1,37 @@
1
+ from inewave.nwlistop.cviol_rhq_sin import CviolRhqsin
2
+
3
+ from datetime import datetime
4
+ from tests.mocks.mock_open import mock_open
5
+ from unittest.mock import MagicMock, patch
6
+
7
+ from tests.mocks.arquivos.c_v_rhq_s import MockCVRHQs
8
+
9
+ ARQ_TESTE = "./tests/mocks/arquivos/__init__.py"
10
+
11
+
12
+ def test_atributos_encontrados_cviol_rhq_sin():
13
+ m: MagicMock = mock_open(read_data="".join(MockCVRHQs))
14
+ with patch("builtins.open", m):
15
+ n = CviolRhqsin.read(ARQ_TESTE)
16
+ assert n.valores is not None
17
+ assert n.valores.iloc[0, 0] == datetime(2023, 1, 1)
18
+ assert n.valores.iloc[-1, -1] == 0.0
19
+
20
+
21
+ def test_atributos_nao_encontrados_cviol_rhq_sin():
22
+ m: MagicMock = mock_open(read_data="")
23
+ with patch("builtins.open", m):
24
+ n = CviolRhqsin.read(ARQ_TESTE)
25
+ assert n.valores is None
26
+
27
+
28
+ def test_eq_cviol_rhq_sin():
29
+ m: MagicMock = mock_open(read_data="".join(MockCVRHQs))
30
+ with patch("builtins.open", m):
31
+ n1 = CviolRhqsin.read(ARQ_TESTE)
32
+ n2 = CviolRhqsin.read(ARQ_TESTE)
33
+ assert n1 == n2
34
+
35
+
36
+ # Não deve ter teste de diferença, visto que o atributo é
37
+ # implementado como Lazy Property.
@@ -0,0 +1,37 @@
1
+ from inewave.nwlistop.cviol_rhv_sin import CviolRhvsin
2
+
3
+ from datetime import datetime
4
+ from tests.mocks.mock_open import mock_open
5
+ from unittest.mock import MagicMock, patch
6
+
7
+ from tests.mocks.arquivos.c_v_rhv_s import MockCVRHVs
8
+
9
+ ARQ_TESTE = "./tests/mocks/arquivos/__init__.py"
10
+
11
+
12
+ def test_atributos_encontrados_cviol_rhv_sin():
13
+ m: MagicMock = mock_open(read_data="".join(MockCVRHVs))
14
+ with patch("builtins.open", m):
15
+ n = CviolRhvsin.read(ARQ_TESTE)
16
+ assert n.valores is not None
17
+ assert n.valores.iloc[0, 0] == datetime(2023, 1, 1)
18
+ assert n.valores.iloc[-1, -1] == 0.0
19
+
20
+
21
+ def test_atributos_nao_encontrados_cviol_rhv_sin():
22
+ m: MagicMock = mock_open(read_data="")
23
+ with patch("builtins.open", m):
24
+ n = CviolRhvsin.read(ARQ_TESTE)
25
+ assert n.valores is None
26
+
27
+
28
+ def test_eq_cviol_rhv_sin():
29
+ m: MagicMock = mock_open(read_data="".join(MockCVRHVs))
30
+ with patch("builtins.open", m):
31
+ n1 = CviolRhvsin.read(ARQ_TESTE)
32
+ n2 = CviolRhvsin.read(ARQ_TESTE)
33
+ assert n1 == n2
34
+
35
+
36
+ # Não deve ter teste de diferença, visto que o atributo é
37
+ # implementado como Lazy Property.
@@ -0,0 +1,40 @@
1
+ from inewave.nwlistop.qbomb import Qbomb
2
+
3
+ from datetime import datetime
4
+ from tests.mocks.mock_open import mock_open
5
+ from unittest.mock import MagicMock, patch
6
+
7
+ from tests.mocks.arquivos.vbomb import MockVbomb
8
+
9
+ ARQ_TESTE = "./tests/mocks/arquivos/__init__.py"
10
+
11
+
12
+ def test_atributos_encontrados_qbomb():
13
+ m: MagicMock = mock_open(read_data="".join(MockVbomb))
14
+ with patch("builtins.open", m):
15
+ n = Qbomb.read(ARQ_TESTE)
16
+ assert n.estacao is not None
17
+ assert n.estacao == "Sta Cecilia"
18
+ assert n.valores is not None
19
+ assert n.valores.iloc[0, 0] == datetime(2023, 1, 1)
20
+ assert n.valores.iloc[-1, -1] == 0.0
21
+
22
+
23
+ def test_atributos_nao_encontrados_qbomb():
24
+ m: MagicMock = mock_open(read_data="")
25
+ with patch("builtins.open", m):
26
+ n = Qbomb.read(ARQ_TESTE)
27
+ assert n.estacao is None
28
+ assert n.valores is None
29
+
30
+
31
+ def test_eq_qbomb():
32
+ m: MagicMock = mock_open(read_data="".join(MockVbomb))
33
+ with patch("builtins.open", m):
34
+ n1 = Qbomb.read(ARQ_TESTE)
35
+ n2 = Qbomb.read(ARQ_TESTE)
36
+ assert n1 == n2
37
+
38
+
39
+ # Não deve ter teste de diferença, visto que o atributo é
40
+ # implementado como Lazy Property.