From 82ce3384ba5a5d40f9ce79c1a59950f90c98a479 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Kundr=C3=A1t?= Date: Sat, 21 Mar 2020 13:18:09 +0100 Subject: [PATCH] tests: Use XLSX for the CORONET topology Now that XLSX is officially supported, it should be tested as well. Change-Id: I9286d3cb56950d554582d2eaf8153da5ffdd771a --- Excel_userguide.rst | 2 +- README.rst | 4 ++-- tests/data/CORONET_Global_Topology.xls | Bin 30720 -> 0 bytes tests/data/CORONET_Global_Topology.xlsx | Bin 0 -> 16297 bytes tests/test_parser.py | 4 ++-- 5 files changed, 5 insertions(+), 5 deletions(-) delete mode 100644 tests/data/CORONET_Global_Topology.xls create mode 100644 tests/data/CORONET_Global_Topology.xlsx diff --git a/Excel_userguide.rst b/Excel_userguide.rst index 79ca3498..dffafecf 100644 --- a/Excel_userguide.rst +++ b/Excel_userguide.rst @@ -34,7 +34,7 @@ Each line represents a 'node' (ROADM site or an in line amplifier site ILA or a - If filled, it can take "ROADM", "FUSED" or "ILA" values. If another string is used, it will be considered as not filled. FUSED means that ingress and egress spans will be fused together. - *State*, *Country*, *Region* are not mandatory. - "Region" is a holdover from the CORONET topology reference file `CORONET_Global_Topology.xls `_. CORONET separates its network into geographical regions (Europe, Asia, Continental US.) This information is not used by gnpy. + "Region" is a holdover from the CORONET topology reference file `CORONET_Global_Topology.xlsx `_. CORONET separates its network into geographical regions (Europe, Asia, Continental US.) This information is not used by gnpy. - *Longitude*, *Latitude* are not mandatory. If filled they should contain numbers. diff --git a/README.rst b/README.rst index 31a394da..38425de7 100644 --- a/README.rst +++ b/README.rst @@ -168,7 +168,7 @@ example, to use the CORONET Global network defined in $ ./examples/transmission_main_example.py examples/CORONET_Global_Topology.json It is also possible to use an Excel file input (for example -`examples/CORONET_Global_Topology.xls `_). +`examples/CORONET_Global_Topology.xlsx `_). The Excel file will be processed into a JSON file with the same prefix. For further instructions on how to prepare the Excel input file, see `Excel_userguide.rst `_. @@ -362,7 +362,7 @@ parameters: | | | Interest to support high level | | | | topologies that do not specify in line | | | | amplification sites. For example the | -| | | CORONET_Global_Topology.xls defines | +| | | CORONET_Global_Topology.xlsx defines | | | | links > 1000km between 2 sites: it | | | | couldn't be simulated if these links | | | | were not split in shorter span lengths. | diff --git a/tests/data/CORONET_Global_Topology.xls b/tests/data/CORONET_Global_Topology.xls deleted file mode 100644 index 6dea7f16581b02d2c15d9f087f245b58cba949a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30720 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 bRPc8m>)iPLb5w=?{l%Yy|7)1PhyT9-MU{z0 diff --git a/tests/data/CORONET_Global_Topology.xlsx b/tests/data/CORONET_Global_Topology.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..6af427b4d7b0b00fffc425478e19c3df06ee88ad GIT binary patch literal 16297 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