ValidationWritersTest.java
/**
* Copyright (c) 2018, RTE (http://www.rte-france.com)
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
* SPDX-License-Identifier: MPL-2.0
*/
package com.powsybl.loadflow.validation.io;
import com.google.common.collect.Sets;
import com.google.common.jimfs.Configuration;
import com.google.common.jimfs.Jimfs;
import com.powsybl.loadflow.LoadFlowParameters;
import com.powsybl.loadflow.validation.ValidationConfig;
import com.powsybl.loadflow.validation.ValidationOutputWriter;
import com.powsybl.loadflow.validation.ValidationType;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import java.io.IOException;
import java.nio.file.FileSystem;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.Set;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertNull;
/**
*
* @author Massimo Ferraro {@literal <massimo.ferraro@techrain.eu>}
*/
class ValidationWritersTest {
private final ValidationConfig config = new ValidationConfig(ValidationConfig.THRESHOLD_DEFAULT, ValidationConfig.VERBOSE_DEFAULT, "LoadFlowMock",
ValidationConfig.TABLE_FORMATTER_FACTORY_DEFAULT, ValidationConfig.EPSILON_X_DEFAULT,
ValidationConfig.APPLY_REACTANCE_CORRECTION_DEFAULT, ValidationOutputWriter.CSV_MULTILINE,
new LoadFlowParameters(), ValidationConfig.OK_MISSING_VALUES_DEFAULT,
ValidationConfig.NO_REQUIREMENT_IF_REACTIVE_BOUND_INVERSION_DEFAULT, ValidationConfig.COMPARE_RESULTS_DEFAULT,
ValidationConfig.CHECK_MAIN_COMPONENT_ONLY_DEFAULT, ValidationConfig.NO_REQUIREMENT_IF_SETPOINT_OUTSIDE_POWERS_BOUNDS);
private final Set<ValidationType> usedValidationTypes = Sets.immutableEnumSet(ValidationType.BUSES, ValidationType.FLOWS, ValidationType.GENERATORS);
private final Set<ValidationType> unusedValidationTypes = Sets.immutableEnumSet(ValidationType.SHUNTS, ValidationType.SVCS, ValidationType.TWTS);
private FileSystem fileSystem;
private ValidationWriters validationWriters;
@BeforeEach
void setUp() throws IOException {
fileSystem = Jimfs.newFileSystem(Configuration.unix());
Path folder = Files.createDirectory(fileSystem.getPath("/folder"));
validationWriters = new ValidationWriters("network", usedValidationTypes, folder, config);
}
@Test
void getWriter() {
usedValidationTypes.forEach(type -> {
assertNotNull(validationWriters.getWriter(type));
});
unusedValidationTypes.forEach(type -> {
assertNull(validationWriters.getWriter(type));
});
}
@AfterEach
void tearDown() throws Exception {
validationWriters.close();
fileSystem.close();
}
}