Index: Riskeer/Integration/test/Riskeer.Integration.IO.Test/Exporters/AssemblyExporterTest.cs
===================================================================
diff -u -r5043fc31464a612ec3d6f7e0551691b013e70b9d -r909984cc52c503677a37fd9772aa8da9f8b45846
--- Riskeer/Integration/test/Riskeer.Integration.IO.Test/Exporters/AssemblyExporterTest.cs (.../AssemblyExporterTest.cs) (revision 5043fc31464a612ec3d6f7e0551691b013e70b9d)
+++ Riskeer/Integration/test/Riskeer.Integration.IO.Test/Exporters/AssemblyExporterTest.cs (.../AssemblyExporterTest.cs) (revision 909984cc52c503677a37fd9772aa8da9f8b45846)
@@ -137,11 +137,13 @@
}
[Test]
- [Explicit("Fix this test in WTI-2681")]
public void Export_FullyConfiguredAssessmentSectionAndValidAssemblyResults_ReturnsTrueAndCreatesFile()
{
// Setup
- string filePath = TestHelper.GetScratchPadPath(nameof(Export_FullyConfiguredAssessmentSectionAndValidAssemblyResults_ReturnsTrueAndCreatesFile));
+ string folderPath = TestHelper.GetScratchPadPath(nameof(Export_FullyConfiguredAssessmentSectionAndValidAssemblyResults_ReturnsTrueAndCreatesFile));
+ Directory.CreateDirectory(folderPath);
+ string filePath = Path.Combine(folderPath, "actualAssembly.gml");
+
AssessmentSection assessmentSection = CreateConfiguredAssessmentSection();
var exporter = new AssemblyExporter(assessmentSection, filePath);
@@ -151,25 +153,31 @@
{
var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance;
AssessmentSectionAssemblyCalculatorStub assessmentSectionAssemblyCalculator = calculatorFactory.LastCreatedAssessmentSectionAssemblyCalculator;
- assessmentSectionAssemblyCalculator.CombinedFailureMechanismSectionAssemblyOutput = new CombinedFailureMechanismSectionAssembly[0];
+ assessmentSectionAssemblyCalculator.CombinedFailureMechanismSectionAssemblyOutput = new CombinedFailureMechanismSectionAssembly[0];
- // Call
- bool isExported = exporter.Export();
+ try
+ {
+ // Call
+ bool isExported = exporter.Export();
- // Assert
- Assert.IsTrue(File.Exists(filePath));
- Assert.IsTrue(isExported);
+ // Assert
+ Assert.IsTrue(File.Exists(filePath));
+ Assert.IsTrue(isExported);
- string expectedGmlFilePath = Path.Combine(TestHelper.GetTestDataPath(TestDataPath.Riskeer.Integration.IO),
- nameof(AssemblyExporter), "ExpectedGml.gml");
- string expectedGml = File.ReadAllText(expectedGmlFilePath);
- string actualGml = File.ReadAllText(filePath);
- Assert.AreEqual(expectedGml, actualGml);
+ string expectedGmlFilePath = Path.Combine(TestHelper.GetTestDataPath(TestDataPath.Riskeer.Integration.IO),
+ nameof(AssemblyExporter), "ExpectedGml.gml");
+ string expectedGml = File.ReadAllText(expectedGmlFilePath);
+ string actualGml = File.ReadAllText(filePath);
+ Assert.AreEqual(expectedGml, actualGml);
+ }
+ finally
+ {
+ Directory.Delete(folderPath, true);
+ }
}
}
[Test]
- [Explicit("Fix this test in WTI-2681")]
public void Export_InvalidDirectoryRights_LogsErrorAndReturnsFalse()
{
// Setup
Index: Riskeer/Integration/test/Riskeer.Integration.IO.Test/test-data/AssemblyExporter/ExpectedGml.gml
===================================================================
diff -u -r2715bc391b4d0a970cd82c4cd6b574d06fc57602 -r909984cc52c503677a37fd9772aa8da9f8b45846
--- Riskeer/Integration/test/Riskeer.Integration.IO.Test/test-data/AssemblyExporter/ExpectedGml.gml (.../ExpectedGml.gml) (revision 2715bc391b4d0a970cd82c4cd6b574d06fc57602)
+++ Riskeer/Integration/test/Riskeer.Integration.IO.Test/test-data/AssemblyExporter/ExpectedGml.gml (.../ExpectedGml.gml) (revision 909984cc52c503677a37fd9772aa8da9f8b45846)
@@ -18,941 +18,367 @@
DKTRJCT
- 2017
- 2023
+ 2023
+ 2035
- WBI-2C-1
- A
+ WBI-2B-1
+ A+
+ 0.14
VOLLDG
-
- WBI-2B-1
- III-traject
- 0.75
+
+
+ GENRK
+ STPH
+
+ WBI-1B-1
+ 0
VOLLDG
-
-
- WBI-2A-1
- III-traject
+
+
+
+ GENRK
+ STBI
+
+ WBI-1B-1
+ 0
VOLLDG
-
-
-
- STPH
- GEDSPROBEX
- DIRECT
-
+
+
+
+ GENRK
+ GEKB
+
WBI-1B-1
- III-traject
- 1
+ 0
VOLLDG
-
-
-
- STBI
- GEDSPROBEX
- DIRECT
-
+
+
+
+ GENRK
+ HTKW
+
WBI-1B-1
- III-traject
- 1
+ 0
VOLLDG
-
-
-
- GEKB
- GEDPROB
- DIRECT
-
+
+
+
+ GENRK
+ BSKW
+
WBI-1B-1
- III-traject
- 1
+ 0
VOLLDG
-
-
-
- HTKW
- GEDPROB
- DIRECT
-
+
+
+
+ GENRK
+ STKWp
+
WBI-1B-1
- III-traject
- 1
+ 0
VOLLDG
-
-
-
- BSKW
- GEDPROB
- DIRECT
-
+
+
+
+ GENRK
+ ZST
+
WBI-1B-1
- III-traject
- 1
+ 0
VOLLDG
-
-
-
- STKWp
- GEDPROB
- DIRECT
-
+
+
+
+ GENRK
+ AGK
+
WBI-1B-1
- III-traject
- 1
+ 0
VOLLDG
-
-
-
- ZST
- GEDSPROB
- DIRECT
-
- WBI-1A-1
- II-traject
+
+
+
+ GENRK
+ GEBU
+
+ WBI-1B-1
+ 0
VOLLDG
-
-
-
- AGK
- GEDSPROB
- DIRECT
-
- WBI-1A-1
- II-traject
+
+
+
+ GENRK
+ STMI
+
+ WBI-1B-1
+ 0
VOLLDG
-
-
-
- GEBU
- GEDSPROB
- DIRECT
-
- WBI-1A-1
- II-traject
+
+
+
+ GENRK
+ GABU
+
+ WBI-1B-1
+ 0
VOLLDG
-
-
-
- DA
- GEDSPROB
- DIRECT
-
- WBI-1A-1
- NVT
+
+
+
+ GENRK
+ GABI
+
+ WBI-1B-1
+ 0
VOLLDG
-
-
-
- STMI
- GEEN
- DIRECT
-
- WBI-1A-1
- II-traject
+
+
+
+ GENRK
+ PKW
+
+ WBI-1B-1
+ 0
VOLLDG
-
-
-
- GABU
- GEEN
- DIRECT
-
- WBI-1A-1
- II-traject
+
+
+
+ GENRK
+ AWO
+
+ WBI-1B-1
+ 0
VOLLDG
-
-
-
- GABI
- GEEN
- DIRECT
-
- WBI-1A-1
- II-traject
+
+
+
+
+ WBI-0A-2
+ +I
+ 0.1
VOLLDG
-
-
-
- PKW
- GEEN
- DIRECT
-
- WBI-1A-1
- II-traject
+
+
+
+
+ WBI-0A-2
+ +I
+ 0.1
VOLLDG
-
-
-
- AWO
- GEEN
- DIRECT
-
- WBI-1A-1
- II-traject
+
+
+
+
+ WBI-0A-2
+ +I
+ 0.1
VOLLDG
-
-
-
-
- WBI-0A-1
- GECBNTR
- VI-vak
- 1
-
-
- WBI-0E-1
- EENVDGETS
- VII-vak
- 1
-
-
- WBI-0G-5
- GEDTETS
- VI-vak
- 1
-
-
- WBI-0T-5
- TOETSOPMT
- VI-vak
- 1
-
-
-
-
- WBI-0A-1
- GECBNTR
- VI-vak
- 1
-
-
- WBI-0E-1
- EENVDGETS
- VII-vak
- 1
-
-
- WBI-0G-5
- GEDTETS
- VI-vak
- 1
-
-
- WBI-0T-5
- TOETSOPMT
- VI-vak
- 1
-
-
-
-
- WBI-0A-1
- GECBNTR
- VI-vak
- 1
-
-
- WBI-0E-1
- EENVDGETS
- VII-vak
- 1
-
-
- WBI-0G-5
- GEDTETS
- VI-vak
- 1
-
-
- WBI-0T-5
- TOETSOPMT
- VI-vak
- 1
-
-
-
-
- WBI-0A-1
- GECBNTR
- VI-vak
- 1
-
-
- WBI-0E-1
- EENVDGETS
- VII-vak
- 1
-
-
- WBI-0G-5
- GEDTETS
- VI-vak
- 1
-
-
- WBI-0T-5
- TOETSOPMT
- VI-vak
- 1
-
-
-
-
- WBI-0A-1
- GECBNTR
- VI-vak
- 1
-
-
- WBI-0E-3
- EENVDGETS
- VII-vak
- 1
-
-
- WBI-0G-3
- GEDTETS
- VI-vak
- 1
-
-
- WBI-0T-3
- TOETSOPMT
- VI-vak
- 1
-
-
-
-
- WBI-0A-1
- GECBNTR
- VI-vak
- 1
-
-
- WBI-0E-3
- EENVDGETS
- VII-vak
- 1
-
-
- WBI-0G-3
- GEDTETS
- VI-vak
- 1
-
-
- WBI-0T-3
- TOETSOPMT
- VI-vak
- 1
-
-
-
-
- WBI-0A-1
- GECBNTR
- VI-vak
- 1
-
-
- WBI-0E-1
- EENVDGETS
- VII-vak
- 1
-
-
- WBI-0G-3
- GEDTETS
- VI-vak
- 1
-
-
- WBI-0T-3
- TOETSOPMT
- VI-vak
- 1
-
-
-
-
- WBI-0A-1
- GECBNTR
- VI-vak
- 1
-
-
- WBI-0E-1
- EENVDGETS
- VII-vak
- 1
-
-
- WBI-0G-3
- GEDTETS
- VI-vak
- 1
-
-
- WBI-0T-3
- TOETSOPMT
- VI-vak
- 1
-
-
-
-
- WBI-0A-1
- GECBNTR
- VI-vak
- 1
-
-
- WBI-0E-1
- EENVDGETS
- VII-vak
- 1
-
-
- WBI-0G-3
- GEDTETS
- VI-vak
- 1
-
-
- WBI-0T-3
- TOETSOPMT
- VI-vak
- 1
-
-
-
-
- WBI-0A-1
- GECBNTR
- VI-vak
- 1
-
-
- WBI-0E-1
- EENVDGETS
- VII-vak
- 1
-
-
- WBI-0G-3
- GEDTETS
- VI-vak
- 1
-
-
- WBI-0T-3
- TOETSOPMT
- VI-vak
- 1
-
-
-
-
- WBI-0A-1
- GECBNTR
- VI-vak
- 1
-
-
- WBI-0E-3
- EENVDGETS
- VII-vak
- 1
-
-
- WBI-0G-3
- GEDTETS
- VI-vak
- 1
-
-
- WBI-0T-3
- TOETSOPMT
- VI-vak
- 1
-
-
-
-
- WBI-0A-1
- GECBNTR
- VI-vak
- 1
-
-
- WBI-0E-3
- EENVDGETS
- VII-vak
- 1
-
-
- WBI-0G-3
- GEDTETS
- VI-vak
- 1
-
-
- WBI-0T-3
- TOETSOPMT
- VI-vak
- 1
-
-
-
-
- WBI-0A-1
- GECBNTR
- I-vak
-
-
- WBI-0E-3
- EENVDGETS
- VII-vak
-
-
- WBI-0G-6
- GEDTETS
- II-vak
-
-
- WBI-0T-4
- TOETSOPMT
- I-vak
-
-
-
-
- WBI-0A-1
- GECBNTR
- I-vak
-
-
- WBI-0E-3
- EENVDGETS
- VII-vak
-
-
- WBI-0G-6
- GEDTETS
- II-vak
-
-
- WBI-0T-4
- TOETSOPMT
- I-vak
-
-
-
-
- WBI-0A-1
- GECBNTR
- I-vak
-
-
- WBI-0E-1
- EENVDGETS
- VII-vak
-
-
- WBI-0G-6
- GEDTETS
- II-vak
-
-
- WBI-0T-4
- TOETSOPMT
- I-vak
-
-
-
-
- WBI-0A-1
- GECBNTR
- I-vak
-
-
- WBI-0E-1
- EENVDGETS
- VII-vak
-
-
- WBI-0G-6
- GEDTETS
- II-vak
-
-
- WBI-0T-4
- TOETSOPMT
- I-vak
-
-
-
-
- WBI-0A-1
- GECBNTR
- I-vak
-
-
- WBI-0E-1
- EENVDGETS
- VII-vak
-
-
- WBI-0G-6
- GEDTETS
- II-vak
-
-
- WBI-0T-4
- TOETSOPMT
- I-vak
-
-
-
-
- WBI-0A-1
- GECBNTR
- I-vak
-
-
- WBI-0E-1
- EENVDGETS
- VII-vak
-
-
- WBI-0G-6
- GEDTETS
- II-vak
-
-
- WBI-0T-4
- TOETSOPMT
- I-vak
-
-
-
-
- WBI-0A-1
- GECBNTR
- NVT
-
-
-
-
- WBI-0A-1
- GECBNTR
- I-vak
-
-
- WBI-0E-1
- EENVDGETS
- VII-vak
-
-
- WBI-0G-1
- GEDTETS
- II-vak
-
-
- WBI-0T-1
- TOETSOPMT
- I-vak
-
-
-
-
- WBI-0A-1
- GECBNTR
- I-vak
-
-
- WBI-0E-1
- EENVDGETS
- VII-vak
-
-
- WBI-0G-1
- GEDTETS
- II-vak
-
-
- WBI-0T-1
- TOETSOPMT
- I-vak
-
-
-
-
- WBI-0A-1
- GECBNTR
- I-vak
-
-
- WBI-0E-1
- EENVDGETS
- VII-vak
-
-
- WBI-0G-1
- GEDTETS
- II-vak
-
-
- WBI-0T-1
- TOETSOPMT
- I-vak
-
-
-
-
- WBI-0A-1
- GECBNTR
- I-vak
-
-
- WBI-0E-1
- EENVDGETS
- VII-vak
-
-
- WBI-0G-1
- GEDTETS
- II-vak
-
-
- WBI-0T-1
- TOETSOPMT
- I-vak
-
-
-
-
- WBI-0A-1
- GECBNTR
- I-vak
-
-
- WBI-0E-1
- EENVDGETS
- VII-vak
-
-
- WBI-0G-1
- GEDTETS
- II-vak
-
-
- WBI-0T-1
- TOETSOPMT
- I-vak
-
-
-
-
- WBI-0A-1
- GECBNTR
- I-vak
-
-
- WBI-0E-1
- EENVDGETS
- VII-vak
-
-
- WBI-0G-1
- GEDTETS
- II-vak
-
-
- WBI-0T-1
- TOETSOPMT
- I-vak
-
-
-
-
- WBI-0A-1
- GECBNTR
- I-vak
-
-
- WBI-0E-1
- EENVDGETS
- VII-vak
-
-
- WBI-0G-1
- GEDTETS
- II-vak
-
-
- WBI-0T-1
- TOETSOPMT
- I-vak
-
-
-
-
- WBI-0A-1
- GECBNTR
- I-vak
-
-
- WBI-0E-1
- EENVDGETS
- VII-vak
-
-
- WBI-0G-1
- GEDTETS
- II-vak
-
-
- WBI-0T-1
- TOETSOPMT
- I-vak
-
-
-
-
- WBI-0A-1
- GECBNTR
- I-vak
-
-
- WBI-0E-1
- EENVDGETS
- VII-vak
-
-
- WBI-0T-1
- TOETSOPMT
- I-vak
-
-
-
-
- WBI-0A-1
- GECBNTR
- I-vak
-
-
- WBI-0E-1
- EENVDGETS
- VII-vak
-
-
- WBI-0T-1
- TOETSOPMT
- I-vak
-
-
-
-
- WBI-3C-1
- GECBNTRDV
- III-vak
-
-
- WBI-3B-1
- STPH
- VI-vak
+
+
+
+
+ WBI-0A-2
+ +I
+ 0.1
VOLLDG
-
-
- WBI-3B-1
- GEKB
- VI-vak
+
+
+
+
+ WBI-0A-2
+ +I
+ 0.1
VOLLDG
-
-
- WBI-3B-1
- STBI
- VI-vak
+
+
+
+
+ WBI-0A-2
+ +I
+ 0.1
VOLLDG
-
-
- WBI-3B-1
- STMI
- VI-vak
+
+
+
+
+ WBI-0A-2
+ +I
+ 0.1
VOLLDG
-
-
- WBI-3B-1
- ZST
- VI-vak
+
+
+
+
+ WBI-0A-2
+ +I
+ 0.1
VOLLDG
-
-
- WBI-3B-1
- AGK
- VI-vak
+
+
+
+
+ WBI-0A-2
+ +I
+ 0.1
VOLLDG
-
-
- WBI-3B-1
- AWO
- VI-vak
+
+
+
+
+ WBI-0A-2
+ +I
+ 0.1
VOLLDG
-
-
- WBI-3B-1
- GEBU
- VI-vak
+
+
+
+
+ WBI-0A-2
+ +I
+ 0.1
VOLLDG
-
-
- WBI-3B-1
- GABU
- VI-vak
+
+
+
+
+ WBI-0A-2
+ +I
+ 0.1
VOLLDG
-
-
- WBI-3B-1
- GABI
- VI-vak
+
+
+
+
+ WBI-0A-2
+ +I
+ 0.1
VOLLDG
-
-
- WBI-3B-1
- HTKW
- VI-vak
+
+
+
+
+ WBI-0A-2
+ +I
+ 0.1
VOLLDG
-
-
- WBI-3B-1
- BSKW
- VI-vak
+
+
+
+
+ WBI-0A-2
+ +I
+ 0.1
VOLLDG
-
-
- WBI-3B-1
- PKW
- VI-vak
+
+
+
+
+ WBI-0A-2
+ +I
+ 0.1
VOLLDG
-
-
- WBI-3B-1
- STKWp
- VI-vak
+
+
+
+
+ WBI-0A-2
+ +I
+ 0.1
VOLLDG
-
-
- WBI-3B-1
- DA
- NVT
+
+
+
+
+ WBI-0A-2
+ +I
+ 0.1
VOLLDG
-
-
+
+
+
+
+ WBI-0A-2
+ +I
+ 0.1
+ VOLLDG
+
+
+
+
+ WBI-0A-2
+ +I
+ 0.1
+ VOLLDG
+
+
+
+
+ WBI-0A-2
+ +I
+ 0.1
+ VOLLDG
+
+
+
+
+ WBI-0A-2
+ +I
+ 0.1
+ VOLLDG
+
+
+
+
+ WBI-0A-2
+ +I
+ 0.1
+ VOLLDG
+
+
+
+
+ WBI-0A-2
+ +I
+ 0.1
+ VOLLDG
+
+
+
+
+ WBI-0A-2
+ +I
+ 0.1
+ VOLLDG
+
+
+
+
+ WBI-0A-2
+ +I
+ 0.1
+ VOLLDG
+
+
+
+
+ WBI-0A-2
+ +I
+ 0.1
+ VOLLDG
+
+
+
+
+ WBI-0A-2
+ +I
+ 0.1
+ VOLLDG
+
+
@@ -968,8 +394,7 @@
-
-
+
0
11.313708498984761
@@ -978,9 +403,9 @@
11.313708498984761
- TOETSSSTE
-
-
+ FAALMVK
+
+
11.313708498984761
22.627416997969522
@@ -989,9 +414,9 @@
11.313708498984761
- TOETSSSTE
-
-
+ FAALMVK
+
+
0
11.313708498984761
@@ -1000,9 +425,9 @@
11.313708498984761
- TOETSSSTE
-
-
+ FAALMVK
+
+
11.313708498984761
22.627416997969522
@@ -1011,9 +436,9 @@
11.313708498984761
- TOETSSSTE
-
-
+ FAALMVK
+
+
0
11.313708498984761
@@ -1022,9 +447,9 @@
11.313708498984761
- TOETSSSTE
-
-
+ FAALMVK
+
+
11.313708498984761
22.627416997969522
@@ -1033,9 +458,9 @@
11.313708498984761
- TOETSSSTE
-
-
+ FAALMVK
+
+
0
11.313708498984761
@@ -1044,9 +469,9 @@
11.313708498984761
- TOETSSSTE
-
-
+ FAALMVK
+
+
11.313708498984761
22.627416997969522
@@ -1055,9 +480,9 @@
11.313708498984761
- TOETSSSTE
-
-
+ FAALMVK
+
+
0
11.313708498984761
@@ -1066,9 +491,9 @@
11.313708498984761
- TOETSSSTE
-
-
+ FAALMVK
+
+
11.313708498984761
22.627416997969522
@@ -1077,9 +502,9 @@
11.313708498984761
- TOETSSSTE
-
-
+ FAALMVK
+
+
0
11.313708498984761
@@ -1088,9 +513,9 @@
11.313708498984761
- TOETSSSTE
-
-
+ FAALMVK
+
+
11.313708498984761
22.627416997969522
@@ -1099,9 +524,9 @@
11.313708498984761
- TOETSSSTE
-
-
+ FAALMVK
+
+
0
11.313708498984761
@@ -1110,9 +535,9 @@
11.313708498984761
- TOETSSSTE
-
-
+ FAALMVK
+
+
11.313708498984761
22.627416997969522
@@ -1121,9 +546,9 @@
11.313708498984761
- TOETSSSTE
-
-
+ FAALMVK
+
+
0
11.313708498984761
@@ -1132,9 +557,9 @@
11.313708498984761
- TOETSSSTE
-
-
+ FAALMVK
+
+
11.313708498984761
22.627416997969522
@@ -1143,9 +568,9 @@
11.313708498984761
- TOETSSSTE
-
-
+ FAALMVK
+
+
0
11.313708498984761
@@ -1154,9 +579,9 @@
11.313708498984761
- TOETSSSTE
-
-
+ FAALMVK
+
+
11.313708498984761
22.627416997969522
@@ -1165,31 +590,20 @@
11.313708498984761
- TOETSSSTE
-
-
+ FAALMVK
+
+
0
- 1.4142135623730952
-
-
- 1 1 2 2
-
-
- 1.4142135623730952
- TOETSSSTE
-
-
- 0
11.313708498984761
-1 -1 7 7
11.313708498984761
- TOETSSSTE
-
-
+ FAALMVK
+
+
11.313708498984761
22.627416997969522
@@ -1198,9 +612,9 @@
11.313708498984761
- TOETSSSTE
-
-
+ FAALMVK
+
+
0
11.313708498984761
@@ -1209,9 +623,9 @@
11.313708498984761
- TOETSSSTE
-
-
+ FAALMVK
+
+
11.313708498984761
22.627416997969522
@@ -1220,9 +634,9 @@
11.313708498984761
- TOETSSSTE
-
-
+ FAALMVK
+
+
0
11.313708498984761
@@ -1231,9 +645,9 @@
11.313708498984761
- TOETSSSTE
-
-
+ FAALMVK
+
+
11.313708498984761
22.627416997969522
@@ -1242,9 +656,9 @@
11.313708498984761
- TOETSSSTE
-
-
+ FAALMVK
+
+
0
11.313708498984761
@@ -1253,9 +667,9 @@
11.313708498984761
- TOETSSSTE
-
-
+ FAALMVK
+
+
11.313708498984761
22.627416997969522
@@ -1264,9 +678,9 @@
11.313708498984761
- TOETSSSTE
-
-
+ FAALMVK
+
+
0
11.313708498984761
@@ -1275,9 +689,9 @@
11.313708498984761
- TOETSSSTE
-
-
+ FAALMVK
+
+
11.313708498984761
22.627416997969522
@@ -1286,19 +700,7 @@
11.313708498984761
- TOETSSSTE
-
-
- 0
- 1
-
-
- 1 1 1.70710678118655 1.70710678118655
-
-
- 0.99999999999999989
- GECBNETSSTE
- WBI-3A-1
-
+ FAALMVK
+
\ No newline at end of file