view gnv-artifacts/src/test/java/de/intevation/gnv/artifacts/MeshVerticalProfileTestCase.java @ 1055:bb2679624c6a

Implemented a new histogram dataset that takes the width of a single bin as well as the number of bins for the histogram (issue288). gnv-artifacts/trunk@1130 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Thu, 27 May 2010 07:41:14 +0000
parents c4156275c1e1
children f953c9a559d8
line wrap: on
line source
package de.intevation.gnv.artifacts;

import de.intevation.artifacts.Artifact;
import de.intevation.artifacts.ArtifactFactory;
import de.intevation.artifacts.CallContext;

import java.io.FileOutputStream;

import org.apache.log4j.Logger;

import org.w3c.dom.Document;

/**
 * @author <a href="mailto:tim.englich@intevation.de">Tim Englich</a>
 *
 */
public class MeshVerticalProfileTestCase extends GNVArtifactsTestCaseBase {

    private static Logger log = Logger.getLogger(MeshVerticalProfileTestCase.class);

    /**
     * Constructor
     */
    public MeshVerticalProfileTestCase() {
    }

    /**
     * Constructor
     * @param name
     */
    public MeshVerticalProfileTestCase(String name) {
        super(name);
    }

    /**
     * @see de.intevation.gnv.artifacts.GNVArtifactsTestCaseBase#testArtifact()
     */
    @Override
    public void testArtifact() {
        try {
            log.debug("GNVArtifactsTestCase.testVerticalProfileArtifact");
            String artefactName = "fis_modeldata";
            ArtifactFactory artifactFactory = this
                    .getArtifactFactory(artefactName);
            assertNotNull(artifactFactory);
            log.debug("VerticalProfile-ArtifactFactory is available");

            Artifact artifact = createArtifact(artifactFactory);

            CallContext cc = createCallContext(artifactFactory);
            Document describeDocument = this.readDocument("src/test/ressources/" +
                                                          "verticalprofile_mesh/" +
                                                          "verticalprofile_describe.xml");

            int steps = 11;

            for (int i = 1; i <= steps; i++){
                String number = ""+i;
                if (i < 10){
                    number = "0"+number;
                }
                this.doNextStep(
                            artifact,
                            cc,
                            "src/test/ressources/verticalprofile_mesh/" +
                            "verticalprofile_step_"+number+"_feed.xml",
                            "src/test/ressources/verticalprofile_mesh/" +
                            "verticalprofile_step_"+number+"_advance.xml",
                            describeDocument);
            }
            // 10. Schritt
            Document outputData = artifact.describe(describeDocument,cc);
            FileOutputStream fos = null;
            FileOutputStream fos2 = null;
            FileOutputStream fos3 = null;
            FileOutputStream fos4 = null;
            try {
                fos = new FileOutputStream(
                        "src/test/results/verticalprofile_mesh"
                                + System.currentTimeMillis() + ".png");
                fos2 = new FileOutputStream(
                        "src/test/results/verticalprofile_mesh"
                                + System.currentTimeMillis() + ".xml");
                fos3 = new FileOutputStream(
                        "src/test/results/verticalprofile_mesh"
                                + System.currentTimeMillis() + ".csv");
                fos4 = new FileOutputStream(
                        "src/test/results/verticalprofile_mesh"
                                + System.currentTimeMillis() + ".odv");
                artifact.out(this.readDocument("src/test/ressources/" +
                                               "verticalprofile_mesh/" +
                                               "verticalprofile_step_"+steps+"_out_statistics.xml"),
                             fos2, cc);
                artifact.out(this.readDocument("src/test/ressources/" +
                                               "verticalprofile_mesh/" +
                                               "verticalprofile_step_"+steps+"_out_chart.xml"),
                             fos, cc);
                artifact.out(this.readDocument("src/test/ressources/" +
                                              "verticalprofile_mesh/" +
                                              "verticalprofile_step_"+steps+"_out_csv.xml"),
                             fos3, cc);
                artifact.out(this.readDocument("src/test/ressources/" +
                                               "verticalprofile_mesh/" +
                                               "verticalprofile_step_"+steps+"_out_odv.xml"),
                             fos4, cc);
            } catch (Exception e) {
                log.error(e, e);
                fail();
            } finally {
                try {
                    fos.flush();
                    fos.close();
                    fos2.flush();
                    fos2.close();
                    fos3.flush();
                    fos3.close();
                    fos4.flush();
                    fos4.close();
                } catch (Exception e) {
                    log.error(e, e);
                }
            }
        } catch (Exception e) {
            log.error(e, e);
            fail();
        }
    }

}

http://dive4elements.wald.intevation.org