[PATCH] Unit testing flowdepthdevelopment added
Wald Commits
scm-commit at wald.intevation.org
Tue Jun 12 15:04:47 CEST 2018
# HG changeset patch
# User gernotbelger
# Date 1528808680 -7200
# Node ID 48d87af1243e6d1a1f69e2dae3f58c827abe2a6d
# Parent 28fe5e65449537a95fc70d1ed6d40c00bfa5d0e5
Unit testing flowdepthdevelopment added
diff -r 28fe5e654495 -r 48d87af1243e gwt-client/src/test/java/test/AbstractModuleRunner.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/gwt-client/src/test/java/test/AbstractModuleRunner.java Tue Jun 12 15:04:40 2018 +0200
@@ -0,0 +1,344 @@
+package test;
+
+/** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde
+ * Software engineering by
+ * Björnsen Beratende Ingenieure GmbH
+ * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt
+ *
+ * This file is Free Software under the GNU AGPL (>=v3)
+ * and comes with ABSOLUTELY NO WARRANTY! Check out the
+ * documentation coming with Dive4Elements River for details.
+ */
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.IOUtils;
+import org.dive4elements.artifacts.common.ArtifactNamespaceContext;
+import org.dive4elements.artifacts.common.utils.ClientProtocolUtils;
+import org.dive4elements.artifacts.httpclient.exceptions.ConnectionException;
+import org.dive4elements.artifacts.httpclient.http.HttpClient;
+import org.dive4elements.artifacts.httpclient.http.HttpClientImpl;
+import org.dive4elements.artifacts.httpclient.http.response.DocumentResponseHandler;
+import org.dive4elements.artifacts.httpclient.utils.XMLUtils;
+import org.dive4elements.river.client.server.AdvanceServiceImpl;
+import org.dive4elements.river.client.server.ArtifactHelper;
+import org.dive4elements.river.client.server.CollectionHelper;
+import org.dive4elements.river.client.server.CreateCollectionServiceImpl;
+import org.dive4elements.river.client.server.FLYSArtifactCreator;
+import org.dive4elements.river.client.server.FeedServiceImpl;
+import org.dive4elements.river.client.server.auth.DefaultUser;
+import org.dive4elements.river.client.server.auth.User;
+import org.dive4elements.river.client.server.auth.UserClient;
+import org.dive4elements.river.client.shared.exceptions.ServerException;
+import org.dive4elements.river.client.shared.model.Artifact;
+import org.dive4elements.river.client.shared.model.Collection;
+import org.dive4elements.river.client.shared.model.Data;
+import org.dive4elements.river.client.shared.model.DataItem;
+import org.dive4elements.river.client.shared.model.DefaultCollection;
+import org.dive4elements.river.client.shared.model.DefaultDataItem;
+import org.dive4elements.river.client.shared.model.OutputMode;
+import org.dive4elements.river.client.shared.model.StringOptionsData;
+import org.junit.Assert;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+import test.BerechnungsartenTester.CalcMode;
+import test.BerechnungsartenTester.FilenameMapper;
+import test.BerechnungsartenTester.River;
+
+/**
+ * @author Domenico Nardi Tironi
+ *
+ */
+public abstract class AbstractModuleRunner {
+
+ public enum Infotype {
+ sinfo
+ }
+
+ private final String serverUrl = "http://localhost:8181";
+ private final String locale = "de";
+ private final HttpClient client;
+
+ private static final String exportFileDir = "D:" + File.separator;
+ private static final String IGNORE_ERSTELLDATUM = "# Datum der Erstellung";
+ private static final String IGNORE_FLYS_VERSION = "# FLYS-Version:";
+ private static final String IGNORE_BEARBEITER = "# Bearbeiter:";
+
+ private final String username;
+ private final String password;
+ private final Infotype infotype;
+ private final String userUuid;
+ private Collection collection;
+ private Artifact artifact;
+ private final FilenameMapper fileName;
+
+ // common attributes
+ private final CalcMode calcMode;
+ private final double from;
+ private final double to;
+ private final River river;
+
+ public AbstractModuleRunner(final String username, final String password, final Infotype infotype, final CalcMode sinfoCalcFlowDepth,
+ final FilenameMapper helloWorldFile, final double from, final double to, final River beispielfluss) throws ConnectionException, ServerException {
+ // common attributes (evtl. doch in subklassen, evtl. Zwischenhierarchiestufe einführen
+
+ this.calcMode = sinfoCalcFlowDepth;
+ this.river = beispielfluss;
+ this.from = from;
+ this.to = to;
+
+ this.username = username;
+ this.password = password;
+ this.infotype = infotype;
+ this.fileName = helloWorldFile;
+
+ // init
+ this.client = new HttpClientImpl(this.serverUrl, this.locale);
+ this.userUuid = makeUserUuid();
+ this.collection = getCollection();
+ this.artifact = getArtifact();
+ }
+
+ private String makeUserUuid() throws ConnectionException {
+ final User user = new DefaultUser(this.username, this.password, null, false, new ArrayList<String>(), new ArrayList<String>());
+ final UserClient userClient = new UserClient(this.serverUrl);
+ Element userElement;
+
+ userElement = userClient.findUser(user);
+ return userElement.getAttributeNS(ArtifactNamespaceContext.NAMESPACE_URI, "uuid");
+
+ }
+
+ protected final Artifact getArtifact() throws ServerException, ConnectionException {
+ if (this.artifact == null) {
+ this.artifact = ArtifactHelper.createArtifact(this.serverUrl, this.locale, this.infotype.name(), null);
+ setCollection(CollectionHelper.addArtifact(getCollection(), this.artifact, this.serverUrl, this.locale)); // wichtig; sorgt für Persistenz
+ }
+ return this.artifact;
+ }
+
+ protected Collection getCollection() throws ConnectionException {
+
+ if (this.collection == null) {
+ // lazy-Loading
+ final Document create = ClientProtocolUtils.newCreateCollectionDocument(null);
+ final Document doc = (Document) this.client.createCollection(create, this.userUuid, new DocumentResponseHandler());
+ final String uuid = XMLUtils.xpathString(doc, CreateCollectionServiceImpl.XPATH_COLLECTION_UUID, ArtifactNamespaceContext.INSTANCE);
+ final String ttlStr = XMLUtils.xpathString(doc, CreateCollectionServiceImpl.XPATH_COLLECTION_TTL, ArtifactNamespaceContext.INSTANCE);
+ this.collection = new DefaultCollection(uuid, Long.valueOf(ttlStr), uuid);
+ }
+ return this.collection;
+
+ }
+
+ private final void setCollection(final Collection collection) {
+ this.collection = collection;
+ }
+
+ private final void setArtifact(final Artifact artifact) {
+ this.artifact = artifact;
+ }
+
+ public abstract void runTest(final boolean exportToFile) throws ConnectionException, ServerException, IOException;
+
+ protected final void describeCollection() throws ConnectionException {
+
+ final String uuid = getCollection().identifier();
+ final Document describe = ClientProtocolUtils.newDescribeCollectionDocument(uuid);
+ final Document response = (Document) this.client.doCollectionAction(describe, uuid, new DocumentResponseHandler());
+ final Collection c = CollectionHelper.parseCollection(response);
+ setCollection(c);
+
+ }
+
+ protected final void feedAndGo(final Data[] data, final int reachableStateIndex) throws ConnectionException, ServerException {
+ feed(data);
+ advance(getReachableStateByIndex(getArtifact(), reachableStateIndex)); // reachablestate könnte auch String sein.
+
+ }
+
+ private final String getReachableStateByIndex(final Artifact artifact, final int index) {
+
+ final String[] states = artifact.getArtifactDescription().getReachableStates();
+ if (states != null) {
+ if (states.length > index) {
+ return states[index];
+ } else {
+ return states[0];
+ }
+ } else {
+ return "";
+ }
+ }
+
+ private final void feed(final Data[] data) throws ServerException, ConnectionException {
+ final Document feed = ClientProtocolUtils.newFeedDocument(getArtifact().getUuid(), getArtifact().getHash(), createKVP(data));
+ final Document description = (Document) this.client.feed(
+ new org.dive4elements.artifacts.httpclient.objects.Artifact(getArtifact().getUuid(), getArtifact().getHash()), feed,
+ new DocumentResponseHandler());
+
+ final String result = XMLUtils.xpathString(description, FeedServiceImpl.XPATH_RESULT, ArtifactNamespaceContext.INSTANCE);
+
+ if (result == null || !result.equals(FeedServiceImpl.OPERATION_FAILURE)) {
+ setArtifact((Artifact) new FLYSArtifactCreator().create(description));
+ } else if (result != null && result.equals(FeedServiceImpl.OPERATION_FAILURE)) {
+ final String msg = XMLUtils.xpathString(description, FeedServiceImpl.XPATH_RESULT_MSG, ArtifactNamespaceContext.INSTANCE);
+ throw new ServerException(msg);
+ }
+ }
+
+ protected final Data[] extractPairData(final List<String> pairIds, final String dataName) {
+ final Data[] data = new Data[pairIds.size()];
+ int i = 0;
+ for (final String pairId : pairIds) {
+ final Data pair = new StringOptionsData(dataName, dataName, new DataItem[] { new DefaultDataItem(pairId, pairId, pairId) });
+ data[i] = pair;
+ i++;
+ }
+ return data;
+ }
+
+ private final String[][] createKVP(final Data[] data) {
+ if (data != null) {
+ final String[][] kvp = new String[data.length][];
+
+ int i = 0;
+
+ for (final Data d : data) {
+ final String key = d.getLabel();
+ final String value = d.getStringValue();
+
+ kvp[i++] = new String[] { key, value };
+ }
+
+ return kvp;
+ }
+ return null;
+ }
+
+ private final void advance(final String target) throws ConnectionException, ServerException {
+ final Document advance = ClientProtocolUtils.newAdvanceDocument(getArtifact().getUuid(), getArtifact().getHash(), target);
+ final Document description = (Document) this.client.advance(
+ new org.dive4elements.artifacts.httpclient.objects.Artifact(getArtifact().getUuid(), getArtifact().getHash()), advance,
+ new DocumentResponseHandler());
+
+ if (description == null) {
+ throw new ServerException(AdvanceServiceImpl.ERROR_ADVANCE_ARTIFACT);
+ }
+
+ final String result = XMLUtils.xpathString(description, AdvanceServiceImpl.XPATH_RESULT, ArtifactNamespaceContext.INSTANCE);
+
+ if (result == null || !result.equals(AdvanceServiceImpl.OPERATION_FAILURE)) {
+ setArtifact((Artifact) new FLYSArtifactCreator().create(description));
+ }
+ }
+
+ /// ExportServiceImpl
+ protected final void assertAndWriteToFile(final String mode, final boolean exportToFile) throws IOException {
+
+ final String type = "csv";
+
+ final String enc = "windows-1252";// req.getParameter("encoding");
+
+ final URL expectedResource = getClass().getResource(this.fileName.getFilename());
+ final Document attr = null;
+ final Document request = ClientProtocolUtils.newOutCollectionDocument(getCollection().identifier(), mode, type, attr);
+
+ final InputStream response = this.client.collectionOut(request, getCollection().identifier(), mode);
+
+ final String actual = deleteErstelldatum(IOUtils.toString(response, "UTF-8"));
+
+ final String expected = deleteErstelldatum(FileUtils.readFileToString(new File(expectedResource.getFile()), enc));
+
+ // if (!actual.equals(expected)) {
+ if (exportToFile) {
+ doGetWriteToDisk(mode); // TODO: WENN der Test negativ ausfällt, Datei abspeichern -> Diskussion
+ }
+
+ Assert.assertEquals(expected, actual);
+ }
+
+ private final String deleteErstelldatum(final String input) {
+ String result = "";
+ final String[] lines = input.split(System.lineSeparator());
+ for (final String line : lines) {
+ if (!line.contains(AbstractModuleRunner.IGNORE_ERSTELLDATUM) && !line.contains(AbstractModuleRunner.IGNORE_FLYS_VERSION)
+ && !line.contains(AbstractModuleRunner.IGNORE_BEARBEITER)) {
+ result = result + line + System.lineSeparator();
+ }
+ }
+ return result;
+ }
+
+ public final void doGetWriteToDisk(final String mode) throws FileNotFoundException, IOException {
+
+ final String name = mode;
+ final String type = "csv";
+
+ final String fn = name + System.currentTimeMillis() + "." + type;
+ final String enc = "windows-1252";
+
+ final String filepath = exportFileDir + fn;
+
+ final Document attr = null;
+ final Document request = ClientProtocolUtils.newOutCollectionDocument(getCollection().identifier(), mode, type, attr);
+
+ final InputStream response = this.client.collectionOut(request, getCollection().identifier(), mode);
+ final InputStreamReader in = new InputStreamReader(response, "UTF-8");
+
+ IOUtils.copy(in, new FileOutputStream(filepath), enc);
+
+ }
+
+ protected final void selectCalcMode() throws ConnectionException, ServerException {
+
+ /* Select CalcMode */
+ final String calcmodeStr = this.calcMode.name();
+ final Data dataCalcMode = new StringOptionsData("calculation_mode", "calculation_mode",
+ new DataItem[] { new DefaultDataItem(calcmodeStr, calcmodeStr, calcmodeStr) });
+ feedAndGo(new Data[] { dataCalcMode }, 0);
+ }
+
+ protected final void selectRange() throws ConnectionException, ServerException {
+ final String fromStr = String.valueOf(this.from);
+ final String toStr = String.valueOf(this.to);
+ final Data dataFrom = new StringOptionsData("ld_from", "ld_from", new DataItem[] { new DefaultDataItem(fromStr, fromStr, fromStr) });
+ final Data dataTo = new StringOptionsData("ld_to", "ld_to", new DataItem[] { new DefaultDataItem(toStr, toStr, toStr) });
+ final Data[] rangeFromToDetermined = new Data[] { dataFrom, dataTo };
+
+ feedAndGo(rangeFromToDetermined, 0);
+ }
+
+ protected final void selectRiver() throws ConnectionException, ServerException {
+ final String riverStr = this.river.name();
+ final Data data = new StringOptionsData("river", "river", new DataItem[] { new DefaultDataItem(riverStr, riverStr, riverStr) });
+ feedAndGo(new Data[] { data }, 0);
+ }
+
+ protected final void export(final boolean exportToFile) throws IOException, ServerException {
+ final OutputMode[] modes = getArtifact().getArtifactDescription().getOutputModes();
+ if (modes != null) {
+ for (final OutputMode mode : modes) {
+ if (mode.getDescription().contains("_export"))
+ assertAndWriteToFile(mode.getName(), exportToFile);
+ }
+ }
+ }
+
+ protected final String getRecommendationPairString(final SimpleRecommendation rec1, final SimpleRecommendation rec2)
+ throws ConnectionException, ServerException {
+
+ return rec1.getRecommendationPairString(rec2, getCollection(), this.serverUrl, this.locale);
+ }
+
+}
diff -r 28fe5e654495 -r 48d87af1243e gwt-client/src/test/java/test/BerechnungsartenTester.java
--- a/gwt-client/src/test/java/test/BerechnungsartenTester.java Tue Jun 12 10:40:33 2018 +0200
+++ b/gwt-client/src/test/java/test/BerechnungsartenTester.java Tue Jun 12 15:04:40 2018 +0200
@@ -28,7 +28,7 @@
};
public static enum River {
- Beispielfluss, Rhein
+ Beispielfluss, Rhein, Elbe
};
public static enum FilenameMapper {
@@ -36,8 +36,11 @@
HELLO_WORLD_FILE("/sinfo/flowdepthminmax/sinfo_flowdepthminmax_export.csv"), //
// Schäfer-Tests:
- RHEIN_1_FILE("/sinfo/flowdepth/sinfo_ft_01.csv"), //
- RHEIN_3_FILE("/sinfo/flowdepth/sinfo_ft_03.csv"); //
+ FT_RHEIN_1_FILE("/sinfo/flowdepth/sinfo_ft_01.csv"), //
+ FT_RHEIN_3_FILE("/sinfo/flowdepth/sinfo_ft_03.csv"), //
+
+ FTE_ELBE_FILE("/sinfo/flowdepthdevelopment/sinfo_fte_01.csv"), //
+ FTE_RHEIN_FILE("/sinfo/flowdepthdevelopment/sinfo_fte_02.csv");
private final String filename;
@@ -54,6 +57,7 @@
return null;
}
+ /* FLOWDEPTH MIN MAX */
@Test
public void testHelloWorld() throws ServerException, IOException {
@@ -62,11 +66,12 @@
.runTest(overrideFileExport() != null ? overrideFileExport() : true);
}
+ /* FLOWDEPTH */
@Test
- public void testRhein1() throws ConnectionException, ServerException, IOException {
+ public void testRhein1FT() throws ConnectionException, ServerException, IOException {
RunnerCreatorHelper
- .createSinfoFlowdepthTest(FilenameMapper.RHEIN_1_FILE, 350, 380, River.Rhein, false,
+ .createSinfoFlowdepthTest(FilenameMapper.FT_RHEIN_1_FILE, 350, 380, River.Rhein, false,
new SimpleRecommendation("staticwqkms", "additionals-wstv-0-415", "longitudinal_section"),
new SimpleRecommendation("bedheight", "bedheight-soundings-79-2004-DGM-2004_Epoche_NHN", "longitudinal_section"))
.runTest(overrideFileExport() != null ? overrideFileExport() : true);
@@ -74,12 +79,48 @@
}
@Test
- public void testRhein3() throws ConnectionException, ServerException, IOException {
+ public void testRhein3FT() throws ConnectionException, ServerException, IOException {
RunnerCreatorHelper
- .createSinfoFlowdepthTest(FilenameMapper.RHEIN_3_FILE, 655, 675, River.Rhein, true,
+ .createSinfoFlowdepthTest(FilenameMapper.FT_RHEIN_3_FILE, 655, 675, River.Rhein, true,
new SimpleRecommendation("staticwqkms", "fixations-wstv-0-323", "longitudinal_section"),
new SimpleRecommendation("bedheight", "bedheight-soundings-92-2004-NIEDERRHEIN_QP-2004_Epoche_NHN", "longitudinal_section"))
.runTest(overrideFileExport() != null ? overrideFileExport() : true);
}
+ /* FLOWDEPTH DEVELOPMENT */
+
+ @Test
+ public void testElbeFTE() throws ConnectionException, ServerException, IOException {
+ RunnerCreatorHelper.createSinfoFlowdepthDevelopmentTest(FilenameMapper.FTE_ELBE_FILE, 210, 230, River.Elbe,
+ // current
+ new SimpleRecommendation("staticwqkms", "fixations-wstv-0-196", "longitudinal_section", "05.05.2008"), // sicher
+ new SimpleRecommendation("bedheight", "bedheight-soundings-66-2008-FP-QP-2008",
+ // "bedheight-single-66-2008-MW-FP-QP-2008",
+ "longitudinal_section"),
+
+ // historical
+ new SimpleRecommendation("staticwqkms", "fixations-wstv-0-186", "longitudinal_section", "18.03.1997"), // sicher
+ new SimpleRecommendation("bedheight", "bedheight-soundings-70-1995-QP-1995",
+ // "bedheight-single-70-1995-MW-QP-1995",
+ "longitudinal_section"))
+ .runTest(overrideFileExport() != null ? overrideFileExport() : true);
+ }
+
+ @Test
+ public void testRheinFTE() throws ConnectionException, ServerException, IOException {
+ RunnerCreatorHelper.createSinfoFlowdepthDevelopmentTest(FilenameMapper.FTE_RHEIN_FILE, 655, 665, River.Rhein,
+ // current
+ new SimpleRecommendation("staticwqkms", "fixations-wstv-0-372", "longitudinal_section", "23.09.2009-1"), // sicher
+ new SimpleRecommendation("bedheight", "bedheight-soundings-80-2008-FP-2008_NHN",
+ // "bedheight-single....",
+ "longitudinal_section"),
+
+ // historical
+ new SimpleRecommendation("staticwqkms", "fixations-wstv-0-374", "longitudinal_section", "18.03.1997"), // sicher
+ new SimpleRecommendation("bedheight", "bedheight-single-89-1991-MW-NIEDERRHEIN_QP-1991_Epoche_NHN",
+ // "bedheight-soundings-89-1991-NIEDERRHEIN_QP-1991_Epoche_NHN",
+ "longitudinal_section"))
+ .runTest(overrideFileExport() != null ? overrideFileExport() : true);
+ }
+
}
\ No newline at end of file
diff -r 28fe5e654495 -r 48d87af1243e gwt-client/src/test/java/test/ModuleRunner.java
--- a/gwt-client/src/test/java/test/ModuleRunner.java Tue Jun 12 10:40:33 2018 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,395 +0,0 @@
-package test;
-
-/** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde
- * Software engineering by
- * Björnsen Beratende Ingenieure GmbH
- * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt
- *
- * This file is Free Software under the GNU AGPL (>=v3)
- * and comes with ABSOLUTELY NO WARRANTY! Check out the
- * documentation coming with Dive4Elements River for details.
- */
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-
-import org.apache.commons.io.FileUtils;
-import org.apache.commons.io.IOUtils;
-import org.dive4elements.artifacts.common.ArtifactNamespaceContext;
-import org.dive4elements.artifacts.common.utils.ClientProtocolUtils;
-import org.dive4elements.artifacts.httpclient.exceptions.ConnectionException;
-import org.dive4elements.artifacts.httpclient.http.HttpClient;
-import org.dive4elements.artifacts.httpclient.http.HttpClientImpl;
-import org.dive4elements.artifacts.httpclient.http.response.DocumentResponseHandler;
-import org.dive4elements.artifacts.httpclient.utils.XMLUtils;
-import org.dive4elements.river.client.client.ui.NilDatacageTwinPanelInfo;
-import org.dive4elements.river.client.client.ui.RecommandationUtils;
-import org.dive4elements.river.client.server.AdvanceServiceImpl;
-import org.dive4elements.river.client.server.ArtifactHelper;
-import org.dive4elements.river.client.server.CollectionHelper;
-import org.dive4elements.river.client.server.CreateCollectionServiceImpl;
-import org.dive4elements.river.client.server.FLYSArtifactCreator;
-import org.dive4elements.river.client.server.FeedServiceImpl;
-import org.dive4elements.river.client.server.LoadArtifactServiceImpl;
-import org.dive4elements.river.client.server.auth.DefaultUser;
-import org.dive4elements.river.client.server.auth.User;
-import org.dive4elements.river.client.server.auth.UserClient;
-import org.dive4elements.river.client.shared.exceptions.ServerException;
-import org.dive4elements.river.client.shared.model.Artifact;
-import org.dive4elements.river.client.shared.model.Collection;
-import org.dive4elements.river.client.shared.model.Data;
-import org.dive4elements.river.client.shared.model.DataItem;
-import org.dive4elements.river.client.shared.model.DefaultCollection;
-import org.dive4elements.river.client.shared.model.DefaultDataItem;
-import org.dive4elements.river.client.shared.model.OutputMode;
-import org.dive4elements.river.client.shared.model.Recommendation;
-import org.dive4elements.river.client.shared.model.StringOptionsData;
-import org.junit.Assert;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-import test.BerechnungsartenTester.CalcMode;
-import test.BerechnungsartenTester.FilenameMapper;
-import test.BerechnungsartenTester.River;
-
-/**
- * @author Domenico Nardi Tironi
- *
- */
-public abstract class ModuleRunner {
-
- public enum Infotype {
- sinfo
- }
-
- private final String serverUrl = "http://localhost:8181";
- private final String locale = "de";
- private final HttpClient client;
-
- private static final String exportFileDir = "D:" + File.separator;
- private static final String IGNORE_ERSTELLDATUM = "# Datum der Erstellung";
- private static final String IGNORE_FLYS_VERSION = "# FLYS-Version:";
- private static final String IGNORE_BEARBEITER = "# Bearbeiter:";
-
- private final String username;
- private final String password;
- private final Infotype infotype;
- private final String userUuid;
- private Collection collection;
- private Artifact artifact;
- private final FilenameMapper fileName;
-
- // common attributes
- private final CalcMode calcMode;
- private final double from;
- private final double to;
- private final River river;
-
- private final List<String> pairIds = new ArrayList<String>(); // TODO in Subklassen
-
- public ModuleRunner(final String username, final String password, final Infotype infotype, final CalcMode sinfoCalcFlowDepth,
- final FilenameMapper helloWorldFile, final double from, final double to, final River beispielfluss) throws ConnectionException, ServerException {
- // common attributes (evtl. doch in subklassen, evtl. Zwischenhierarchiestufe einführen
-
- this.calcMode = sinfoCalcFlowDepth;
- this.river = beispielfluss;
- this.from = from;
- this.to = to;
-
- this.username = username;
- this.password = password;
- this.infotype = infotype;
- this.fileName = helloWorldFile;
-
- // init
- this.client = new HttpClientImpl(this.serverUrl, this.locale);
- this.userUuid = makeUserUuid();
- this.collection = getCollection();
- this.artifact = getArtifact();
- }
-
- private String makeUserUuid() throws ConnectionException {
- final User user = new DefaultUser(this.username, this.password, null, false, new ArrayList<String>(), new ArrayList<String>());
- final UserClient userClient = new UserClient(this.serverUrl);
- Element userElement;
-
- userElement = userClient.findUser(user);
- return userElement.getAttributeNS(ArtifactNamespaceContext.NAMESPACE_URI, "uuid");
-
- }
-
- protected final Artifact getArtifact() throws ServerException, ConnectionException {
- if (this.artifact == null) {
- this.artifact = ArtifactHelper.createArtifact(this.serverUrl, this.locale, this.infotype.name(), null);
- setCollection(CollectionHelper.addArtifact(getCollection(), this.artifact, this.serverUrl, this.locale)); // wichtig; sorgt für Persistenz
- }
- return this.artifact;
- }
-
- private Collection getCollection() throws ConnectionException {
-
- if (this.collection == null) {
- // lazy-Loading
- final Document create = ClientProtocolUtils.newCreateCollectionDocument(null);
- final Document doc = (Document) this.client.createCollection(create, this.userUuid, new DocumentResponseHandler());
- final String uuid = XMLUtils.xpathString(doc, CreateCollectionServiceImpl.XPATH_COLLECTION_UUID, ArtifactNamespaceContext.INSTANCE);
- final String ttlStr = XMLUtils.xpathString(doc, CreateCollectionServiceImpl.XPATH_COLLECTION_TTL, ArtifactNamespaceContext.INSTANCE);
- this.collection = new DefaultCollection(uuid, Long.valueOf(ttlStr), uuid);
- }
- return this.collection;
-
- }
-
- private final void setCollection(final Collection collection) {
- this.collection = collection;
- }
-
- private final void setArtifact(final Artifact artifact) {
- this.artifact = artifact;
- }
-
- public abstract void runTest(final boolean exportToFile) throws ConnectionException, ServerException, IOException;
-
- protected final void describeCollection() throws ConnectionException {
-
- final String uuid = getCollection().identifier();
- final Document describe = ClientProtocolUtils.newDescribeCollectionDocument(uuid);
- final Document response = (Document) this.client.doCollectionAction(describe, uuid, new DocumentResponseHandler());
- final Collection c = CollectionHelper.parseCollection(response);
- setCollection(c);
-
- }
-
- protected final void feedAndGo(final Data[] data, final int reachableStateIndex) throws ConnectionException, ServerException {
- feed(data);
- advance(getReachableStateByIndex(getArtifact(), reachableStateIndex)); // reachablestate könnte auch String sein.
-
- }
-
- private final String getReachableStateByIndex(final Artifact artifact, final int index) {
-
- final String[] states = artifact.getArtifactDescription().getReachableStates();
- if (states != null) {
- if (states.length > index) {
- return states[index];
- } else {
- return states[0];
- }
- } else {
- return "";
- }
- }
-
- private final void feed(final Data[] data) throws ServerException, ConnectionException {
- final Document feed = ClientProtocolUtils.newFeedDocument(getArtifact().getUuid(), getArtifact().getHash(), createKVP(data));
- final Document description = (Document) this.client.feed(
- new org.dive4elements.artifacts.httpclient.objects.Artifact(getArtifact().getUuid(), getArtifact().getHash()), feed,
- new DocumentResponseHandler());
-
- final String result = XMLUtils.xpathString(description, FeedServiceImpl.XPATH_RESULT, ArtifactNamespaceContext.INSTANCE);
-
- if (result == null || !result.equals(FeedServiceImpl.OPERATION_FAILURE)) {
- setArtifact((Artifact) new FLYSArtifactCreator().create(description));
- } else if (result != null && result.equals(FeedServiceImpl.OPERATION_FAILURE)) {
- final String msg = XMLUtils.xpathString(description, FeedServiceImpl.XPATH_RESULT_MSG, ArtifactNamespaceContext.INSTANCE);
- throw new ServerException(msg);
- }
- }
-
- private final String[][] createKVP(final Data[] data) {
- if (data != null) {
- final String[][] kvp = new String[data.length][];
-
- int i = 0;
-
- for (final Data d : data) {
- // final DataItem[] items = d.getItems();
- final String key = d.getLabel();
- final String value = d.getStringValue();
-
- kvp[i++] = new String[] { key, value };
- }
-
- return kvp;
- }
- return null;
- }
-
- private final void advance(final String target) throws ConnectionException, ServerException {
- final Document advance = ClientProtocolUtils.newAdvanceDocument(getArtifact().getUuid(), getArtifact().getHash(), target);
- final Document description = (Document) this.client.advance(
- new org.dive4elements.artifacts.httpclient.objects.Artifact(getArtifact().getUuid(), getArtifact().getHash()), advance,
- new DocumentResponseHandler());
-
- if (description == null) {
- throw new ServerException(AdvanceServiceImpl.ERROR_ADVANCE_ARTIFACT);
- }
-
- final String result = XMLUtils.xpathString(description, AdvanceServiceImpl.XPATH_RESULT, ArtifactNamespaceContext.INSTANCE);
-
- if (result == null || !result.equals(AdvanceServiceImpl.OPERATION_FAILURE)) {
- setArtifact((Artifact) new FLYSArtifactCreator().create(description));
- }
- }
-
- protected final Artifact[] loadMany(final Recommendation[] recoms, final String factory) throws ServerException, ConnectionException {
- final ArrayList<Artifact> artifacts = new ArrayList<Artifact>();
- final HashMap<Recommendation, Artifact> cloneMap = new HashMap<Recommendation, Artifact>();
-
- for (final Recommendation recom : recoms) {
-
- final Artifact prevClone = cloneMap.get(recom);
- if (prevClone != null) {
-
- artifacts.add(prevClone);
- } else {
- // Not already cloned.
- final String realFactory = factory != null ? factory : recom.getFactory();
-
- final Artifact clone = ArtifactHelper.createArtifact(this.serverUrl, this.locale, realFactory, recom);
-
- if (clone != null) {
- final Collection c = CollectionHelper.addArtifact(getCollection(), clone, this.serverUrl, this.locale);
-
- if (c != null) {
- artifacts.add(clone);
- // Remember we cloned a recommendation like this.
- cloneMap.put(recom, clone);
- } else {
- throw new ServerException(LoadArtifactServiceImpl.ERROR_LOAD_ARTIFACT);
- }
- }
- }
- }
- return artifacts.toArray(new Artifact[artifacts.size()]);
-
- }
-
- /// ExportServiceImpl
- protected final void doGet(final String mode, final boolean exportToFile) throws IOException {
-
- final String type = "csv";
-
- final String enc = "windows-1252";// req.getParameter("encoding");
-
- final URL expectedResource = getClass().getResource(this.fileName.getFilename());
- final Document attr = null;
- final Document request = ClientProtocolUtils.newOutCollectionDocument(getCollection().identifier(), mode, type, attr);
-
- final InputStream response = this.client.collectionOut(request, getCollection().identifier(), mode);
-
- final String actual = deleteErstelldatum(IOUtils.toString(response, "UTF-8"));
-
- final String expected = deleteErstelldatum(FileUtils.readFileToString(new File(expectedResource.getFile()), enc));
-
- // if (!actual.equals(expected)) {
- if (exportToFile) {
- doGetWriteToDisk(mode); // TODO: WENN der Test negativ ausfällt, Datei abspeichern -> Diskussion
- }
-
- Assert.assertEquals(expected, actual);
- }
-
- private final String deleteErstelldatum(final String input) {
- String result = "";
- final String[] lines = input.split(System.lineSeparator());
- for (final String line : lines) {
- if (!line.contains(ModuleRunner.IGNORE_ERSTELLDATUM) && !line.contains(ModuleRunner.IGNORE_FLYS_VERSION)
- && !line.contains(ModuleRunner.IGNORE_BEARBEITER)) {
- result = result + line + System.lineSeparator();
- }
- }
- return result;
- }
-
- public final void doGetWriteToDisk(final String mode) throws FileNotFoundException, IOException {
-
- final String name = mode;
- final String type = "csv";
-
- final String fn = name + System.currentTimeMillis() + "." + type;
- final String enc = "windows-1252";
-
- final String filepath = exportFileDir + fn;
-
- final Document attr = null;
- final Document request = ClientProtocolUtils.newOutCollectionDocument(getCollection().identifier(), mode, type, attr);
-
- final InputStream response = this.client.collectionOut(request, getCollection().identifier(), mode);
- final InputStreamReader in = new InputStreamReader(response, "UTF-8");
-
- IOUtils.copy(in, new FileOutputStream(filepath), enc);
-
- }
-
- public final void addRecommendationPair(final SimpleRecommendation rec1, final SimpleRecommendation rec2) throws ConnectionException, ServerException {
- final Recommendation recom1 = new Recommendation(rec1.getFactory(), rec1.getIds(), rec1.getTarget());
- final Recommendation recom2 = new Recommendation(rec2.getFactory(), rec2.getIds(), rec2.getTarget());
- final Artifact[] artifacts = loadMany(new Recommendation[] { recom1, recom2 }, null);
- final String rec1String = RecommandationUtils.createDataString(artifacts[0].getUuid(), recom1, new NilDatacageTwinPanelInfo("xxxx"));
- final String rec2String = RecommandationUtils.createDataString(artifacts[1].getUuid(), recom2, new NilDatacageTwinPanelInfo("xxxx"));
- final String combinedIdNeu = rec1String + "#" + rec2String;
- this.pairIds.add(combinedIdNeu);
- }
-
- protected Data[] getPairData() {
- final Data[] data = new Data[this.pairIds.size()];
- int i = 0;
- for (final String pairId : this.pairIds) {
- final Data pair = new StringOptionsData("diffids", "diffids", new DataItem[] { new DefaultDataItem(pairId, pairId, pairId) });
- data[i] = pair;
- i++;
- }
- return data;
- }
-
- protected final void selectCalcMode() throws ConnectionException, ServerException {
-
- /* Select CalcMode */
- // final DataList calcModes = getArtifact().getArtifactDescription().getCurrentData(); // AUSWAHL-Möglichkeiten
- // final DataItem minMaxFlowdepth = calcModes.get(0).getItems()[2]; // CalcMode
- final String calcmodeStr = this.calcMode.name();
- final Data dataCalcMode = new StringOptionsData("calculation_mode", "calculation_mode",
- new DataItem[] { new DefaultDataItem(calcmodeStr, calcmodeStr, calcmodeStr) });
- feedAndGo(new Data[] { dataCalcMode }, 0);
- }
-
- protected final void selectRange() throws ConnectionException, ServerException {
- final String fromStr = String.valueOf(this.from);
- final String toStr = String.valueOf(this.to);
- final Data dataFrom = new StringOptionsData("ld_from", "ld_from", new DataItem[] { new DefaultDataItem(fromStr, fromStr, fromStr) });
- final Data dataTo = new StringOptionsData("ld_to", "ld_to", new DataItem[] { new DefaultDataItem(toStr, toStr, toStr) });
- final Data[] rangeFromToDetermined = new Data[] { dataFrom, dataTo };
-
- feedAndGo(rangeFromToDetermined, 0);
- }
-
- // private final void seletMaxRange() throws ConnectionException, ServerException {
- // final DataList list = getArtifact().getArtifactDescription().getCurrentData();
- // final Data[] rangeMax = new Data[] { list.get(0), list.get(1) };
- // feedAndGo(rangeMax, 0);
- // }
-
- protected final void selectRiver() throws ConnectionException, ServerException {
- final String riverStr = this.river.name();
- final Data data = new StringOptionsData("river", "river", new DataItem[] { new DefaultDataItem(riverStr, riverStr, riverStr) });
- feedAndGo(new Data[] { data }, 0);
- }
-
- protected final void export(final boolean exportToFile) throws IOException, ServerException {
- final OutputMode[] modes = getArtifact().getArtifactDescription().getOutputModes(); // TODO: CHECK IF THIS WORKS ALSO FOR FUTURE CALC_MODES
- if (modes != null) {
- final OutputMode mode = modes[1];
- doGet(mode.getName(), exportToFile);
- }
- }
-
-}
diff -r 28fe5e654495 -r 48d87af1243e gwt-client/src/test/java/test/RunnerCreatorHelper.java
--- a/gwt-client/src/test/java/test/RunnerCreatorHelper.java Tue Jun 12 10:40:33 2018 +0200
+++ b/gwt-client/src/test/java/test/RunnerCreatorHelper.java Tue Jun 12 15:04:40 2018 +0200
@@ -32,21 +32,32 @@
// HELPER-Methods:
- public final static ModuleRunner createSinfoFlowdepthMinMaxTest(final FilenameMapper helloWorldFile, final double from, final double to,
+ public final static AbstractModuleRunner createSinfoFlowdepthMinMaxTest(final FilenameMapper helloWorldFile, final double from, final double to,
final River beispielfluss) throws ConnectionException, ServerException {
// TODO: make recommendationPair to method parameter if needed
- final ModuleRunner proof = new SinfoFlowdepthMinMaxRunner(user, pw, CalcMode.sinfo_calc_flow_depth_minmax, helloWorldFile, from, to, beispielfluss);
+ final SinfoFlowdepthMinMaxRunner proof = new SinfoFlowdepthMinMaxRunner(user, pw, CalcMode.sinfo_calc_flow_depth_minmax, helloWorldFile, from, to,
+ beispielfluss);
proof.addRecommendationPair(new SimpleRecommendation("staticwqkms", "additionals-wstv-0-103", "sinfo_flowdepth_waterlevels"),
new SimpleRecommendation("bedheight", "bedheight-single-36-2015-FP-2015_0-502", "sinfo_flowdepthminmax_heights"));
return proof;
}
- public final static ModuleRunner createSinfoFlowdepthTest(final FilenameMapper file, final double from, final double to, final River river,
+ public final static AbstractModuleRunner createSinfoFlowdepthTest(final FilenameMapper file, final double from, final double to, final River river,
final boolean useTkh, final SimpleRecommendation rec0, final SimpleRecommendation rec1) throws ConnectionException, ServerException {
- final ModuleRunner proof = new SinfoFlowdepthRunner(user, pw, CalcMode.sinfo_calc_flow_depth, file, from, to, river, useTkh);
+ final SinfoFlowdepthRunner proof = new SinfoFlowdepthRunner(user, pw, CalcMode.sinfo_calc_flow_depth, file, from, to, river, useTkh);
proof.addRecommendationPair(rec0, rec1);
return proof;
}
+
+ public final static AbstractModuleRunner createSinfoFlowdepthDevelopmentTest(final FilenameMapper file, final double from, final double to,
+ final River river, final SimpleRecommendation rec0_curr, final SimpleRecommendation rec1_curr, final SimpleRecommendation rec0_hist,
+ final SimpleRecommendation rec1_hist) throws ConnectionException, ServerException {
+ final SinfoFlowdepthDevelopmentRunner proof = new SinfoFlowdepthDevelopmentRunner(user, pw, CalcMode.sinfo_calc_flow_depth_development, file, from, to,
+ river);
+ proof.addCurrentRecommendationPair(rec0_curr, rec1_curr);
+ proof.addHistoricalRecommendationPair(rec0_hist, rec1_hist);
+ return proof;
+ }
}
\ No newline at end of file
diff -r 28fe5e654495 -r 48d87af1243e gwt-client/src/test/java/test/SimpleRecommendation.java
--- a/gwt-client/src/test/java/test/SimpleRecommendation.java Tue Jun 12 10:40:33 2018 +0200
+++ b/gwt-client/src/test/java/test/SimpleRecommendation.java Tue Jun 12 15:04:40 2018 +0200
@@ -9,6 +9,20 @@
*/
package test;
+import java.util.ArrayList;
+import java.util.HashMap;
+
+import org.dive4elements.artifacts.httpclient.exceptions.ConnectionException;
+import org.dive4elements.river.client.client.ui.NilDatacageTwinPanelInfo;
+import org.dive4elements.river.client.client.ui.RecommandationUtils;
+import org.dive4elements.river.client.server.ArtifactHelper;
+import org.dive4elements.river.client.server.CollectionHelper;
+import org.dive4elements.river.client.server.LoadArtifactServiceImpl;
+import org.dive4elements.river.client.shared.exceptions.ServerException;
+import org.dive4elements.river.client.shared.model.Artifact;
+import org.dive4elements.river.client.shared.model.Collection;
+import org.dive4elements.river.client.shared.model.Recommendation;
+
/**
* @author Domenico Nardi Tironi
*
@@ -19,6 +33,7 @@
private final String factory;
private final String ids;
private final String target;
+ private String displayName;
public SimpleRecommendation(final String factory, final String ids, final String target) {
this.factory = factory;
@@ -26,6 +41,11 @@
this.target = target;
}
+ public SimpleRecommendation(final String factory, final String ids, final String target, final String displayName) {
+ this(factory, ids, target);
+ this.displayName = displayName;
+ }
+
public String getIds() {
return this.ids;
}
@@ -38,4 +58,56 @@
return this.factory;
}
+ private String getDisplayName() {
+ return this.displayName;
+ }
+
+ public final String getRecommendationPairString(final SimpleRecommendation rec2, final Collection collection, final String serverUrl, final String locale)
+ throws ConnectionException, ServerException {
+ final Recommendation recom1 = new Recommendation(this.getFactory(), this.getIds(), this.getTarget());
+ recom1.setDisplayName(this.displayName);
+ final Recommendation recom2 = new Recommendation(rec2.getFactory(), rec2.getIds(), rec2.getTarget());
+ recom2.setDisplayName(rec2.getDisplayName());
+ final Artifact[] artifacts = loadMany(new Recommendation[] { recom1, recom2 }, null, collection, serverUrl, locale);
+ final String rec1String = RecommandationUtils.createDataString(artifacts[0].getUuid(), recom1, new NilDatacageTwinPanelInfo("xxxx"));
+ final String rec2String = RecommandationUtils.createDataString(artifacts[1].getUuid(), recom2, new NilDatacageTwinPanelInfo("xxxx"));
+ final String combinedIdNeu = rec1String + "#" + rec2String;
+ return combinedIdNeu;
+
+ }
+
+ private final Artifact[] loadMany(final Recommendation[] recoms, final String factory, final Collection collection, final String serverUrl,
+ final String locale) throws ServerException, ConnectionException {
+ final ArrayList<Artifact> artifacts = new ArrayList<Artifact>();
+ final HashMap<Recommendation, Artifact> cloneMap = new HashMap<Recommendation, Artifact>();
+
+ for (final Recommendation recom : recoms) {
+
+ final Artifact prevClone = cloneMap.get(recom);
+ if (prevClone != null) {
+
+ artifacts.add(prevClone);
+ } else {
+ // Not already cloned.
+ final String realFactory = factory != null ? factory : recom.getFactory();
+
+ final Artifact clone = ArtifactHelper.createArtifact(serverUrl, locale, realFactory, recom);
+
+ if (clone != null) {
+ final Collection c = CollectionHelper.addArtifact(collection, clone, serverUrl, locale);
+
+ if (c != null) {
+ artifacts.add(clone);
+ // Remember we cloned a recommendation like this.
+ cloneMap.put(recom, clone);
+ } else {
+ throw new ServerException(LoadArtifactServiceImpl.ERROR_LOAD_ARTIFACT);
+ }
+ }
+ }
+ }
+ return artifacts.toArray(new Artifact[artifacts.size()]);
+
+ }
+
}
diff -r 28fe5e654495 -r 48d87af1243e gwt-client/src/test/java/test/SinfoFlowdepthDevelopmentRunner.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/gwt-client/src/test/java/test/SinfoFlowdepthDevelopmentRunner.java Tue Jun 12 15:04:40 2018 +0200
@@ -0,0 +1,67 @@
+/** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde
+ * Software engineering by
+ * Björnsen Beratende Ingenieure GmbH
+ * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt
+ *
+ * This file is Free Software under the GNU AGPL (>=v3)
+ * and comes with ABSOLUTELY NO WARRANTY! Check out the
+ * documentation coming with Dive4Elements River for details.
+ */
+package test;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.dive4elements.artifacts.httpclient.exceptions.ConnectionException;
+import org.dive4elements.river.client.shared.exceptions.ServerException;
+
+import test.BerechnungsartenTester.CalcMode;
+import test.BerechnungsartenTester.FilenameMapper;
+import test.BerechnungsartenTester.River;
+
+/**
+ * @author Domenico Nardi Tironi
+ *
+ */
+public class SinfoFlowdepthDevelopmentRunner extends AbstractModuleRunner {
+
+ private final List<String> pairIdsCurrent = new ArrayList<String>();
+ private final List<String> pairIdsHistorical = new ArrayList<String>();
+
+ public SinfoFlowdepthDevelopmentRunner(final String username, final String password, final CalcMode sinfoCalcFlowDepth, final FilenameMapper file,
+ final double from, final double to, final River river) throws ConnectionException, ServerException {
+ super(username, password, AbstractModuleRunner.Infotype.sinfo, sinfoCalcFlowDepth, file, from, to, river);
+
+ }
+
+ public void addCurrentRecommendationPair(final SimpleRecommendation rec1, final SimpleRecommendation rec2) throws ConnectionException, ServerException {
+ this.pairIdsCurrent.add(super.getRecommendationPairString(rec1, rec2));
+ }
+
+ public void addHistoricalRecommendationPair(final SimpleRecommendation rec1, final SimpleRecommendation rec2) throws ConnectionException, ServerException {
+ this.pairIdsHistorical.add(super.getRecommendationPairString(rec1, rec2));
+ }
+
+ @Override
+ public void runTest(final boolean exportToFile) throws ServerException, IOException {
+ /* Select River */
+ super.selectRiver();
+
+ /* Select CalcMode */
+ super.selectCalcMode();
+
+ /* Select Range */
+ super.selectRange();
+
+ /* Select current Fixpunkte */
+ feedAndGo(super.extractPairData(this.pairIdsCurrent, "diffid_current"), 0);
+
+ /* Select historical Fixpunkte */
+ feedAndGo(super.extractPairData(this.pairIdsHistorical, "diffid_historical"), 0);
+
+ describeCollection();
+
+ super.export(exportToFile);
+ }
+}
diff -r 28fe5e654495 -r 48d87af1243e gwt-client/src/test/java/test/SinfoFlowdepthMinMaxRunner.java
--- a/gwt-client/src/test/java/test/SinfoFlowdepthMinMaxRunner.java Tue Jun 12 10:40:33 2018 +0200
+++ b/gwt-client/src/test/java/test/SinfoFlowdepthMinMaxRunner.java Tue Jun 12 15:04:40 2018 +0200
@@ -10,6 +10,8 @@
package test;
import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
import org.dive4elements.artifacts.httpclient.exceptions.ConnectionException;
import org.dive4elements.river.client.shared.exceptions.ServerException;
@@ -22,11 +24,17 @@
* @author Domenico Nardi Tironi
*
*/
-public class SinfoFlowdepthMinMaxRunner extends ModuleRunner {
+public class SinfoFlowdepthMinMaxRunner extends AbstractModuleRunner {
+
+ private final List<String> pairIds = new ArrayList<String>();
public SinfoFlowdepthMinMaxRunner(final String username, final String password, final CalcMode sinfoCalcFlowDepthMinmax,
final FilenameMapper helloWorldFile, final double from, final double to, final River beispielfluss) throws ConnectionException, ServerException {
- super(username, password, ModuleRunner.Infotype.sinfo, sinfoCalcFlowDepthMinmax, helloWorldFile, from, to, beispielfluss);
+ super(username, password, AbstractModuleRunner.Infotype.sinfo, sinfoCalcFlowDepthMinmax, helloWorldFile, from, to, beispielfluss);
+ }
+
+ public void addRecommendationPair(final SimpleRecommendation rec1, final SimpleRecommendation rec2) throws ConnectionException, ServerException {
+ this.pairIds.add(super.getRecommendationPairString(rec1, rec2));
}
@Override
@@ -42,7 +50,7 @@
super.selectRange();
/* Select Fixpunkte */
- feedAndGo(super.getPairData(), 0);
+ feedAndGo(extractPairData(this.pairIds, "diffids"), 0);
// Describe collection
describeCollection(); // wichtig, damit die Facets erzeugt werden
diff -r 28fe5e654495 -r 48d87af1243e gwt-client/src/test/java/test/SinfoFlowdepthRunner.java
--- a/gwt-client/src/test/java/test/SinfoFlowdepthRunner.java Tue Jun 12 10:40:33 2018 +0200
+++ b/gwt-client/src/test/java/test/SinfoFlowdepthRunner.java Tue Jun 12 15:04:40 2018 +0200
@@ -10,6 +10,7 @@
package test;
import java.io.IOException;
+import java.util.ArrayList;
import org.dive4elements.artifacts.httpclient.exceptions.ConnectionException;
import org.dive4elements.river.client.shared.exceptions.ServerException;
@@ -26,16 +27,21 @@
* @author Domenico Nardi Tironi
*
*/
-public class SinfoFlowdepthRunner extends ModuleRunner {
+public class SinfoFlowdepthRunner extends AbstractModuleRunner {
private final boolean useTkh;
+ private final ArrayList<String> pairIds = new ArrayList<String>();
public SinfoFlowdepthRunner(final String username, final String password, final CalcMode sinfoCalcFlowDepth, final FilenameMapper file, final double from,
final double to, final River river, final boolean useTkh) throws ConnectionException, ServerException {
- super(username, password, ModuleRunner.Infotype.sinfo, sinfoCalcFlowDepth, file, from, to, river);
+ super(username, password, AbstractModuleRunner.Infotype.sinfo, sinfoCalcFlowDepth, file, from, to, river);
this.useTkh = useTkh;
}
+ public void addRecommendationPair(final SimpleRecommendation rec1, final SimpleRecommendation rec2) throws ConnectionException, ServerException {
+ this.pairIds.add(super.getRecommendationPairString(rec1, rec2));
+ }
+
@Override
public void runTest(final boolean exportToFile) throws ServerException, IOException {
/* Select River */
@@ -48,7 +54,7 @@
super.selectRange();
/* Select Fixpunkte */
- feedAndGo(super.getPairData(), 0);
+ feedAndGo(extractPairData(this.pairIds, "diffids"), 0);
/* Select TRANSPORTKÃRPERHÃHHEN - einziger Unterschied zu FlowdepthMinMax */
final String useTkhStr = String.valueOf(this.useTkh);
diff -r 28fe5e654495 -r 48d87af1243e gwt-client/src/test/resources/sinfo/flowdepthdevelopment/sinfo_fte_01.csv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/gwt-client/src/test/resources/sinfo/flowdepthdevelopment/sinfo_fte_01.csv Tue Jun 12 15:04:40 2018 +0200
@@ -0,0 +1,238 @@
+"##Ergebnisausgabe - Elbe - Fließtiefenentwicklung"
+"# FLYS-Version: 3.3.0"
+"# Bearbeiter: gbelger at localdb"
+"# Datum der Erstellung: 06.06.18"
+"# Gewässer: Elbe"
+"# Höhensystem des Flusses: NHN + m "
+"# Bereich (km): 210,000 - 230,000"
+""
+"Fluss-km";"Fließtiefenentwicklung [m]";"Fließtiefenent-wicklung pro Jahr [cm/a]";"?WSPL [m] (05.05.2008 - 18.03.1997)";"?MSH [m] (FP-QP-2008 - QP-1995)";"Fließtiefe h-aktuell [m] (05.05.2008 - FP-QP-2008)";"Fließtiefe h-historisch [m] (18.03.1997 - QP-1995)";"Lage"
+""
+"##METADATEN PEILUNG aktuell"
+"# Jahr der Peilung: 2008"
+"# Aufnahmeart: Flächen- u. Querprofilpeilungen"
+"# Auswerter: BfG"
+"# Lagesystem: LS 150 und LS 100"
+"# Höhensystem: müNN "
+"# ursprüngliches Höhensystem: müNN"
+""
+"##METADATEN WASSERSPIEGELLAGE aktuell"
+"# Bezeichnung der Wasserspiegellage: 05.05.2008 "
+"# Bezugspegel: Schöna"
+"# Jahr/Zeitraum der Wasserspiegellage: 2008"
+""
+"##METADATEN PEILUNG historisch"
+"# Jahr der Peilung: 1995"
+"# Aufnahmeart: Querprofile"
+"# Auswerter: BfG"
+"# Lagesystem: LS 150"
+"# Höhensystem: müNN "
+"# ursprüngliches Höhensystem: müNN"
+""
+"##METADATEN WASSERSPIEGELLAGE historisch"
+"# Bezeichnung der Wasserspiegellage: 18.03.1997 "
+"# Bezugspegel: Torgau"
+"# Jahr/Zeitraum der Wasserspiegellage: 1997"
+""
+"210,000";"-61,6";"-5,13";"-74,0";"-12,4";"3,82";"4,44";""
+"210,100";"-56,0";"-4,66";"-75,2";"-19,2";"3,64";"4,20";""
+"210,200";"-48,4";"-4,04";"-76,3";"-27,9";"3,65";"4,14";""
+"210,300";"-52,0";"-4,33";"-77,5";"-25,5";"3,58";"4,10";""
+"210,400";"-52,6";"-4,38";"-77,7";"-25,1";"3,58";"4,10";""
+"210,500";"-68,4";"-5,70";"-77,8";"-9,4";"3,54";"4,23";""
+"210,600";"-62,5";"-5,21";"-77,0";"-14,5";"3,77";"4,39";""
+"210,700";"-46,2";"-3,85";"-76,5";"-30,3";"3,98";"4,45";""
+"210,800";"-55,3";"-4,61";"-77,0";"-21,7";"3,97";"4,52";""
+"210,900";"-53,2";"-4,43";"-76,5";"-23,3";"3,99";"4,52";""
+"211,000";"-45,3";"-3,77";"-76,0";"-30,7";"3,94";"4,39";""
+"211,100";"-36,3";"-3,03";"-75,3";"-39,0";"3,84";"4,20";""
+"211,200";"-43,4";"-3,61";"-74,7";"-31,3";"3,88";"4,32";""
+"211,300";"-46,1";"-3,84";"-75,0";"-28,9";"3,93";"4,39";""
+"211,400";"-55,2";"-4,60";"-74,3";"-19,1";"3,67";"4,22";""
+"211,500";"-41,9";"-3,49";"-72,7";"-30,8";"3,71";"4,13";""
+"211,600";"-60,6";"-5,05";"-73,0";"-12,4";"3,59";"4,20";""
+"211,700";"-62,8";"-5,23";"-72,5";"-9,7";"3,58";"4,21";""
+"211,800";"-57,6";"-4,80";"-73,0";"-15,4";"3,45";"4,03";""
+"211,900";"-69,7";"-5,81";"-72,5";"-2,8";"3,38";"4,08";""
+"212,000";"-82,3";"-6,86";"-73,0";"9,3";"3,69";"4,51";""
+"212,100";"-63,1";"-5,26";"-71,0";"-7,9";"4,07";"4,70";""
+"212,200";"-60,7";"-5,06";"-70,0";"-9,3";"3,96";"4,57";""
+"212,300";"-62,9";"-5,24";"-70,0";"-7,1";"3,91";"4,54";""
+"212,400";"-79,4";"-6,62";"-70,0";"9,4";"3,82";"4,62";""
+"212,500";"-86,7";"-7,23";"-72,0";"14,7";"3,85";"4,72";""
+"212,600";"-80,9";"-6,74";"-70,0";"10,9";"3,73";"4,54";""
+"212,700";"-68,1";"-5,68";"-71,5";"-3,4";"3,69";"4,37";""
+"212,800";"-61,2";"-5,10";"-72,0";"-10,8";"3,59";"4,20";""
+"212,900";"-69,1";"-5,76";"-72,5";"-3,4";"3,49";"4,18";""
+"213,000";"-62,0";"-5,17";"-72,0";"-10,0";"3,69";"4,31";""
+"213,100";"-57,7";"-4,81";"-72,0";"-14,3";"3,67";"4,25";""
+"213,200";"-60,5";"-5,04";"-73,0";"-12,5";"3,70";"4,30";""
+"213,300";"-67,2";"-5,60";"-73,0";"-5,8";"3,70";"4,37";""
+"213,400";"-69,3";"-5,78";"-73,0";"-3,7";"3,76";"4,46";""
+"213,500";"-73,9";"-6,16";"-73,0";"0,9";"3,85";"4,59";""
+"213,600";"-77,9";"-6,49";"-72,0";"5,9";"4,02";"4,80";""
+"213,700";"-61,7";"-5,14";"-71,3";"-9,6";"4,14";"4,75";""
+"213,800";"-112,8";"-9,40";"-72,4";"40,4";"4,12";"5,25";""
+"213,900";"-96,0";"-8,00";"-72,8";"23,2";"4,04";"5,00";""
+"214,000";"-84,2";"-7,02";"-73,0";"11,2";"4,07";"4,92";""
+"214,100";"-87,2";"-7,27";"-70,5";"16,7";"4,02";"4,89";""
+"214,200";"-87,5";"-7,29";"-70,7";"16,8";"4,03";"4,90";""
+"214,300";"-76,8";"-6,40";"-70,0";"6,8";"4,04";"4,81";""
+"214,400";"-69,7";"-5,81";"-70,3";"-0,6";"4,06";"4,76";""
+"214,500";"-60,0";"-5,00";"-70,7";"-10,7";"3,96";"4,56";""
+"214,600";"-73,5";"-6,12";"-71,0";"2,5";"3,85";"4,59";""
+"214,700";"-72,3";"-6,02";"-71,0";"1,3";"3,72";"4,45";""
+"214,800";"-83,8";"-6,98";"-71,0";"12,8";"3,80";"4,64";"Schwebstoffmessstelle: Wittenberg"
+"214,900";"-73,6";"-6,13";"-70,0";"3,6";"3,83";"4,57";""
+"215,000";"-50,6";"-4,22";"-70,0";"-19,4";"3,92";"4,42";""
+"215,100";"-37,5";"-3,13";"-72,0";"-34,5";"3,97";"4,35";""
+"215,200";"-52,1";"-4,34";"-72,0";"-19,9";"3,96";"4,49";""
+"215,300";"-60,2";"-5,02";"-71,0";"-10,8";"3,82";"4,42";""
+"215,400";"-55,5";"-4,63";"-71,0";"-15,5";"3,83";"4,39";""
+"215,500";"-57,6";"-4,80";"-71,0";"-13,4";"3,84";"4,41";""
+"215,600";"-58,5";"-4,87";"-70,0";"-11,5";"3,93";"4,52";""
+"215,700";"-66,6";"-5,55";"-70,3";"-3,6";"3,86";"4,53";""
+"215,800";"-64,5";"-5,38";"-71,5";"-7,0";"3,74";"4,38";""
+"215,900";"-60,5";"-5,05";"-71,8";"-11,2";"3,80";"4,41";""
+"216,000";"-62,4";"-5,20";"-71,0";"-8,6";"3,85";"4,48";""
+"216,100";"-73,4";"-6,11";"-70,2";"3,2";"3,74";"4,48";""
+"216,200";"-71,7";"-5,98";"-70,3";"1,4";"3,84";"4,56";""
+"216,300";"-63,5";"-5,29";"-70,5";"-7,0";"3,81";"4,44";""
+"216,400";"-63,2";"-5,26";"-69,7";"-6,5";"3,72";"4,35";"Hafen: Wittenberg -Schutz- und Sicherheitshafen"
+"216,500";"-75,4";"-6,29";"-69,8";"5,6";"3,52";"4,28";""
+"216,600";"-72,9";"-6,07";"-69,0";"3,9";"3,70";"4,43";""
+"216,700";"-64,2";"-5,35";"-68,5";"-4,3";"3,84";"4,48";""
+"216,800";"-72,1";"-6,01";"-71,0";"1,1";"3,66";"4,39";""
+"216,900";"-68,5";"-5,71";"-70,5";"-2,0";"3,63";"4,32";""
+"217,000";"-66,5";"-5,54";"-70,0";"-3,5";"3,64";"4,30";""
+"217,100";"-72,3";"-6,03";"-70,3";"2,0";"3,52";"4,25";""
+"217,200";"-80,4";"-6,70";"-69,7";"10,7";"3,43";"4,23";""
+"217,300";"-68,8";"-5,73";"-70,0";"-1,2";"3,30";"3,98";""
+"217,400";"-81,1";"-6,76";"-71,3";"9,8";"3,17";"3,98";""
+"217,500";"-78,0";"-6,50";"-73,7";"4,3";"3,47";"4,25";""
+"217,600";"-87,6";"-7,30";"-74,0";"13,6";"3,56";"4,43";""
+"217,700";"-75,1";"-6,26";"-73,5";"1,6";"3,51";"4,27";""
+"217,800";"-86,7";"-7,23";"-73,0";"13,7";"3,33";"4,20";""
+"217,900";"-56,0";"-4,67";"-73,5";"-17,5";"3,71";"4,27";""
+"218,000";"-59,7";"-4,97";"-74,0";"-14,3";"4,14";"4,74";""
+"218,100";"-53,9";"-4,49";"-73,7";"-19,8";"4,16";"4,69";""
+"218,200";"-60,4";"-5,04";"-74,3";"-13,9";"4,23";"4,83";""
+"218,300";"-76,8";"-6,40";"-74,0";"2,8";"4,10";"4,87";""
+"218,400";"-72,0";"-6,00";"-73,7";"-1,7";"4,23";"4,95";""
+"218,500";"-76,5";"-6,38";"-73,3";"3,2";"4,28";"5,04";""
+"218,600";"-74,4";"-6,20";"-74,0";"0,4";"4,10";"4,84";""
+"218,700";"-69,9";"-5,82";"-72,8";"-2,9";"4,20";"4,90";""
+"218,800";"-77,5";"-6,46";"-72,5";"5,0";"4,16";"4,93";""
+"218,900";"-84,2";"-7,02";"-74,2";"10,0";"4,10";"4,94";""
+"219,000";"-82,7";"-6,89";"-76,0";"6,7";"4,04";"4,87";""
+"219,100";"-81,7";"-6,81";"-75,8";"5,9";"3,80";"4,62";""
+"219,200";"-84,0";"-7,00";"-74,7";"9,3";"3,63";"4,47";""
+"219,300";"-81,3";"-6,77";"-74,5";"6,8";"3,61";"4,43";""
+"219,400";"-73,9";"-6,16";"-74,3";"-0,4";"3,55";"4,29";""
+"219,500";"-85,9";"-7,16";"-73,2";"12,7";"3,53";"4,39";""
+"219,600";"-98,8";"-8,23";"-73,0";"25,8";"3,79";"4,78";""
+"219,700";"-99,7";"-8,31";"-72,5";"27,2";"4,02";"5,02";""
+"219,800";"-80,7";"-6,73";"-71,0";"9,7";"3,94";"4,75";""
+"219,900";"-92,9";"-7,74";"-70,5";"22,4";"3,92";"4,85";""
+"220,000";"-94,2";"-7,85";"-71,0";"23,2";"4,00";"4,94";""
+"220,100";"-113,9";"-9,49";"-70,2";"43,7";"3,90";"5,04";""
+"220,200";"-102,2";"-8,52";"-70,3";"31,9";"4,04";"5,07";""
+"220,300";"-84,5";"-7,04";"-70,5";"14,0";"4,01";"4,85";""
+"220,400";"-98,8";"-8,23";"-70,7";"28,1";"3,78";"4,77";""
+"220,500";"-107,0";"-8,92";"-70,8";"36,2";"3,59";"4,66";""
+"220,600";"-101,6";"-8,47";"-71,0";"30,6";"3,38";"4,40";""
+"220,700";"-92,5";"-7,70";"-69,8";"22,7";"3,52";"4,45";""
+"220,800";"-88,9";"-7,41";"-69,5";"19,4";"3,32";"4,21";""
+"220,900";"-85,3";"-7,10";"-69,3";"16,0";"3,23";"4,09";""
+"221,000";"-78,7";"-6,56";"-70,0";"8,7";"3,17";"3,96";""
+"221,100";"-78,6";"-6,55";"-70,0";"8,6";"3,12";"3,91";""
+"221,200";"-71,3";"-5,94";"-70,0";"1,3";"3,14";"3,86";""
+"221,300";"-59,7";"-4,97";"-71,0";"-11,3";"3,36";"3,96";""
+"221,400";"-66,3";"-5,52";"-71,0";"-4,7";"3,32";"3,99";""
+"221,500";"-65,1";"-5,42";"-72,0";"-6,9";"3,24";"3,89";""
+"221,600";"-59,4";"-4,95";"-73,0";"-13,6";"3,28";"3,87";""
+"221,700";"-45,1";"-3,76";"-73,0";"-27,9";"3,35";"3,80";""
+"221,800";"-48,4";"-4,03";"-74,0";"-25,6";"3,25";"3,73";""
+"221,900";"-53,8";"-4,48";"-74,0";"-20,2";"3,28";"3,81";""
+"222,000";"-61,4";"-5,12";"-73,0";"-11,6";"3,44";"4,05";""
+"222,100";"-82,7";"-6,89";"-73,0";"9,7";"3,78";"4,61";""
+"222,200";"-71,0";"-5,92";"-73,0";"-2,0";"3,94";"4,65";""
+"222,300";"-57,3";"-4,77";"-73,0";"-15,7";"4,13";"4,70";""
+"222,400";"-65,1";"-5,42";"-73,0";"-7,9";"4,13";"4,78";""
+"222,500";"-75,8";"-6,32";"-73,0";"2,8";"3,97";"4,72";""
+"222,600";"-111,8";"-9,32";"-72,0";"39,8";"3,84";"4,96";""
+"222,700";"-125,7";"-10,47";"-72,0";"53,7";"3,77";"5,03";""
+"222,800";"-112,3";"-9,36";"-72,0";"40,3";"3,73";"4,85";""
+"222,900";"-106,9";"-8,91";"-71,0";"35,9";"3,67";"4,74";""
+"223,000";"-98,4";"-8,20";"-71,0";"27,4";"3,59";"4,57";""
+"223,100";"-63,8";"-5,31";"-72,7";"-8,9";"3,54";"4,18";""
+"223,200";"-55,9";"-4,66";"-74,3";"-18,4";"3,76";"4,32";""
+"223,300";"-51,4";"-4,28";"-74,0";"-22,6";"3,78";"4,30";""
+"223,400";"-58,8";"-4,90";"-72,7";"-13,9";"3,74";"4,32";""
+"223,500";"-85,3";"-7,11";"-71,3";"14,0";"3,77";"4,62";""
+"223,600";"-106,9";"-8,91";"-70,0";"36,9";"3,83";"4,90";""
+"223,700";"-124,8";"-10,40";"-71,5";"53,3";"4,00";"5,25";""
+"223,800";"-127,3";"-10,61";"-73,0";"54,3";"4,05";"5,32";""
+"223,900";"-79,1";"-6,59";"-71,5";"7,6";"3,95";"4,74";""
+"224,000";"-76,6";"-6,38";"-71,0";"5,6";"3,75";"4,52";""
+"224,100";"-69,7";"-5,81";"-70,2";"-0,5";"3,66";"4,36";""
+"224,200";"-72,7";"-6,06";"-70,3";"2,4";"3,84";"4,57";""
+"224,300";"-54,8";"-4,57";"-70,5";"-15,7";"4,10";"4,65";""
+"224,400";"-26,6";"-2,21";"-69,7";"-43,1";"3,90";"4,16";""
+"224,500";"-52,3";"-4,36";"-68,8";"-16,5";"3,51";"4,03";""
+"224,600";"-83,4";"-6,95";"-68,0";"15,4";"3,27";"4,11";""
+"224,700";"-77,1";"-6,42";"-67,2";"9,8";"3,27";"4,04";""
+"224,800";"-63,0";"-5,25";"-67,5";"-4,5";"3,25";"3,87";""
+"224,900";"-75,3";"-6,28";"-67,7";"7,6";"3,45";"4,20";""
+"225,000";"-54,3";"-4,52";"-68,0";"-13,7";"3,53";"4,07";""
+"225,100";"-68,8";"-5,73";"-70,7";"-1,9";"3,35";"4,04";""
+"225,200";"-66,2";"-5,52";"-71,3";"-5,1";"3,19";"3,86";""
+"225,300";"-65,5";"-5,46";"-72,0";"-6,5";"3,25";"3,91";""
+"225,400";"-85,6";"-7,13";"-72,7";"12,9";"3,37";"4,23";""
+"225,500";"-105,4";"-8,79";"-72,3";"33,1";"3,33";"4,38";""
+"225,600";"-87,7";"-7,31";"-72,0";"15,7";"3,38";"4,25";""
+"225,700";"-102,6";"-8,55";"-71,8";"30,8";"3,20";"4,22";""
+"225,800";"-114,3";"-9,53";"-71,5";"42,8";"3,38";"4,53";""
+"225,900";"-128,6";"-10,71";"-72,3";"56,3";"3,77";"5,05";""
+"226,000";"-132,8";"-11,07";"-72,0";"60,8";"4,10";"5,43";""
+"226,100";"-135,9";"-11,33";"-70,5";"65,4";"4,14";"5,50";""
+"226,200";"-109,9";"-9,16";"-71,0";"38,9";"4,34";"5,44";""
+"226,300";"-92,7";"-7,72";"-72,5";"20,2";"4,16";"5,08";""
+"226,400";"-82,1";"-6,84";"-72,0";"10,1";"4,14";"4,96";""
+"226,500";"-109,9";"-9,16";"-72,5";"37,4";"4,16";"5,26";""
+"226,600";"-112,4";"-9,37";"-73,0";"39,4";"4,17";"5,30";""
+"226,700";"-91,6";"-7,63";"-73,5";"18,1";"3,99";"4,91";""
+"226,800";"-73,0";"-6,08";"-73,0";"0,0";"3,94";"4,67";""
+"226,900";"-78,9";"-6,57";"-74,5";"4,4";"3,83";"4,62";""
+"227,000";"-88,5";"-7,38";"-74,0";"14,5";"3,79";"4,68";""
+"227,100";"-77,3";"-6,44";"-74,7";"2,6";"3,80";"4,57";""
+"227,200";"-69,3";"-5,78";"-73,3";"-4,0";"3,74";"4,43";""
+"227,300";"-37,3";"-3,11";"-73,0";"-35,7";"3,75";"4,13";""
+"227,400";"-50,4";"-4,20";"-73,7";"-23,3";"3,75";"4,25";""
+"227,500";"-71,2";"-5,94";"-74,3";"-3,1";"3,65";"4,36";""
+"227,600";"-75,6";"-6,30";"-73,0";"2,6";"3,62";"4,38";""
+"227,700";"-73,2";"-6,10";"-74,2";"-1,0";"3,63";"4,37";""
+"227,800";"-61,5";"-5,12";"-75,5";"-14,0";"3,53";"4,14";""
+"227,900";"-88,5";"-7,38";"-74,7";"13,8";"3,42";"4,31";""
+"228,000";"-75,8";"-6,32";"-76,0";"-0,2";"3,59";"4,35";""
+"228,100";"-63,4";"-5,28";"-76,2";"-12,8";"3,55";"4,19";""
+"228,200";"-54,2";"-4,52";"-74,3";"-20,1";"3,78";"4,32";""
+"228,300";"-52,7";"-4,39";"-75,5";"-22,8";"3,95";"4,47";""
+"228,400";"-56,5";"-4,71";"-75,7";"-19,2";"4,20";"4,77";""
+"228,500";"-67,3";"-5,61";"-75,8";"-8,5";"4,03";"4,70";""
+"228,600";"-61,0";"-5,08";"-74,0";"-13,0";"4,09";"4,70";""
+"228,700";"-88,0";"-7,33";"-74,0";"14,0";"3,75";"4,63";""
+"228,800";"-84,1";"-7,01";"-72,0";"12,1";"3,92";"4,76";""
+"228,900";"-91,9";"-7,66";"-69,0";"22,9";"3,60";"4,52";""
+"229,000";"-89,7";"-7,47";"-68,0";"21,7";"3,52";"4,42";""
+"229,100";"-98,9";"-8,24";"-67,8";"31,1";"3,47";"4,46";""
+"229,200";"-73,0";"-6,08";"-66,7";"6,3";"3,86";"4,59";""
+"229,300";"-63,1";"-5,26";"-67,5";"-4,4";"4,00";"4,63";""
+"229,400";"-75,5";"-6,29";"-68,3";"7,2";"3,89";"4,64";""
+"229,500";"-86,3";"-7,19";"-69,2";"17,1";"3,55";"4,41";""
+"229,600";"-77,7";"-6,47";"-70,0";"7,7";"3,52";"4,30";""
+"229,700";"-75,1";"-6,25";"-70,8";"4,3";"3,52";"4,27";""
+"229,800";"-79,8";"-6,65";"-72,5";"7,3";"3,47";"4,26";""
+"229,900";"-79,1";"-6,59";"-73,3";"5,8";"3,54";"4,33";""
+"230,000";"-52,2";"-4,35";"-72,0";"-19,8";"3,95";"4,47";""
+""
diff -r 28fe5e654495 -r 48d87af1243e gwt-client/src/test/resources/sinfo/flowdepthdevelopment/sinfo_fte_02.csv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/gwt-client/src/test/resources/sinfo/flowdepthdevelopment/sinfo_fte_02.csv Tue Jun 12 15:04:40 2018 +0200
@@ -0,0 +1,138 @@
+"##Ergebnisausgabe - Rhein - Fließtiefenentwicklung"
+"# FLYS-Version: 3.3.0"
+"# Bearbeiter: gbelger at localdb"
+"# Datum der Erstellung: 06.06.18"
+"# Gewässer: Rhein"
+"# Höhensystem des Flusses: NHN + m "
+"# Bereich (km): 655,000 - 665,000"
+""
+"Fluss-km";"Fließtiefenentwicklung [m]";"Fließtiefenent-wicklung pro Jahr [cm/a]";"?WSPL [m] (23.09.2009-1 - 23.09.1991)";"?MSH [m] (NIEDERRHEIN_QP-2008_Epoche_NHN - NIEDERRHEIN_QP-1991_Epoche_NHN)";"Fließtiefe h-aktuell [m] (23.09.2009-1 - NIEDERRHEIN_QP-2008_Epoche_NHN)";"Fließtiefe h-historisch [m] (23.09.1991 - NIEDERRHEIN_QP-1991_Epoche_NHN)";"Lage"
+""
+"##METADATEN PEILUNG aktuell"
+"# Jahr der Peilung: 2008"
+"# Aufnahmeart: Querprofile"
+"# Auswerter: WSA Duisburg (Abel)"
+"# Lagesystem: LS unbekannt"
+"# Höhensystem: müNHN "
+"# ursprüngliches Höhensystem: müNHN"
+""
+"##METADATEN WASSERSPIEGELLAGE aktuell"
+"# Bezeichnung der Wasserspiegellage: 23.09.2009-1 "
+"# Bezugspegel: Bonn"
+"# Jahr/Zeitraum der Wasserspiegellage: 2009"
+""
+"##METADATEN PEILUNG historisch"
+"# Jahr der Peilung: 1991"
+"# Aufnahmeart: Querprofile"
+"# Auswerter: WSA Duisburg (Abel)"
+"# Lagesystem: LS unbekannt"
+"# Höhensystem: müNHN "
+"# ursprüngliches Höhensystem: müNHN"
+""
+"##METADATEN WASSERSPIEGELLAGE historisch"
+"# Bezeichnung der Wasserspiegellage: 23.09.1991 "
+"# Bezugspegel: Bonn"
+"# Jahr/Zeitraum der Wasserspiegellage: 1991"
+""
+"655,000";"36,0";"2,12";"27,0";"-9,0";"2,47";"2,11";""
+"655,100";"31,0";"1,82";"27,0";"-4,0";"2,40";"2,09";""
+"655,200";"18,0";"1,06";"26,0";"8,0";"2,20";"2,02";""
+"655,300";"8,0";"0,47";"26,0";"18,0";"2,20";"2,12";""
+"655,400";"14,0";"0,82";"25,0";"11,0";"2,25";"2,11";""
+"655,500";"12,0";"0,71";"25,0";"13,0";"2,17";"2,05";""
+"655,600";"25,0";"1,47";"25,0";"0,0";"2,19";"1,94";""
+"655,700";"40,0";"2,35";"23,0";"-17,0";"2,11";"1,71";""
+"655,800";"43,0";"2,53";"23,0";"-20,0";"2,15";"1,72";""
+"655,900";"48,0";"2,82";"22,0";"-26,0";"2,27";"1,79";""
+"656,000";"46,0";"2,71";"23,0";"-23,0";"2,38";"1,92";""
+"656,100";"45,0";"2,65";"23,0";"-22,0";"2,59";"2,14";""
+"656,200";"39,0";"2,29";"23,0";"-16,0";"2,72";"2,33";""
+"656,300";"38,0";"2,24";"23,0";"-15,0";"2,92";"2,54";""
+"656,400";"31,0";"1,82";"22,0";"-9,0";"2,91";"2,60";""
+"656,500";"23,0";"1,35";"20,0";"-3,0";"2,99";"2,76";""
+"656,600";"27,0";"1,59";"20,0";"-7,0";"2,80";"2,53";""
+"656,700";"30,0";"1,76";"20,0";"-10,0";"3,17";"2,87";""
+"656,800";"33,0";"1,94";"20,0";"-13,0";"3,29";"2,96";""
+"656,900";"36,0";"2,12";"21,0";"-15,0";"3,30";"2,94";""
+"657,000";"40,0";"2,35";"21,0";"-19,0";"3,30";"2,90";""
+"657,100";"52,0";"3,06";"23,0";"-29,0";"3,36";"2,84";""
+"657,200";"51,0";"3,00";"25,0";"-26,0";"3,52";"3,01";""
+"657,300";"61,0";"3,59";"24,0";"-37,0";"3,41";"2,80";""
+"657,400";"51,0";"3,00";"23,0";"-28,0";"3,59";"3,08";""
+"657,500";"38,0";"2,24";"24,0";"-14,0";"3,58";"3,20";""
+"657,600";"45,0";"2,65";"25,0";"-20,0";"3,32";"2,87";""
+"657,700";"58,0";"3,41";"26,0";"-32,0";"3,26";"2,68";""
+"657,800";"54,0";"3,18";"26,0";"-28,0";"3,08";"2,54";""
+"657,900";"68,0";"4,00";"26,0";"-42,0";"3,17";"2,49";""
+"658,000";"62,0";"3,65";"26,0";"-36,0";"3,12";"2,50";""
+"658,100";"62,0";"3,65";"26,0";"-36,0";"3,16";"2,54";""
+"658,200";"41,0";"2,41";"26,0";"-15,0";"3,18";"2,77";""
+"658,300";"45,0";"2,65";"27,0";"-18,0";"3,35";"2,90";""
+"658,400";"27,0";"1,59";"26,0";"-1,0";"3,35";"3,08";""
+"658,500";"24,0";"1,41";"25,0";"1,0";"3,23";"2,99";""
+"658,600";"25,0";"1,47";"25,0";"0,0";"3,55";"3,30";""
+"658,700";"17,0";"1,00";"27,0";"10,0";"3,57";"3,40";""
+"658,800";"18,0";"1,06";"27,0";"9,0";"3,78";"3,60";""
+"658,900";"5,0";"0,29";"26,0";"21,0";"4,07";"4,02";""
+"659,000";"34,0";"2,00";"24,0";"-10,0";"3,75";"3,41";""
+"659,100";"37,0";"2,18";"21,0";"-16,0";"4,01";"3,64";""
+"659,200";"35,0";"2,06";"20,0";"-15,0";"3,98";"3,63";""
+"659,300";"49,0";"2,88";"20,0";"-29,0";"3,83";"3,34";""
+"659,400";"41,0";"2,41";"19,0";"-22,0";"3,55";"3,14";""
+"659,500";"35,0";"2,06";"18,0";"-17,0";"3,40";"3,05";""
+"659,600";"6,0";"0,35";"18,0";"12,0";"3,38";"3,32";""
+"659,700";"-1,0";"-0,06";"18,0";"19,0";"3,21";"3,22";""
+"659,800";"-5,0";"-0,29";"18,0";"23,0";"2,97";"3,02";""
+"659,900";"-21,0";"-1,24";"17,0";"38,0";"2,88";"3,09";""
+"660,000";"-23,0";"-1,35";"16,0";"39,0";"3,03";"3,26";""
+"660,100";"-28,0";"-1,65";"17,0";"45,0";"3,16";"3,44";"Geschiebemessstelle: Mondorf"
+"660,200";"-6,0";"-0,35";"18,0";"24,0";"3,19";"3,25";""
+"660,300";"-13,0";"-0,76";"19,0";"32,0";"3,16";"3,29";""
+"660,400";"11,0";"0,65";"20,0";"9,0";"2,92";"2,81";""
+"660,500";"13,0";"0,76";"19,0";"6,0";"2,76";"2,63";""
+"660,600";"29,0";"1,71";"18,0";"-11,0";"2,57";"2,28";""
+"660,700";"9,0";"0,53";"17,0";"8,0";"2,55";"2,46";""
+"660,800";"17,0";"1,00";"16,0";"-1,0";"2,51";"2,34";""
+"660,900";"11,0";"0,65";"12,0";"1,0";"2,50";"2,39";""
+"661,000";"15,0";"0,88";"13,0";"-2,0";"2,56";"2,41";""
+"661,100";"19,0";"1,12";"15,0";"-4,0";"2,51";"2,32";""
+"661,200";"34,0";"2,00";"16,0";"-18,0";"2,68";"2,34";""
+"661,300";"38,0";"2,24";"17,0";"-21,0";"2,85";"2,47";""
+"661,400";"42,0";"2,47";"17,0";"-25,0";"3,02";"2,60";""
+"661,500";"46,0";"2,71";"19,0";"-27,0";"2,97";"2,51";""
+"661,600";"51,0";"3,00";"20,0";"-31,0";"2,69";"2,18";""
+"661,700";"51,0";"3,00";"21,0";"-30,0";"2,53";"2,02";""
+"661,800";"50,0";"2,94";"22,0";"-28,0";"2,62";"2,12";""
+"661,900";"51,0";"3,00";"22,0";"-29,0";"2,59";"2,08";""
+"662,000";"40,0";"2,35";"22,0";"-18,0";"2,46";"2,06";""
+"662,100";"51,0";"3,00";"24,0";"-27,0";"2,39";"1,88";""
+"662,200";"54,0";"3,18";"25,0";"-29,0";"2,49";"1,95";""
+"662,300";"58,0";"3,41";"24,0";"-34,0";"2,46";"1,88";""
+"662,400";"56,0";"3,29";"22,0";"-34,0";"2,69";"2,13";""
+"662,500";"51,0";"3,00";"24,0";"-27,0";"2,19";"1,68";""
+"662,600";"51,0";"3,00";"25,0";"-26,0";"2,13";"1,62";""
+"662,700";"62,0";"3,65";"25,0";"-37,0";"2,34";"1,72";""
+"662,800";"64,0";"3,76";"26,0";"-38,0";"2,49";"1,85";""
+"662,900";"64,0";"3,76";"28,0";"-36,0";"2,31";"1,67";""
+"663,000";"58,0";"3,41";"30,0";"-28,0";"2,25";"1,67";""
+"663,100";"49,0";"2,88";"31,0";"-18,0";"2,37";"1,88";""
+"663,200";"44,0";"2,59";"30,0";"-14,0";"2,40";"1,96";""
+"663,300";"41,0";"2,41";"29,0";"-12,0";"2,32";"1,91";""
+"663,400";"36,0";"2,12";"28,0";"-8,0";"2,49";"2,13";""
+"663,500";"29,0";"1,71";"26,0";"-3,0";"2,59";"2,30";""
+"663,600";"34,0";"2,00";"24,0";"-10,0";"2,78";"2,44";""
+"663,700";"34,0";"2,00";"23,0";"-11,0";"2,70";"2,36";""
+"663,800";"37,0";"2,18";"24,0";"-13,0";"2,32";"1,95";""
+"663,900";"34,0";"2,00";"24,0";"-10,0";"2,40";"2,06";""
+"664,000";"34,0";"2,00";"22,0";"-12,0";"2,62";"2,28";""
+"664,100";"27,0";"1,59";"22,0";"-5,0";"2,86";"2,59";""
+"664,200";"33,0";"1,94";"22,0";"-11,0";"3,14";"2,81";""
+"664,300";"34,0";"2,00";"21,0";"-13,0";"2,77";"2,43";""
+"664,400";"19,0";"1,12";"22,0";"3,0";"3,17";"2,98";""
+"664,500";"13,0";"0,76";"22,0";"9,0";"2,93";"2,80";""
+"664,600";"17,0";"1,00";"22,0";"5,0";"2,89";"2,72";""
+"664,700";"20,0";"1,18";"22,0";"2,0";"3,14";"2,94";""
+"664,800";"23,0";"1,35";"22,0";"-1,0";"3,21";"2,98";""
+"664,900";"20,0";"1,18";"22,0";"2,0";"3,03";"2,83";""
+"665,000";"28,0";"1,65";"22,0";"-6,0";"3,00";"2,72";""
+""
More information about the Dive4Elements-commits
mailing list