inewave 1.7.5__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 (155) 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/pmo.py +40 -0
  15. inewave/newave/nwv_avl_evap.py +10 -0
  16. inewave/newave/nwv_cortes_evap.py +10 -0
  17. inewave/newave/nwv_eco_evap.py +10 -0
  18. inewave/newave/pmo.py +17 -0
  19. inewave/nwlistop/__init__.py +65 -30
  20. inewave/nwlistop/c_v_rhq.py +10 -0
  21. inewave/nwlistop/c_v_rhq_s.py +10 -0
  22. inewave/nwlistop/c_v_rhv_s.py +10 -0
  23. inewave/nwlistop/celetricas.py +10 -0
  24. inewave/nwlistop/cviol_eletricasin.py +19 -0
  25. inewave/nwlistop/cviol_rhq.py +21 -0
  26. inewave/nwlistop/cviol_rhq_sin.py +19 -0
  27. inewave/nwlistop/cviol_rhv.py +21 -0
  28. inewave/nwlistop/cviol_rhv_sin.py +19 -0
  29. inewave/nwlistop/deletricas.py +10 -0
  30. inewave/nwlistop/depminuh.py +10 -0
  31. inewave/nwlistop/desvuh.py +10 -0
  32. inewave/nwlistop/dtbmax.py +10 -0
  33. inewave/nwlistop/dtbmin.py +10 -0
  34. inewave/nwlistop/dvazmax.py +10 -0
  35. inewave/nwlistop/modelos/cviol_eletricasin.py +28 -0
  36. inewave/nwlistop/modelos/cviol_rhq.py +28 -0
  37. inewave/nwlistop/modelos/cviol_rhq_sin.py +28 -0
  38. inewave/nwlistop/modelos/cviol_rhv.py +26 -0
  39. inewave/nwlistop/modelos/cviol_rhv_sin.py +26 -0
  40. inewave/nwlistop/modelos/pivarm.py +20 -0
  41. inewave/nwlistop/modelos/pivarmincr.py +20 -0
  42. inewave/nwlistop/modelos/qbomb.py +28 -0
  43. inewave/nwlistop/modelos/qdesviouh.py +28 -0
  44. inewave/nwlistop/modelos/qturuh.py +28 -0
  45. inewave/nwlistop/modelos/qvertuh.py +28 -0
  46. inewave/nwlistop/modelos/valor_agua.py +24 -0
  47. inewave/nwlistop/modelos/viol_eletricasin.py +28 -0
  48. inewave/nwlistop/modelos/viol_evmin.py +23 -0
  49. inewave/nwlistop/modelos/viol_evminm.py +23 -0
  50. inewave/nwlistop/modelos/viol_evminsin.py +23 -0
  51. inewave/nwlistop/modelos/viol_fpha.py +31 -0
  52. inewave/nwlistop/modelos/viol_ghmin.py +29 -0
  53. inewave/nwlistop/modelos/viol_ghminm.py +29 -0
  54. inewave/nwlistop/modelos/viol_ghminsin.py +29 -0
  55. inewave/nwlistop/modelos/viol_ghminuh.py +28 -0
  56. inewave/nwlistop/modelos/viol_lpp_dfmax.py +29 -0
  57. inewave/nwlistop/modelos/viol_lpp_dfmaxm.py +29 -0
  58. inewave/nwlistop/modelos/viol_lpp_dfmaxsin.py +29 -0
  59. inewave/nwlistop/modelos/viol_lpp_tbmax.py +29 -0
  60. inewave/nwlistop/modelos/viol_lpp_tbmaxm.py +29 -0
  61. inewave/nwlistop/modelos/viol_lpp_tbmaxsin.py +29 -0
  62. inewave/nwlistop/modelos/viol_neg_evap.py +26 -0
  63. inewave/nwlistop/modelos/viol_pos_evap.py +26 -0
  64. inewave/nwlistop/modelos/viol_turbmax.py +28 -0
  65. inewave/nwlistop/modelos/viol_turbmin.py +28 -0
  66. inewave/nwlistop/modelos/viol_vazmax.py +28 -0
  67. inewave/nwlistop/modelos/viol_vazmin.py +28 -0
  68. inewave/nwlistop/modelos/vretiradauh.py +26 -0
  69. inewave/nwlistop/pivarm.py +13 -2
  70. inewave/nwlistop/pivarmincr.py +13 -2
  71. inewave/nwlistop/qbomb.py +23 -0
  72. inewave/nwlistop/qdesviouh.py +21 -0
  73. inewave/nwlistop/qturuh.py +21 -0
  74. inewave/nwlistop/qvertuh.py +21 -0
  75. inewave/nwlistop/vagua.py +10 -0
  76. inewave/nwlistop/valor_agua.py +21 -0
  77. inewave/nwlistop/vertuh.py +10 -0
  78. inewave/nwlistop/vevmin.py +10 -0
  79. inewave/nwlistop/vevminm.py +10 -0
  80. inewave/nwlistop/vevminsin.py +10 -0
  81. inewave/nwlistop/vghmin.py +10 -0
  82. inewave/nwlistop/vghminm.py +10 -0
  83. inewave/nwlistop/vghminsin.py +10 -0
  84. inewave/nwlistop/viol_eletricasin.py +19 -0
  85. inewave/nwlistop/viol_evmin.py +20 -0
  86. inewave/nwlistop/viol_evminm.py +22 -0
  87. inewave/nwlistop/viol_evminsin.py +19 -0
  88. inewave/nwlistop/viol_fpha.py +22 -0
  89. inewave/nwlistop/viol_ghmin.py +22 -0
  90. inewave/nwlistop/viol_ghminm.py +22 -0
  91. inewave/nwlistop/viol_ghminsin.py +19 -0
  92. inewave/nwlistop/viol_ghminuh.py +22 -0
  93. inewave/nwlistop/viol_lpp_dfmax.py +22 -0
  94. inewave/nwlistop/viol_lpp_dfmaxm.py +22 -0
  95. inewave/nwlistop/viol_lpp_dfmaxsin.py +18 -0
  96. inewave/nwlistop/viol_lpp_tbmax.py +22 -0
  97. inewave/nwlistop/viol_lpp_tbmaxm.py +22 -0
  98. inewave/nwlistop/viol_lpp_tbmaxsin.py +18 -0
  99. inewave/nwlistop/viol_neg_evap.py +22 -0
  100. inewave/nwlistop/viol_pos_evap.py +22 -0
  101. inewave/nwlistop/viol_turbmax.py +22 -0
  102. inewave/nwlistop/viol_turbmin.py +22 -0
  103. inewave/nwlistop/viol_vazmax.py +22 -0
  104. inewave/nwlistop/viol_vazmin.py +22 -0
  105. inewave/nwlistop/vretiradauh.py +21 -0
  106. inewave/nwlistop/vturuh.py +10 -0
  107. {inewave-1.7.5.dist-info → inewave-1.8.0.dist-info}/METADATA +1 -1
  108. {inewave-1.7.5.dist-info → inewave-1.8.0.dist-info}/RECORD +155 -46
  109. tests/libs/test_restricoes.py +0 -3
  110. tests/libs/test_usinas_hidreletricas.py +0 -2
  111. tests/mocks/arquivos/pivarm.py +22 -0
  112. tests/mocks/arquivos/pivarmincr.py +22 -0
  113. tests/mocks/arquivos/pmo.py +6 -1
  114. tests/mocks/arquivos/viol_fpha.py +29 -0
  115. tests/newave/test_evap_avl_desv.py +40 -0
  116. tests/newave/test_evap_cortes.py +41 -0
  117. tests/newave/test_evap_eco.py +41 -0
  118. tests/newave/test_fpha_avl_desv_s.py +39 -0
  119. tests/newave/test_fpha_avl_desv_v_q.py +38 -0
  120. tests/newave/test_fpha_cortes.py +48 -0
  121. tests/newave/test_fpha_eco.py +47 -0
  122. tests/newave/test_pmo.py +14 -0
  123. tests/nwlistop/test_cviol_eletricasin.py +37 -0
  124. tests/nwlistop/test_cviol_rhq_sin.py +37 -0
  125. tests/nwlistop/test_cviol_rhv_sin.py +37 -0
  126. tests/nwlistop/test_qbomb.py +40 -0
  127. tests/nwlistop/test_qdesviouh.py +40 -0
  128. tests/nwlistop/test_qturuh.py +40 -0
  129. tests/nwlistop/test_qvertuh.py +40 -0
  130. tests/nwlistop/test_valor_agua.py +40 -0
  131. tests/nwlistop/test_viol_eletricasin.py +37 -0
  132. tests/nwlistop/test_viol_evmin.py +40 -0
  133. tests/nwlistop/test_viol_evminm.py +40 -0
  134. tests/nwlistop/test_viol_evminsin.py +37 -0
  135. tests/nwlistop/test_viol_fpha.py +40 -0
  136. tests/nwlistop/test_viol_ghmin.py +40 -0
  137. tests/nwlistop/test_viol_ghminm.py +40 -0
  138. tests/nwlistop/test_viol_ghminsin.py +37 -0
  139. tests/nwlistop/test_viol_ghminuh.py +40 -0
  140. tests/nwlistop/test_viol_lpp_dfmax.py +40 -0
  141. tests/nwlistop/test_viol_lpp_dfmaxm.py +40 -0
  142. tests/nwlistop/test_viol_lpp_dfmaxsin.py +37 -0
  143. tests/nwlistop/test_viol_lpp_tbmax.py +40 -0
  144. tests/nwlistop/test_viol_lpp_tbmaxm.py +40 -0
  145. tests/nwlistop/test_viol_lpp_tbmaxsin.py +37 -0
  146. tests/nwlistop/test_viol_neg_evap.py +41 -0
  147. tests/nwlistop/test_viol_pos_evap.py +40 -0
  148. tests/nwlistop/test_viol_turbmax.py +40 -0
  149. tests/nwlistop/test_viol_turbmin.py +40 -0
  150. tests/nwlistop/test_viol_vazmax.py +40 -0
  151. tests/nwlistop/test_viol_vazmin.py +40 -0
  152. tests/nwlistop/test_vretiradauh.py +40 -0
  153. {inewave-1.7.5.dist-info → inewave-1.8.0.dist-info}/LICENSE.md +0 -0
  154. {inewave-1.7.5.dist-info → inewave-1.8.0.dist-info}/WHEEL +0 -0
  155. {inewave-1.7.5.dist-info → inewave-1.8.0.dist-info}/top_level.txt +0 -0
@@ -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.
@@ -0,0 +1,40 @@
1
+ from inewave.nwlistop.qdesviouh import Qdesviouh
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.vdesviouh import MockVdesviouh
8
+
9
+ ARQ_TESTE = "./tests/mocks/arquivos/__init__.py"
10
+
11
+
12
+ def test_atributos_encontrados_qdesviouh():
13
+ m: MagicMock = mock_open(read_data="".join(MockVdesviouh))
14
+ with patch("builtins.open", m):
15
+ n = Qdesviouh.read(ARQ_TESTE)
16
+ assert n.usina is not None
17
+ assert n.usina == "CAMARGOS"
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_qdesviouh():
24
+ m: MagicMock = mock_open(read_data="")
25
+ with patch("builtins.open", m):
26
+ n = Qdesviouh.read(ARQ_TESTE)
27
+ assert n.usina is None
28
+ assert n.valores is None
29
+
30
+
31
+ def test_eq_qdesviouh():
32
+ m: MagicMock = mock_open(read_data="".join(MockVdesviouh))
33
+ with patch("builtins.open", m):
34
+ n1 = Qdesviouh.read(ARQ_TESTE)
35
+ n2 = Qdesviouh.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.
@@ -0,0 +1,40 @@
1
+ from inewave.nwlistop.qturuh import Qturuh
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.vturuh import MockVturUH
8
+
9
+ ARQ_TESTE = "./tests/mocks/arquivos/__init__.py"
10
+
11
+
12
+ def test_atributos_encontrados_qturuh():
13
+ m: MagicMock = mock_open(read_data="".join(MockVturUH))
14
+ with patch("builtins.open", m):
15
+ n = Qturuh.read(ARQ_TESTE)
16
+ assert n.usina is not None
17
+ assert n.usina == "CAMARGOS"
18
+ assert n.valores is not None
19
+ assert n.valores.iloc[0, 0] == datetime(2020, 1, 1)
20
+ assert n.valores.iloc[-1, -1] == 0.0
21
+
22
+
23
+ def test_atributos_nao_encontrados_qturuh():
24
+ m: MagicMock = mock_open(read_data="")
25
+ with patch("builtins.open", m):
26
+ n = Qturuh.read(ARQ_TESTE)
27
+ assert n.usina is None
28
+ assert n.valores is None
29
+
30
+
31
+ def test_eq_qturuh():
32
+ m: MagicMock = mock_open(read_data="".join(MockVturUH))
33
+ with patch("builtins.open", m):
34
+ n1 = Qturuh.read(ARQ_TESTE)
35
+ n2 = Qturuh.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.
@@ -0,0 +1,40 @@
1
+ from inewave.nwlistop.qvertuh import Qvertuh
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.vertuh import MockVertuh
8
+
9
+ ARQ_TESTE = "./tests/mocks/arquivos/__init__.py"
10
+
11
+
12
+ def test_atributos_encontrados_qvertuh():
13
+ m: MagicMock = mock_open(read_data="".join(MockVertuh))
14
+ with patch("builtins.open", m):
15
+ n = Qvertuh.read(ARQ_TESTE)
16
+ assert n.usina is not None
17
+ assert n.usina == "ESPORA"
18
+ assert n.valores is not None
19
+ assert n.valores.iloc[0, 0] == datetime(2020, 1, 1)
20
+ assert n.valores.iloc[-1, -1] == 0.0
21
+
22
+
23
+ def test_atributos_nao_encontrados_qvertuh():
24
+ m: MagicMock = mock_open(read_data="")
25
+ with patch("builtins.open", m):
26
+ n = Qvertuh.read(ARQ_TESTE)
27
+ assert n.usina is None
28
+ assert n.valores is None
29
+
30
+
31
+ def test_eq_qvertuh():
32
+ m: MagicMock = mock_open(read_data="".join(MockVertuh))
33
+ with patch("builtins.open", m):
34
+ n1 = Qvertuh.read(ARQ_TESTE)
35
+ n2 = Qvertuh.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.
@@ -0,0 +1,40 @@
1
+ from inewave.nwlistop.valor_agua import ValorAgua
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.vagua import MockVagua
8
+
9
+ ARQ_TESTE = "./tests/mocks/arquivos/__init__.py"
10
+
11
+
12
+ def test_atributos_encontrados_valor_agua():
13
+ m: MagicMock = mock_open(read_data="".join(MockVagua))
14
+ with patch("builtins.open", m):
15
+ n = ValorAgua.read(ARQ_TESTE)
16
+ assert n.ree is not None
17
+ assert n.ree == "SUDESTE"
18
+ assert n.valores is not None
19
+ assert n.valores.iloc[0, 0] == datetime(2022, 1, 1)
20
+ assert n.valores.iloc[-1, -1] == -0.09
21
+
22
+
23
+ def test_atributos_nao_encontrados_valor_agua():
24
+ m: MagicMock = mock_open(read_data="")
25
+ with patch("builtins.open", m):
26
+ n = ValorAgua.read(ARQ_TESTE)
27
+ assert n.ree is None
28
+ assert n.valores is None
29
+
30
+
31
+ def test_eq_valor_agua():
32
+ m: MagicMock = mock_open(read_data="".join(MockVagua))
33
+ with patch("builtins.open", m):
34
+ n1 = ValorAgua.read(ARQ_TESTE)
35
+ n2 = ValorAgua.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.
@@ -0,0 +1,37 @@
1
+ from inewave.nwlistop.viol_eletricasin import ViolEletricasin
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.deletricas import MockDeletricas
8
+
9
+ ARQ_TESTE = "./tests/mocks/arquivos/__init__.py"
10
+
11
+
12
+ def test_atributos_encontrados_viol_eletricasin():
13
+ m: MagicMock = mock_open(read_data="".join(MockDeletricas))
14
+ with patch("builtins.open", m):
15
+ n = ViolEletricasin.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_viol_eletricasin():
22
+ m: MagicMock = mock_open(read_data="")
23
+ with patch("builtins.open", m):
24
+ n = ViolEletricasin.read(ARQ_TESTE)
25
+ assert n.valores is None
26
+
27
+
28
+ def test_eq_viol_eletricasin():
29
+ m: MagicMock = mock_open(read_data="".join(MockDeletricas))
30
+ with patch("builtins.open", m):
31
+ n1 = ViolEletricasin.read(ARQ_TESTE)
32
+ n2 = ViolEletricasin.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.