From d1e7305c0f94e86ee2d4293bc5be0ed4bad4c72c Mon Sep 17 00:00:00 2001 From: Nelson Tavares de Sousa <stu103017@mail.uni-kiel.de> Date: Mon, 13 Oct 2014 15:23:50 +0200 Subject: [PATCH] #36 Tests modified corresponding JUnit conventions Testdata added Moved stages to correct packages --- .gitignore | 1 + .../stage/{io => }/ByteArray2String.java | 2 +- .../stage/{io => }/CipherByteArray.java | 2 +- src/main/java/teetime/stage/TokenCounter.java | 18 ++++++++++ .../teetime/stage/{io => }/Tokenizer.java | 2 +- .../teetime/stage/{io => }/ZipByteArray.java | 6 ++-- .../examples/cipher/CipherConfiguration.java | 8 ++--- .../teetime/examples/cipher/CipherTest.java | 26 +++----------- .../tokenizer/TokenizerConfiguration.java | 33 ++++++++--------- .../examples/tokenizer/TokenizerTest.java | 34 +++++------------- src/test/resources/data/cipherInput.txt | Bin 0 -> 4230 bytes src/test/resources/data/input.txt | 11 ++++++ src/test/resources/data/output.txt | 11 ++++++ 13 files changed, 81 insertions(+), 73 deletions(-) rename src/main/java/teetime/stage/{io => }/ByteArray2String.java (93%) rename src/main/java/teetime/stage/{io => }/CipherByteArray.java (98%) create mode 100644 src/main/java/teetime/stage/TokenCounter.java rename src/main/java/teetime/stage/{io => }/Tokenizer.java (95%) rename src/main/java/teetime/stage/{io => }/ZipByteArray.java (90%) create mode 100644 src/test/resources/data/cipherInput.txt create mode 100644 src/test/resources/data/input.txt create mode 100644 src/test/resources/data/output.txt diff --git a/.gitignore b/.gitignore index c920a075..0da1e006 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ /bin /target /testdata/ +/doc/ diff --git a/src/main/java/teetime/stage/io/ByteArray2String.java b/src/main/java/teetime/stage/ByteArray2String.java similarity index 93% rename from src/main/java/teetime/stage/io/ByteArray2String.java rename to src/main/java/teetime/stage/ByteArray2String.java index 2a132fbc..912e625b 100644 --- a/src/main/java/teetime/stage/io/ByteArray2String.java +++ b/src/main/java/teetime/stage/ByteArray2String.java @@ -1,4 +1,4 @@ -package teetime.stage.io; +package teetime.stage; import teetime.framework.ConsumerStage; import teetime.framework.OutputPort; diff --git a/src/main/java/teetime/stage/io/CipherByteArray.java b/src/main/java/teetime/stage/CipherByteArray.java similarity index 98% rename from src/main/java/teetime/stage/io/CipherByteArray.java rename to src/main/java/teetime/stage/CipherByteArray.java index 4300802d..a0a763d5 100644 --- a/src/main/java/teetime/stage/io/CipherByteArray.java +++ b/src/main/java/teetime/stage/CipherByteArray.java @@ -1,4 +1,4 @@ -package teetime.stage.io; +package teetime.stage; import java.security.spec.KeySpec; diff --git a/src/main/java/teetime/stage/TokenCounter.java b/src/main/java/teetime/stage/TokenCounter.java new file mode 100644 index 00000000..dfcc27ac --- /dev/null +++ b/src/main/java/teetime/stage/TokenCounter.java @@ -0,0 +1,18 @@ +package teetime.stage; + +import teetime.framework.ConsumerStage; + +public class TokenCounter extends ConsumerStage<String> { + + private long i = 0; + + public long getI() { + return i; + } + + @Override + protected void execute(final String element) { + i++; + } + +} diff --git a/src/main/java/teetime/stage/io/Tokenizer.java b/src/main/java/teetime/stage/Tokenizer.java similarity index 95% rename from src/main/java/teetime/stage/io/Tokenizer.java rename to src/main/java/teetime/stage/Tokenizer.java index e40aebef..f614306e 100644 --- a/src/main/java/teetime/stage/io/Tokenizer.java +++ b/src/main/java/teetime/stage/Tokenizer.java @@ -1,4 +1,4 @@ -package teetime.stage.io; +package teetime.stage; import java.util.StringTokenizer; diff --git a/src/main/java/teetime/stage/io/ZipByteArray.java b/src/main/java/teetime/stage/ZipByteArray.java similarity index 90% rename from src/main/java/teetime/stage/io/ZipByteArray.java rename to src/main/java/teetime/stage/ZipByteArray.java index a4720218..9aa08d1a 100644 --- a/src/main/java/teetime/stage/io/ZipByteArray.java +++ b/src/main/java/teetime/stage/ZipByteArray.java @@ -1,4 +1,4 @@ -package teetime.stage.io; +package teetime.stage; import java.io.ByteArrayOutputStream; import java.io.IOException; @@ -43,7 +43,7 @@ public class ZipByteArray extends ConsumerStage<byte[]> { this.send(outputPort, cache); } - public static byte[] compress(final byte[] data) throws IOException { + private byte[] compress(final byte[] data) throws IOException { Deflater deflater = new Deflater(); deflater.setInput(data); @@ -63,7 +63,7 @@ public class ZipByteArray extends ConsumerStage<byte[]> { return output; } - public static byte[] decompress(final byte[] data) throws IOException, DataFormatException { + private byte[] decompress(final byte[] data) throws IOException, DataFormatException { Inflater inflater = new Inflater(); inflater.setInput(data); diff --git a/src/performancetest/java/teetime/examples/cipher/CipherConfiguration.java b/src/performancetest/java/teetime/examples/cipher/CipherConfiguration.java index 917d5dcc..54fef5a3 100644 --- a/src/performancetest/java/teetime/examples/cipher/CipherConfiguration.java +++ b/src/performancetest/java/teetime/examples/cipher/CipherConfiguration.java @@ -6,13 +6,13 @@ import teetime.framework.AnalysisConfiguration; import teetime.framework.pipe.PipeFactory; import teetime.framework.pipe.PipeFactory.PipeOrdering; import teetime.framework.pipe.PipeFactory.ThreadCommunication; +import teetime.stage.CipherByteArray; import teetime.stage.InitialElementProducer; +import teetime.stage.ZipByteArray; +import teetime.stage.CipherByteArray.CipherMode; +import teetime.stage.ZipByteArray.ZipMode; import teetime.stage.io.ByteArrayFileWriter; -import teetime.stage.io.CipherByteArray; -import teetime.stage.io.CipherByteArray.CipherMode; import teetime.stage.io.File2ByteArray; -import teetime.stage.io.ZipByteArray; -import teetime.stage.io.ZipByteArray.ZipMode; public class CipherConfiguration extends AnalysisConfiguration { diff --git a/src/performancetest/java/teetime/examples/cipher/CipherTest.java b/src/performancetest/java/teetime/examples/cipher/CipherTest.java index 0021944a..be4c3b50 100644 --- a/src/performancetest/java/teetime/examples/cipher/CipherTest.java +++ b/src/performancetest/java/teetime/examples/cipher/CipherTest.java @@ -3,9 +3,7 @@ package teetime.examples.cipher; import java.io.File; import java.io.IOException; -import org.junit.AfterClass; import org.junit.Assert; -import org.junit.BeforeClass; import org.junit.Test; import teetime.framework.Analysis; @@ -15,8 +13,8 @@ import com.google.common.io.Files; public class CipherTest { - static String inputFile = "testdata/dependencies.html"; - static String outputFile = "testdata/dependencies.html"; + static String inputFile = "src/test/resources/data/input.txt"; + static String outputFile = "src/test/resources/data/output.txt"; static String password = "Password"; static long start; long stop; @@ -25,26 +23,12 @@ public class CipherTest { final static Analysis analysis = new Analysis(configuration); - @BeforeClass - public static void beforeClass() { + @Test + public void executeTest() throws IOException { analysis.init(); start = System.currentTimeMillis(); - } - - @Test - public void executeTest() { analysis.start(); + Assert.assertTrue(Files.equal(new File(inputFile), new File(outputFile))); } - @AfterClass - public static void afterClass() { - System.out.println("It took " + (System.currentTimeMillis() - start) + " Milliseconds"); - boolean bool = false; - try { - bool = Files.equal(new File(inputFile), new File(outputFile)); - } catch (IOException e) { - e.printStackTrace(); - } - Assert.assertTrue(bool); - } } diff --git a/src/performancetest/java/teetime/examples/tokenizer/TokenizerConfiguration.java b/src/performancetest/java/teetime/examples/tokenizer/TokenizerConfiguration.java index 538a5560..7ae1bb77 100644 --- a/src/performancetest/java/teetime/examples/tokenizer/TokenizerConfiguration.java +++ b/src/performancetest/java/teetime/examples/tokenizer/TokenizerConfiguration.java @@ -6,21 +6,22 @@ import teetime.framework.AnalysisConfiguration; import teetime.framework.pipe.PipeFactory; import teetime.framework.pipe.PipeFactory.PipeOrdering; import teetime.framework.pipe.PipeFactory.ThreadCommunication; +import teetime.stage.ByteArray2String; +import teetime.stage.CipherByteArray; +import teetime.stage.CipherByteArray.CipherMode; import teetime.stage.InitialElementProducer; -import teetime.stage.io.ByteArray2String; -import teetime.stage.io.CipherByteArray; -import teetime.stage.io.CipherByteArray.CipherMode; +import teetime.stage.TokenCounter; +import teetime.stage.Tokenizer; +import teetime.stage.ZipByteArray; +import teetime.stage.ZipByteArray.ZipMode; import teetime.stage.io.File2ByteArray; -import teetime.stage.io.Printer; -import teetime.stage.io.Tokenizer; -import teetime.stage.io.ZipByteArray; -import teetime.stage.io.ZipByteArray.ZipMode; public class TokenizerConfiguration extends AnalysisConfiguration { private final PipeFactory pipeFactory = PipeFactory.INSTANCE; private final File input; private final String password; + private final TokenCounter counter; public TokenizerConfiguration(final String inputFile, final String password) { this.input = new File(inputFile); @@ -28,22 +29,16 @@ public class TokenizerConfiguration extends AnalysisConfiguration { InitialElementProducer<File> init = new InitialElementProducer<File>(this.input); File2ByteArray f2b = new File2ByteArray(); - CipherByteArray enc = new CipherByteArray(this.password, CipherMode.ENCRYPT); - ZipByteArray comp = new ZipByteArray(ZipMode.COMP); ZipByteArray decomp = new ZipByteArray(ZipMode.DECOMP); CipherByteArray decrypt = new CipherByteArray(this.password, CipherMode.DECRYPT); ByteArray2String b2s = new ByteArray2String(); Tokenizer tokenizer = new Tokenizer(" "); - Printer<String> pt = new Printer<String>(); + TokenCounter counter = new TokenCounter(); this.pipeFactory.getPipeFactory(ThreadCommunication.INTRA, PipeOrdering.ARBITRARY, false) .create(init.getOutputPort(), f2b.getInputPort()); this.pipeFactory.getPipeFactory(ThreadCommunication.INTRA, PipeOrdering.ARBITRARY, false) - .create(f2b.getOutputPort(), enc.getInputPort()); - this.pipeFactory.getPipeFactory(ThreadCommunication.INTRA, PipeOrdering.ARBITRARY, false) - .create(enc.getOutputPort(), comp.getInputPort()); - this.pipeFactory.getPipeFactory(ThreadCommunication.INTRA, PipeOrdering.ARBITRARY, false) - .create(comp.getOutputPort(), decomp.getInputPort()); + .create(f2b.getOutputPort(), decomp.getInputPort()); this.pipeFactory.getPipeFactory(ThreadCommunication.INTRA, PipeOrdering.ARBITRARY, false) .create(decomp.getOutputPort(), decrypt.getInputPort()); this.pipeFactory.getPipeFactory(ThreadCommunication.INTRA, PipeOrdering.ARBITRARY, false) @@ -51,9 +46,15 @@ public class TokenizerConfiguration extends AnalysisConfiguration { this.pipeFactory.getPipeFactory(ThreadCommunication.INTRA, PipeOrdering.ARBITRARY, false) .create(b2s.getOutputPort(), tokenizer.getInputPort()); this.pipeFactory.getPipeFactory(ThreadCommunication.INTRA, PipeOrdering.ARBITRARY, false) - .create(tokenizer.getOutputPort(), pt.getInputPort()); + .create(tokenizer.getOutputPort(), counter.getInputPort()); this.getFiniteProducerStages().add(init); + this.counter = counter; } + + public long getTokenCount() { + return this.counter.getI(); + } + } diff --git a/src/performancetest/java/teetime/examples/tokenizer/TokenizerTest.java b/src/performancetest/java/teetime/examples/tokenizer/TokenizerTest.java index c5363323..93cd2761 100644 --- a/src/performancetest/java/teetime/examples/tokenizer/TokenizerTest.java +++ b/src/performancetest/java/teetime/examples/tokenizer/TokenizerTest.java @@ -1,43 +1,25 @@ package teetime.examples.tokenizer; -import org.junit.AfterClass; -import org.junit.BeforeClass; +import org.junit.Assert; import org.junit.Test; import teetime.framework.Analysis; -import teetime.framework.AnalysisConfiguration; public class TokenizerTest { - static String inputFile = "testdata/dependencies.html"; - static String password = "Password"; - static long start; - long stop; + // Encrypted lorem ipsum + private static String inputFile = "src/test/resources/data/cipherInput.txt"; + private static String password = "Password"; - static AnalysisConfiguration configuration = new TokenizerConfiguration(inputFile, password); + private static TokenizerConfiguration configuration = new TokenizerConfiguration(inputFile, password); - final static Analysis analysis = new Analysis(configuration); - - @BeforeClass - public static void beforeClass() { - analysis.init(); - start = System.currentTimeMillis(); - } + private final static Analysis analysis = new Analysis(configuration); @Test public void executeTest() { + analysis.init(); analysis.start(); + Assert.assertEquals(970, configuration.getTokenCount()); } - @AfterClass - public static void afterClass() { - System.out.println("It took " + (System.currentTimeMillis() - start) + " Milliseconds"); - // boolean bool = false; - // try { - // bool = Files.equal(new File(inputFile), new File(outputFile)); - // } catch (IOException e) { - // e.printStackTrace(); - // } - // Assert.assertTrue(bool); - } } diff --git a/src/test/resources/data/cipherInput.txt b/src/test/resources/data/cipherInput.txt new file mode 100644 index 0000000000000000000000000000000000000000..b8fd6d85206a464b868be1d834536cc0110d33c7 GIT binary patch literal 4230 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 literal 0 HcmV?d00001 diff --git a/src/test/resources/data/input.txt b/src/test/resources/data/input.txt new file mode 100644 index 00000000..5c016264 --- /dev/null +++ b/src/test/resources/data/input.txt @@ -0,0 +1,11 @@ +Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. +Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. +Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. +Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. +Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis. +At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, At accusam aliquyam diam diam dolore dolores duo eirmod eos erat, et nonumy sed tempor et et invidunt justo labore Stet clita ea et gubergren, kasd magna no rebum. sanctus sea sed takimata ut vero voluptua. est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat. +Consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus. +Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. +Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. +Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. +Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo \ No newline at end of file diff --git a/src/test/resources/data/output.txt b/src/test/resources/data/output.txt new file mode 100644 index 00000000..5c016264 --- /dev/null +++ b/src/test/resources/data/output.txt @@ -0,0 +1,11 @@ +Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. +Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. +Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. +Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. +Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis. +At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, At accusam aliquyam diam diam dolore dolores duo eirmod eos erat, et nonumy sed tempor et et invidunt justo labore Stet clita ea et gubergren, kasd magna no rebum. sanctus sea sed takimata ut vero voluptua. est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat. +Consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus. +Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. +Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. +Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. +Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo \ No newline at end of file -- GitLab