inewave 1.8.0__py3-none-any.whl → 1.8.1__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.
inewave/__init__.py CHANGED
@@ -6,7 +6,7 @@ inewave é um módulo em Python para manipulação dos arquivos de entrada
6
6
  e saída do NEWAVE.
7
7
  """
8
8
 
9
- __version__ = "1.8.0"
9
+ __version__ = "1.8.1"
10
10
 
11
11
  from . import newave # noqa
12
12
  from . import nwlistcf # noqa
@@ -11,7 +11,7 @@ class TabelaCSV(Block):
11
11
  a partir de um modelo de linha, para arquivos de saída do NEWAVE.
12
12
  """
13
13
 
14
- __slots__ = []
14
+ __slots__: List[str] = []
15
15
 
16
16
  BEGIN_PATTERN = "-----;------;"
17
17
  LINE_MODEL = Line([])
@@ -2,7 +2,7 @@ from cfinterface.components.block import Block
2
2
  from cfinterface.components.literalfield import LiteralField
3
3
  from cfinterface.components.line import Line
4
4
 
5
- from typing import IO
5
+ from typing import IO, List
6
6
 
7
7
 
8
8
  class VersaoModelo(Block):
@@ -11,7 +11,7 @@ class VersaoModelo(Block):
11
11
  título do arquivo.
12
12
  """
13
13
 
14
- __slots__ = []
14
+ __slots__: List[str] = []
15
15
 
16
16
  BEGIN_PATTERN = r"CEPEL: NEWAVE"
17
17
  END_PATTERN = ""
@@ -36,7 +36,7 @@ class VersaoModeloLibs(Block):
36
36
  título do arquivo.
37
37
  """
38
38
 
39
- __slots__ = []
39
+ __slots__: List[str] = []
40
40
 
41
41
  BEGIN_PATTERN = r"NEWAVE -"
42
42
  END_PATTERN = ""
@@ -10,7 +10,7 @@ class SecaoDadosForwarh(Section):
10
10
  arquivo forwarh.dat
11
11
  """
12
12
 
13
- __slots__ = []
13
+ __slots__: List[str] = []
14
14
 
15
15
  ZVAZ = 100
16
16
 
@@ -12,7 +12,7 @@ class RegistroUHEHidr(Register):
12
12
  arquivo HIDR.
13
13
  """
14
14
 
15
- __slots__ = []
15
+ __slots__: List[str] = []
16
16
 
17
17
  LINE = Line(
18
18
  [
@@ -7,7 +7,7 @@ from cfinterface.components.floatfield import FloatField
7
7
  from cfinterface.adapters.components.repository import factory
8
8
  from copy import deepcopy
9
9
  from datetime import datetime
10
- from typing import Optional, IO
10
+ from typing import Optional, IO, List
11
11
 
12
12
 
13
13
  class ModifRegister(Register):
@@ -73,7 +73,7 @@ class USINA(Register):
73
73
  Registro que contém a usina modificada.
74
74
  """
75
75
 
76
- __slots__ = []
76
+ __slots__: List[str] = []
77
77
 
78
78
  IDENTIFIER = " USINA"
79
79
  IDENTIFIER_DIGITS = 8
@@ -376,7 +376,7 @@ class VMAXT(Register):
376
376
  com data.
377
377
  """
378
378
 
379
- __slots__ = []
379
+ __slots__: List[str] = []
380
380
 
381
381
  IDENTIFIER = " VMAXT"
382
382
  IDENTIFIER_DIGITS = 8
@@ -439,7 +439,7 @@ class VMINT(Register):
439
439
  com data.
440
440
  """
441
441
 
442
- __slots__ = []
442
+ __slots__: List[str] = []
443
443
 
444
444
  IDENTIFIER = " VMINT"
445
445
  IDENTIFIER_DIGITS = 8
@@ -502,7 +502,7 @@ class VMINP(Register):
502
502
  com data para adoção de penalidade.
503
503
  """
504
504
 
505
- __slots__ = []
505
+ __slots__: List[str] = []
506
506
 
507
507
  IDENTIFIER = " VMINP"
508
508
  IDENTIFIER_DIGITS = 8
@@ -565,7 +565,7 @@ class VAZMINT(Register):
565
565
  com data.
566
566
  """
567
567
 
568
- __slots__ = []
568
+ __slots__: List[str] = []
569
569
 
570
570
  IDENTIFIER = " VAZMINT"
571
571
  IDENTIFIER_DIGITS = 8
@@ -613,7 +613,7 @@ class VAZMAXT(Register):
613
613
  com data.
614
614
  """
615
615
 
616
- __slots__ = []
616
+ __slots__: List[str] = []
617
617
 
618
618
  IDENTIFIER = " VAZMAXT"
619
619
  IDENTIFIER_DIGITS = 8
@@ -661,7 +661,7 @@ class TURBMAXT(Register):
661
661
  com data.
662
662
  """
663
663
 
664
- __slots__ = []
664
+ __slots__: List[str] = []
665
665
 
666
666
  IDENTIFIER = " TURBMAXT"
667
667
  IDENTIFIER_DIGITS = 9
@@ -709,7 +709,7 @@ class TURBMINT(Register):
709
709
  com data.
710
710
  """
711
711
 
712
- __slots__ = []
712
+ __slots__: List[str] = []
713
713
 
714
714
  IDENTIFIER = " TURBMINT"
715
715
  IDENTIFIER_DIGITS = 9
@@ -9,7 +9,7 @@ class RegistroVazoesPostos(Register):
9
9
  Registro com os dados associados às vazões dos postos.
10
10
  """
11
11
 
12
- __slots__ = []
12
+ __slots__: List[str] = []
13
13
 
14
14
  POSTOS = 320
15
15
 
inewave/newave/modif.py CHANGED
@@ -29,7 +29,7 @@ class Modif(RegisterFile):
29
29
  configurações das usinas hidroelétricas.
30
30
  """
31
31
 
32
- __slots__ = []
32
+ __slots__: List[str] = []
33
33
 
34
34
  T = TypeVar("T")
35
35
 
@@ -18,7 +18,7 @@ class ValoresSerie(Block):
18
18
  __slots__ = ["__linha", "__linha_ano", "__ano"]
19
19
 
20
20
  BEGIN_PATTERN = " ANO: "
21
- END_PATTERN = "MEDIA "
21
+ END_PATTERN = "MEDIA "
22
22
  HEADER_LINE = Line([])
23
23
  DATA_LINE = Line([])
24
24
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: inewave
3
- Version: 1.8.0
3
+ Version: 1.8.1
4
4
  Summary: Interface para arquivos do NEWAVE
5
5
  Home-page: https://github.com/rjmalves/inewave
6
6
  Author: Rogerio Alves
@@ -3,7 +3,7 @@ examples/plot_dger.py,sha256=e8Qi-DEBmxgGBgfJfABqx39rThuRXQlMHTOfobT601U,1563
3
3
  examples/plot_modif.py,sha256=hqB3WRRYP4CBEvnnhrBwlbIrFWzkiHqgaXe76b3olzo,2735
4
4
  examples/plot_pmo.py,sha256=-NgaJnsr8N6-8DWWfSH8n8G8Ad9E0StFJBt21xwZxME,1473
5
5
  examples/plot_sistema.py,sha256=mM287WEkPV_5NCz-nB9kH9So9KOAbjBfBeB0PTVfHCA,2422
6
- inewave/__init__.py,sha256=U56sv_V04j8nX5teszVmhXBkhoQEDqF2d4n1SVUJ_G0,235
6
+ inewave/__init__.py,sha256=l-P5bymGMXfai8Hinso_F31BQnE2JQ52dj9VxewBsXI,235
7
7
  inewave/config.py,sha256=fMgG2sqE_PNz30QCNxkgfPf78SEOAVfV07kGtO1bREE,1106
8
8
  inewave/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
9
  inewave/_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -64,7 +64,7 @@ inewave/newave/gtminpat.py,sha256=6Xb4j3ltFVc-5DlyPzYHcMt7Tf41jeNB8C58w6pglls,35
64
64
  inewave/newave/hidr.py,sha256=mTPxx254XO67j7P7YIImNZIwnM017DWz8HsuRIYONM8,11647
65
65
  inewave/newave/itaipu.py,sha256=tlJmIQLaSQpcliL2P5DrU9fXgcL7rNEsy8Z9optnseE,338
66
66
  inewave/newave/manutt.py,sha256=NkJ1CRxi0bbKeFEpX09eMQM8kPCGuqBMyAaK278-CEY,1386
67
- inewave/newave/modif.py,sha256=tEJowJhFaU01RZHrMT7t4LVNRAKzTnyiSPGmsi2YTuc,13967
67
+ inewave/newave/modif.py,sha256=9Y4gI9zPBAcav6fOS_Am65vCScX2hZ9fgi_Wxk_a9UM,13978
68
68
  inewave/newave/newavetim.py,sha256=wQSCRSApKW6rwBteoQ4zmPPa8A820SJ2FATIpjiG1uo,838
69
69
  inewave/newave/nwv_avl_evap.py,sha256=9N4qE7dz2DyvZ86XI_OUDn96XLfXc9M6JS2qIQG6zLA,1261
70
70
  inewave/newave/nwv_cortes_evap.py,sha256=mKNZMTwqlrMuna3Nx1NE0LM-kutbba-pxkv4-rijvfc,1299
@@ -125,14 +125,14 @@ inewave/newave/modelos/ensoaux.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3h
125
125
  inewave/newave/modelos/exph.py,sha256=scWdK6iZ-g3YJK-67WWRueng-WQgCoQKHvTFv4WrXLk,5569
126
126
  inewave/newave/modelos/expt.py,sha256=TgfHkVhZUbBcvRgctjxHgRHqcm_57BecXY5wKb1ZrXY,3360
127
127
  inewave/newave/modelos/forward.py,sha256=f3YDCMcl45DOYVa41XtI3A9Ko9pPmeI-_epu5ov3m4o,88425
128
- inewave/newave/modelos/forwarh.py,sha256=z4GfzvkSSPRy7NNoMdWhnQj1Ee0rEtrHoVLakRhUJbc,8220
128
+ inewave/newave/modelos/forwarh.py,sha256=46jHcPDTBftWm8Q23zzJwiXIoSnxAuQLMBzkA4BQq6s,8231
129
129
  inewave/newave/modelos/gee.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
130
130
  inewave/newave/modelos/ghmin.py,sha256=53Bno60jYq2BttvuRNMJ0ccOqA3dzPKUsrLAz9gPg-o,2962
131
131
  inewave/newave/modelos/gtminpat.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
132
- inewave/newave/modelos/hidr.py,sha256=TyUuxhMTOmUG9uZVoVuGeG6cICMszVwaESzD3c3Zmpc,15762
132
+ inewave/newave/modelos/hidr.py,sha256=ga3luPn4E7GDY5dl9UrnbIt2DUU1m1cs4EognfLsg2c,15773
133
133
  inewave/newave/modelos/itaipu.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
134
134
  inewave/newave/modelos/manutt.py,sha256=16sztv-hOdVUUeL2J5F9vBagZnII9-F-IGQJpiAkTK4,3781
135
- inewave/newave/modelos/modif.py,sha256=zv4p2SK-5u8gSoB2YozYBI-o87vFEXaalVcgygL4ucU,17065
135
+ inewave/newave/modelos/modif.py,sha256=uXNRcO03dwqCeoJ1kBSNWAiaYJLLqIDThAeqsym20Uo,17159
136
136
  inewave/newave/modelos/newavetim.py,sha256=7mfLuwT8hbr-KJkm_dKKFD4wJuLAVnuO6VJ5SciEA1U,2088
137
137
  inewave/newave/modelos/nwv_avl_evap.py,sha256=22oXfDH9R-I1HwAiaQgm7x21zDWGWVySWYsLfdvGlHg,1228
138
138
  inewave/newave/modelos/nwv_cortes_evap.py,sha256=nAgdZ-TdWPmokcG1qANgoKtfwyq3waIFclKcY7WyWtQ,1292
@@ -156,14 +156,14 @@ inewave/newave/modelos/vazaob.py,sha256=_G5Kd1PD7C5DU2aV_Xam67GpaqJTEvXCWuhiAO_P
156
156
  inewave/newave/modelos/vazaof.py,sha256=PSHPz4HrufV1yTz5JQEKrYZMZh7uGSoP_jaYVRntlsM,2673
157
157
  inewave/newave/modelos/vazaos.py,sha256=WlfIHMpByYhSKEk2bgwp2UDK_ZU6wSZ2w1wi6jFMHg8,2633
158
158
  inewave/newave/modelos/vazinat.py,sha256=aOM8r_4dmisEYY0od917NEAG3DsIa5HVGlEilzxIDE4,2886
159
- inewave/newave/modelos/vazoes.py,sha256=60QPlMnN-WJ7GaPmfNUPBq98A9O_sFDLo8bJXcnTndI,900
159
+ inewave/newave/modelos/vazoes.py,sha256=uURQVg8Zz6Xyg9bLsM9ehZJ3B_26NbGig6einYUKtxw,911
160
160
  inewave/newave/modelos/vazpast.py,sha256=dsymx68UmKhCkvFfRpGFNYZ0rIMUes0Zeb3cyXiLKP4,3487
161
161
  inewave/newave/modelos/volref_saz.py,sha256=QMcf5kQKu1geBzVp4dBVpbGZHK6w6Yk8H_ppAkTE6Ng,3504
162
162
  inewave/newave/modelos/arquivoscsv/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
163
163
  inewave/newave/modelos/arquivoscsv/arquivocsv.py,sha256=97HYqHCPo9T1K35x19ILV6mxwDeXgVdbDNULrZha5VI,1659
164
164
  inewave/newave/modelos/blocos/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
165
- inewave/newave/modelos/blocos/tabelacsv.py,sha256=N3sDO2FBxC5Wbm-Z83WGb8uVsCAFsx-rcJWl2PmUVzQ,2120
166
- inewave/newave/modelos/blocos/versaomodelo.py,sha256=zgSoIdtgtqkq2AaFQJQZU66l1tmrXypOlF_eBfwcNd4,1549
165
+ inewave/newave/modelos/blocos/tabelacsv.py,sha256=1MHxVBNW_SypjMC8nm24FkFvVGtUgnXguxq8V48zZOI,2131
166
+ inewave/newave/modelos/blocos/versaomodelo.py,sha256=fjmw8Tf8T7sW82kK-1JYL7Hq5Rn2geDV9-DJi_IIeUU,1577
167
167
  inewave/nwlistcf/__init__.py,sha256=NVTYQl6Gh_BbtXuoORDoY4XeFYVwoMzZVr3Ddou7ME4,218
168
168
  inewave/nwlistcf/arquivos.py,sha256=JaUlJ2Aw6sM2H1BEwSQb5J9ywMfq5r4GZXRJSA1N8s0,6739
169
169
  inewave/nwlistcf/caso.py,sha256=cahc8MmggJbHWj3FGXKQwt3IIi0W84S1Ut8O3C-QaGM,970
@@ -532,7 +532,7 @@ inewave/nwlistop/modelos/blocos/restricao.py,sha256=WxS9fnUe9Cr8d1ElGIFlPNgv4amL
532
532
  inewave/nwlistop/modelos/blocos/submercado.py,sha256=UNknSElcXsYVW_2KmVVra2XddCgSeK9VRO0jxUWWGqw,1025
533
533
  inewave/nwlistop/modelos/blocos/usina.py,sha256=cQvLVtG1NC8y4lP_to6-YjAKQRGRlaxOd77Jrj0JGAQ,1000
534
534
  inewave/nwlistop/modelos/blocos/valoresclassetermicaseriepatamar.py,sha256=8a5MbdaQ_hoYA3GcI4xa3b2yVtTDKChnOPqL314ACY0,3302
535
- inewave/nwlistop/modelos/blocos/valoresserie.py,sha256=LI36H32QrsRNFSHpOKqB9fhtaqu2R_324B_gjuW-2lg,2162
535
+ inewave/nwlistop/modelos/blocos/valoresserie.py,sha256=ZS7fwdeYO4QttpvfVf4Oj4sbI47ed9O2TQC0L4md_e8,2161
536
536
  inewave/nwlistop/modelos/blocos/valoresseriepatamar.py,sha256=HTvWWxUEfSwG08uIJwFzVL-DQ6ux4MKUQh_wEYTOQmk,2594
537
537
  tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
538
538
  tests/_arquivos/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -895,8 +895,8 @@ tests/nwlistop/test_nwlistopdat.py,sha256=1RFOziEIrQy1Vy73pAxBRTeCN6dSvcgbx3rAb5
895
895
  tests/nwlistop/test_perdf.py,sha256=HTBNLJMnayhdGY7xnpQerEQ3OfH-lbdhrNZxZRjlT3o,1139
896
896
  tests/nwlistop/test_perdfm.py,sha256=AIRdaa1F3NDjlung31YH_DjzKQ-yT7TKm2OIgJymOS4,1166
897
897
  tests/nwlistop/test_perdfsin.py,sha256=zJ8Ky1lxmMG8tU6fXXfJlmkyO5MnJ3RhF94fmjlfwwk,1115
898
- tests/nwlistop/test_pivarm.py,sha256=N6l1EhJilcTv2A1pHltZ9G01azX6qALoalQFBBd64oE,1238
899
- tests/nwlistop/test_pivarmincr.py,sha256=NYRTMhAdPcMfi9qoLPpNiBMsMAcmHhJXWWSYeY2macs,1286
898
+ tests/nwlistop/test_pivarm.py,sha256=0ELsmCa0UDJ3ut0qek3tMLIOvOsOk5C_9RZmQmdKnfg,1775
899
+ tests/nwlistop/test_pivarmincr.py,sha256=O5AAkfIl2uHzq09egkcyhQp3rpvIkKm9jG5rQlUHKiw,1858
900
900
  tests/nwlistop/test_qafluh.py,sha256=H0O1e7SqfVlC6gpF2npmNb-gcS7sWI59ew5Px1bxDvY,1190
901
901
  tests/nwlistop/test_qbomb.py,sha256=pAvh6MsjS9dkyBHHL_PRnLZ9Vlt-bUDTYSdRw3qmB1o,1186
902
902
  tests/nwlistop/test_qdesviouh.py,sha256=X2x9u1FO4nH0pIXWO4LMUfSxESm15yBcoPxCAdXy3JA,1229
@@ -952,8 +952,8 @@ tests/nwlistop/test_vmortm.py,sha256=re8ypER8xgRbgRdgBd1H97G1ebNxtYZn23_nBGyWwhU
952
952
  tests/nwlistop/test_vmortsin.py,sha256=LvdpNPPZtnQWIxrLMUx_KIg6k22pOif6SzmRasAjquc,1113
953
953
  tests/nwlistop/test_vretiradauh.py,sha256=tF59BcX4SY-Jn1rULJJB8ZbpR8D3SRSBo10CI4w62QE,1236
954
954
  tests/nwlistop/test_vturuh.py,sha256=wvQ9zq9nuHdt0CPNt3SkPKMGq5WHQs7nZUnRaY33ONQ,1190
955
- inewave-1.8.0.dist-info/LICENSE.md,sha256=0jOBL78mjzscN0-XI-6YtK1IqnODUbG85DaKAMH4XJ8,1070
956
- inewave-1.8.0.dist-info/METADATA,sha256=i7-6QNp523Gfdhp83usULWtAht9zpGxSsESq4TfbQ7o,1958
957
- inewave-1.8.0.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
958
- inewave-1.8.0.dist-info/top_level.txt,sha256=o3hXlvlgJI4qWYy-wVzUYago7roEBl3kP5IL3QR9L70,23
959
- inewave-1.8.0.dist-info/RECORD,,
955
+ inewave-1.8.1.dist-info/LICENSE.md,sha256=0jOBL78mjzscN0-XI-6YtK1IqnODUbG85DaKAMH4XJ8,1070
956
+ inewave-1.8.1.dist-info/METADATA,sha256=Qdu6eyoA6otwLKooLJifKHQB_7GcngTLOGb0InuHsfA,1958
957
+ inewave-1.8.1.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
958
+ inewave-1.8.1.dist-info/top_level.txt,sha256=o3hXlvlgJI4qWYy-wVzUYago7roEBl3kP5IL3QR9L70,23
959
+ inewave-1.8.1.dist-info/RECORD,,
@@ -4,12 +4,13 @@ from datetime import datetime
4
4
  from tests.mocks.mock_open import mock_open
5
5
  from unittest.mock import MagicMock, patch
6
6
 
7
- from tests.mocks.arquivos.pivarm import MockPivarm
7
+ from tests.mocks.arquivos.pivarm import MockPivarm, MockPivarm_v29_2
8
8
 
9
9
  ARQ_TESTE = "./tests/mocks/arquivos/__init__.py"
10
10
 
11
11
 
12
12
  def test_atributos_encontrados_pivarm():
13
+ Pivarm.set_version("28.12")
13
14
  m: MagicMock = mock_open(read_data="".join(MockPivarm))
14
15
  with patch("builtins.open", m):
15
16
  n = Pivarm.read(ARQ_TESTE)
@@ -21,6 +22,19 @@ def test_atributos_encontrados_pivarm():
21
22
  assert n.valores.iloc[-1, -1] == 11.57
22
23
 
23
24
 
25
+ def test_atributos_encontrados_pivarm_v29_2():
26
+ Pivarm.set_version("29.2")
27
+ m: MagicMock = mock_open(read_data="".join(MockPivarm_v29_2))
28
+ with patch("builtins.open", m):
29
+ n = Pivarm.read(ARQ_TESTE)
30
+ assert n.usina is not None
31
+ assert n.usina == "CAMARGOS"
32
+ assert n.valores is not None
33
+ assert n.valores.iloc[0, 0] == datetime(2021, 1, 1)
34
+ assert n.valores.iloc[3, -1] == -312253.4
35
+ assert n.valores.iloc[-1, -1] == -418673.9
36
+
37
+
24
38
  def test_atributos_nao_encontrados_pivarm():
25
39
  m: MagicMock = mock_open(read_data="")
26
40
  with patch("builtins.open", m):
@@ -4,12 +4,16 @@ from datetime import datetime
4
4
  from tests.mocks.mock_open import mock_open
5
5
  from unittest.mock import MagicMock, patch
6
6
 
7
- from tests.mocks.arquivos.pivarmincr import MockPivarmincr
7
+ from tests.mocks.arquivos.pivarmincr import (
8
+ MockPivarmincr,
9
+ MockPivarmincr_v29_2,
10
+ )
8
11
 
9
12
  ARQ_TESTE = "./tests/mocks/arquivos/__init__.py"
10
13
 
11
14
 
12
15
  def test_atributos_encontrados_pivarmincr():
16
+ Pivarmincr.set_version("28.12")
13
17
  m: MagicMock = mock_open(read_data="".join(MockPivarmincr))
14
18
  with patch("builtins.open", m):
15
19
  n = Pivarmincr.read(ARQ_TESTE)
@@ -21,6 +25,19 @@ def test_atributos_encontrados_pivarmincr():
21
25
  assert n.valores.iloc[-1, -1] == 0.89
22
26
 
23
27
 
28
+ def test_atributos_encontrados_pivarmincr_v29_2():
29
+ Pivarmincr.set_version("29.2")
30
+ m: MagicMock = mock_open(read_data="".join(MockPivarmincr_v29_2))
31
+ with patch("builtins.open", m):
32
+ n = Pivarmincr.read(ARQ_TESTE)
33
+ assert n.usina is not None
34
+ assert n.usina == "FURNAS"
35
+ assert n.valores is not None
36
+ assert n.valores.iloc[0, 0] == datetime(2021, 1, 1)
37
+ assert n.valores.iloc[3, -1] == -312253.4
38
+ assert n.valores.iloc[-1, -1] == -418673.9
39
+
40
+
24
41
  def test_atributos_nao_encontrados_pivarmincr():
25
42
  m: MagicMock = mock_open(read_data="")
26
43
  with patch("builtins.open", m):