Skip to content
Snippets Groups Projects
Commit db95c0b8 authored by Jeremias Shadbolt's avatar Jeremias Shadbolt
Browse files

eka palautus

parents
Branches master
No related tags found
No related merge requests found
contracts/
.classpath
.project
.history/
.idea
.jqwik-database
.lib/
.worksheet
.settings/
*.iml
*.ipr
*.iws
*.log
project/boot/
project/plugins/project/
project/project/
project/*-shim.sbt
project/target/
target/
openjfx/
public/report.txt
public/surefire-report.html
image: maven:latest
variables:
# This will supress any download for dependencies and plugins or upload messages which would clutter the console log.
# `showDateTime` will show the passed time in milliseconds. You need to specify `--batch-mode` to make this work.
MAVEN_OPTS: "-Dhttps.protocols=TLSv1.2 -Dmaven.repo.local=$CI_PROJECT_DIR/.m2/repository -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN -Dorg.slf4j.simpleLogger.showDateTime=true -Djava.awt.headless=true"
MAVEN_CLI_OPTS: "--batch-mode --errors --fail-at-end --show-version"
# -DinstallAtEnd=true -DdeployAtEnd=true"
# Cache downloaded dependencies and plugins between builds.
# To keep cache across branches add ''
cache:
key: "$CI_JOB_NAME"
paths:
- .m2/repository
build:
stage: build
script:
- mvn compile
test:
stage: test
script:
- mvn test
pages:
stage: deploy
script:
- ./report.sh || true
artifacts:
paths:
- public
only:
- master
Laura Laurell 71399
Jeremias Shadbolt 524130
\ No newline at end of file
# DTEK0066 project template
## Workflow
```bash
$ git clone https://gitlab.utu.fi/tech/education/ooj/ooj-template
$ cd ooj-template
< tee tehtävät >
< editoi AUTHORS.TXT >
$ git add -A
$ git commit -m 'Tehtävät tehty'
$ git remote add oma https://gitlab.utu.fi/omatunnus/omaprojekti
$ git push oma
< korjaa/täydennä tehtäviä >
$ git add -A
$ git commit -m 'Tehtävät korjattu'
$ git push oma
```
## Using Maven
```bash
$ mvn clean
$ mvn compile
$ mvn exec:java
$ mvn test
$ mvn surefire-report:report
```
## Online report
See <https://gitlab.utu.fi/tech/education/ooj/ooj-template/pages>
pom.xml 0 → 100644
<project>
<modelVersion>4.0.0</modelVersion>
<!--
Welcome!
This pom.xml is *THE* file that defines your Maven style Java project.
Eclipse, IDEA and other development environments with Maven support
or plugins can *import* this project by reading this file.
It usually contains tons of barely readable configuration. Luckily
this basic pom.xml is somewhat readable. All necessary configuration
for customizing your project if located here on top before the
'END OF SIMPLE CONFIGURATION' line below.
-->
<!-- ==== START OF SIMPLE CONFIGURATION ==== -->
<!-- The three parts of the artifact name -->
<groupId>fi.utu.tech</groupId>
<artifactId>ooj-template</artifactId>
<version>1.0.0</version>
<!-- Additional information about the project -->
<name>Example code for testing</name>
<url>https://gitlab.utu.fi/tech/education/ooj/ooj-template</url>
<!-- We want to generate a jar. Don't change. -->
<packaging>jar</packaging>
<properties>
<!-- Configures the main class for this project (i.e. what to launch) -->
<project.mainclass>fi.utu.tech.Main</project.mainclass>
<!-- The source encoding should always be utf-8. Don't change. -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- Version numbers for various modules -->
<jdk.version>11</jdk.version>
<jqwik.version>1.3.5</jqwik.version>
<junit.version>5.7.0</junit.version>
<junitplatform.version>1.7.0</junitplatform.version>
<javafx.version>15</javafx.version>
</properties>
<!-- ==== END OF SIMPLE CONFIGURATION ==== -->
<repositories>
<!-- https://search.maven.org/ -->
<repository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>central</id>
<name>Central Repository</name>
<url>https://repo.maven.apache.org/maven2</url>
</repository>
<repository>
<id>jcenter</id>
<name>jcenter</name>
<url>https://jcenter.bintray.com/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-commons</artifactId>
<version>${junitplatform.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>net.jqwik</groupId>
<artifactId>jqwik</artifactId>
<version>${jqwik.version}</version>
<scope>test</scope>
</dependency><!--
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-migrationsupport</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-runner</artifactId>
<version>${junitplatform.version}</version>
<scope>test</scope>
</dependency> -->
<!-- JavaFX (remove if not needed to speed up dep downloads)-->
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-base</artifactId>
<version>${javafx.version}</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>${javafx.version}</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-fxml</artifactId>
<version>${javafx.version}</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-graphics</artifactId>
<version>${javafx.version}</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-media</artifactId>
<version>${javafx.version}</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-swing</artifactId>
<version>${javafx.version}</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-web</artifactId>
<version>${javafx.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<!-- Run this app with exec:java -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<goals>
<goal>java</goal>
</goals>
</execution>
</executions>
<configuration>
<mainClass>${project.mainclass}</mainClass>
<arguments>
<argument>arg1</argument>
<argument>arg2</argument>
</arguments>
</configuration>
</plugin>
<!-- Make the packaged jar executable -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<!-- DO NOT include log4j.properties file in your Jar -->
<excludes>
<exclude>**/log4j.properties</exclude>
</excludes>
<archive>
<manifest>
<!-- Jar file entry point -->
<mainClass>${project.mainclass}</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<!-- JDK source/target versions -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<compilerArgument>-Xlint:unchecked</compilerArgument>
<source>${jdk.version}</source>
<target>${jdk.version}</target>
</configuration>
</plugin>
<!-- Also create a jar of the sources -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.2.1</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- JShell (jshell:run) -->
<plugin>
<groupId>com.github.johnpoth</groupId>
<artifactId>jshell-maven-plugin</artifactId>
<version>1.3</version>
</plugin>
<!-- UTU DbC Javadoc annotations -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.2.0</version>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
<configuration>
<tags>
<tag>
<name>toDo</name>
<placement>a</placement>
<head>To&nbsp;do:</head>
</tag>
<tag>
<name>classInvariant</name>
<placement>t</placement>
<head>Class&nbsp;invariant:</head>
</tag>
<tag>
<name>classInvariantProtected</name>
<placement>t</placement>
<head>Protected&nbsp;class&nbsp;invariant:</head>
</tag>
<tag>
<name>classInvariantPrivate</name>
<placement>t</placement>
<head>Private&nbsp;class&nbsp;invariant:</head>
</tag>
<tag>
<name>abstractionFunction</name>
<placement>t</placement>
<head>Abstraction&nbsp;function:</head>
</tag>
<tag>
<name>pre</name>
<placement>cm</placement>
<head>Precondition:</head>
</tag>
<tag>
<name>post</name>
<placement>cm</placement>
<head>Postcondition:</head>
</tag>
<tag>
<name>postProtected</name>
<placement>cm</placement>
<head>Protected&nbsp;postcondition:</head>
</tag>
<tag>
<name>postPrivate</name>
<placement>cm</placement>
<head>Private&nbsp;postcondition:</head>
</tag>
<tag>
<name>time</name>
<placement>cmf</placement>
<head>Time&nbsp;complexity:</head>
</tag>
<tag>
<name>space</name>
<placement>cmf</placement>
<head>Space&nbsp;complexity:</head>
</tag>
<tag>
<name>correspondence</name>
<placement>a</placement>
<head>Correspondence:</head>
</tag>
<tag>
<name>download</name>
<placement>a</placement>
<head>Download:</head>
</tag>
</tags>
<show>protected</show>
<failOnError>false</failOnError>
<sourceFileExcludes>
<sourceFileExclude>**/module-info.java</sourceFileExclude>
</sourceFileExcludes>
</configuration>
</plugin>
<!-- JUnit & JQwik test integration -->
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M5</version>
</plugin>
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<version>3.0.0-M5</version>
</plugin>
</plugins>
</build>
</project>
public/favicon-32x32.png

1.61 KiB

<!DOCTYPE html>
<html>
<head>
<meta charSet="utf-8"/>
<link rel="icon" href="favicon-32x32.png" type="image/png"/>
<link rel="stylesheet" href="style.css">
<title>UTU / OOJ project report</title>
</head>
<body>
<div class="layout">
<div class="layout-container">
<header>
<div class="header">
<div class="header-content">
<a href="https://www.utu.fi">
<img class="sitebranding" alt="University of Turku" src="utulogo.png" />
</a>
<nav>
<ul>
<li class="active"><a href="/">Report</a></li>
</ul>
</nav>
</div>
</div>
</header>
<div class="main-content">
<h2>Project report</h2>
</div>
<div class="main-content">
<iframe src="report.txt" title="Build"></iframe>
</div>
<div class="main-content">
<iframe src="surefire-report.html" title="Surefire report"></iframe>
</div>
<footer>
<div class="footer">
<div class="footer-content">
<a href="https://www.utu.fi">
<img class="sitebranding" alt="University of Turku" src="utulogow.png"/>
</a>
<nav>
<ul>
<li>© 2019 <a href="https://soft.utu.fi/">Software engineering</a></li>
</ul>
</nav>
</div>
</div>
</footer>
</div>
</div>
</body>
</html>
@font-face {
font-family: "brother-1816";
src: url("https://use.typekit.net/af/e4f93d/00000000000000003b9b03cb/27/l?primer=8c6cdece1802ac03951c30593622b1b6185a07621a4f8858e37fe29080c384e2&fvd=i3&v=3") format("woff2"), url("https://use.typekit.net/af/e4f93d/00000000000000003b9b03cb/27/d?primer=8c6cdece1802ac03951c30593622b1b6185a07621a4f8858e37fe29080c384e2&fvd=i3&v=3") format("woff"), url("https://use.typekit.net/af/e4f93d/00000000000000003b9b03cb/27/a?primer=8c6cdece1802ac03951c30593622b1b6185a07621a4f8858e37fe29080c384e2&fvd=i3&v=3") format("opentype");
font-style: italic;
font-weight: 300;
font-display: auto;
}
@font-face {
font-family: "brother-1816";
src: url("https://use.typekit.net/af/deeb73/00000000000000003b9b03d0/27/l?primer=8c6cdece1802ac03951c30593622b1b6185a07621a4f8858e37fe29080c384e2&fvd=n5&v=3") format("woff2"), url("https://use.typekit.net/af/deeb73/00000000000000003b9b03d0/27/d?primer=8c6cdece1802ac03951c30593622b1b6185a07621a4f8858e37fe29080c384e2&fvd=n5&v=3") format("woff"), url("https://use.typekit.net/af/deeb73/00000000000000003b9b03d0/27/a?primer=8c6cdece1802ac03951c30593622b1b6185a07621a4f8858e37fe29080c384e2&fvd=n5&v=3") format("opentype");
font-style: normal;
font-weight: 500;
font-display: auto;
}
@font-face {
font-family: "brother-1816";
src: url("https://use.typekit.net/af/f5cf85/00000000000000003b9b03d2/27/l?primer=8c6cdece1802ac03951c30593622b1b6185a07621a4f8858e37fe29080c384e2&fvd=n7&v=3") format("woff2"), url("https://use.typekit.net/af/f5cf85/00000000000000003b9b03d2/27/d?primer=8c6cdece1802ac03951c30593622b1b6185a07621a4f8858e37fe29080c384e2&fvd=n7&v=3") format("woff"), url("https://use.typekit.net/af/f5cf85/00000000000000003b9b03d2/27/a?primer=8c6cdece1802ac03951c30593622b1b6185a07621a4f8858e37fe29080c384e2&fvd=n7&v=3") format("opentype");
font-style: normal;
font-weight: 700;
font-display: auto;
}
:root {
--pageWidth: 894px;
--backgroundColor: #fff;
--colorUtu1: #8b5dcb;
--colorUtu2: #78c8d2;
--colorUtu3: #f8485e;
--colorUtu4: #adcb00;
--colorUtu5: #000;
--colorUtu6: #868686;
--colorUtu7: #b1b1b0;
--colorUtu8: #d9d9d9;
--colorUtu9: #ffffff;
}
html {
font: 120% brother-1816, sans-serif;
box-sizing: border-box;
overflow-y: scroll;
-ms-text-size-adjust: 100%;
-webkit-text-size-adjust: 100%;
margin: 0;
padding: 0;
}
.layout {
background-color: var(--colorUtu8);
padding-right:0;
padding-left:0;
}
.layout-container {
background-color: var(--colorUtu9);
margin: 0 auto;
max-width:100rem;
}
.main-content {
display: flex;
align-items: flex-start;
align-content: space-between;
flex-wrap: wrap;
}
.toc-container {
margin-left: -5em;
margin-right: 1em;
width: 20%;
flex-grow: 1;
position: sticky;
display: block;
border-radius: 15px;
padding: 0.5em;
padding-top: 2em;
padding-bottom: 2em;
background: var(--colorUtu8);
border: 2px solid var(--colorUtu5);
}
.toc-container a {
color: var(--colorUtu5);
text-decoration: none;
}
.toc-container a:hover {
color: var(--colorUtu5);
text-decoration: underline solid var(--colorUtu5);
}
.header a:hover {
color: var(--colorUtu5);
text-decoration: underline solid var(--colorUtu5);
}
.main-header {
}
.main-lecture {
max-width: 80%;
}
.main-content {
flex-grow: 1;
}
@media (max-width:60em) {
.main-content {
display: block;
}
.main-lecture {
max-width: 100%;
}
.toc-container {
margin: 1em auto 1em auto;
padding: 0.5em;
width: 90%;
}
}
.lecture-grid-container {
display: grid;
grid-template-columns: auto auto;
border-top: 1px solid var(--colorUtu5);
border-bottom: 1px solid var(--colorUtu5);
padding: 2px;
align-items: center;
width: 100%;
}
.lecture-grid-container2 {
display: grid;
grid-template-columns: auto;
border-top: 1px solid var(--colorUtu5);
border-bottom: 1px solid var(--colorUtu5);
padding: 2px;
align-items: center;
width: 100%;
}
.lecture-grid-item {
border: 0;
padding: 10px;
font-size: 16px;
text-align: center;
max-width: 100%;
margin: 0 auto;
}
.controls-right button {
margin-left: 0.5em;
}
.controls-left button {
margin-right: 0.5em;
}
.lecture-grid-item2:first-child {
border-right: 2px solid var(--colorUtu8);
}
@media (min-width:50em) {
.layout {
padding-right: 2em;
padding-left: 2em;
}
.main-content {
padding-right: 2.5em;
padding-left: 2.5em;
padding-bottom: 2.5em;
}
}
@media (min-width:60em) {
.layout {
padding-right: 3em;
padding-left: 3em;
}
.main-content {
padding-right: 3.25em;
padding-left: 3.25em;
padding-bottom: 3.25em;
}
}
@media (min-width:80em) {
.layout {
padding-right: 4em;
padding-left: 4em;
}
.main-content {
padding-right: 4em;
padding-left: 4em;
padding-bottom: 4em;
}
}
article,
aside,
details,
figcaption,
figure,
footer,
header,
main,
menu,
nav,
section,
summary {
display: block;
}
audio,
canvas,
progress,
video {
display: inline-block;
}
audio:not([controls]) {
display: none;
height: 0;
}
progress {
vertical-align: baseline;
}
[hidden],
template {
display: none;
}
a {
background-color: transparent;
-webkit-text-decoration-skip: objects;
}
a:active,
a:hover {
outline-width: 0;
}
abbr[title] {
border-bottom: none;
text-decoration: underline;
text-decoration: underline dotted;
}
b,
strong {
font-weight: inherit;
font-weight: bolder;
}
dfn {
font-style: italic;
}
h1 {
font-size: 2em;
margin: 0.67em 0;
}
mark {
background-color: #ff0;
color: #000;
}
small {
font-size: 80%;
}
sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sub {
bottom: -0.25em;
}
sup {
top: -0.5em;
}
img {
border-style: none;
}
svg:not(:root) {
overflow: hidden;
}
code,
kbd,
pre,
samp {
font-family: monospace, monospace;
font-size: 1em;
}
figure {
margin: 1em 40px;
}
hr {
box-sizing: content-box;
height: 0;
overflow: visible;
}
button,
input,
optgroup,
select,
textarea {
font: inherit;
margin: 0;
}
optgroup {
font-weight: 700;
}
button,
input {
overflow: visible;
}
button,
select {
text-transform: none;
}
[type="reset"],
[type="submit"],
button,
html [type="button"] {
-webkit-appearance: button;
}
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner,
button::-moz-focus-inner {
border-style: none;
padding: 0;
}
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring,
button:-moz-focusring {
outline: 1px dotted ButtonText;
}
fieldset {
border: 1px solid silver;
margin: 0 2px;
padding: 0.35em 0.625em 0.75em;
}
legend {
box-sizing: border-box;
color: inherit;
display: table;
max-width: 100%;
padding: 0;
white-space: normal;
}
textarea {
overflow: auto;
}
[type="checkbox"],
[type="radio"] {
box-sizing: border-box;
padding: 0;
}
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
height: auto;
}
[type="search"] {
-webkit-appearance: textfield;
outline-offset: -2px;
}
[type="search"]::-webkit-search-cancel-button,
[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
::-webkit-input-placeholder {
color: inherit;
opacity: 0.54;
}
::-webkit-file-upload-button {
-webkit-appearance: button;
font: inherit;
}
* {
box-sizing: inherit;
}
*:before {
box-sizing: inherit;
}
*:after {
box-sizing: inherit;
}
body {
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
margin: 0;
padding: 0;
color: hsla(0, 0%, 0%, 0.8);
font-weight: normal;
word-wrap: break-word;
font-kerning: normal;
-moz-font-feature-settings: "kern", "liga", "clig", "calt";
-ms-font-feature-settings: "kern", "liga", "clig", "calt";
-webkit-font-feature-settings: "kern", "liga", "clig", "calt";
font-feature-settings: "kern", "liga", "clig", "calt";
}
img {
max-width: 100%;
margin-left: 0;
margin-right: 0;
margin-top: 0;
padding-bottom: 0;
padding-left: 0;
padding-right: 0;
padding-top: 0;
margin-bottom: 1.45rem;
}
h1 {
margin-left: 0;
margin-right: 0;
margin-top: 0;
padding-bottom: 0;
padding-left: 0;
padding-right: 0;
padding-top: 0;
margin-bottom: 1.45rem;
color: inherit;
font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen,
Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;
font-weight: bold;
text-rendering: optimizeLegibility;
font-size: 2.25rem;
line-height: 1.1;
}
h2 {
margin-left: 0;
margin-right: 0;
margin-top: 0;
padding-bottom: 0;
padding-left: 0;
padding-right: 0;
padding-top: 0;
margin-bottom: 1.45rem;
color: inherit;
font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen,
Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;
font-weight: bold;
text-rendering: optimizeLegibility;
font-size: 1.62671rem;
line-height: 1.1;
}
h3 {
margin-left: 0;
margin-right: 0;
margin-top: 0;
padding-bottom: 0;
padding-left: 0;
padding-right: 0;
padding-top: 0;
margin-bottom: 1.45rem;
color: inherit;
font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen,
Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;
font-weight: bold;
text-rendering: optimizeLegibility;
font-size: 1.38316rem;
line-height: 1.1;
}
h4 {
margin-left: 0;
margin-right: 0;
margin-top: 0;
padding-bottom: 0;
padding-left: 0;
padding-right: 0;
padding-top: 0;
margin-bottom: 1.45rem;
color: inherit;
font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen,
Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;
font-weight: bold;
text-rendering: optimizeLegibility;
font-size: 1rem;
line-height: 1.1;
}
h5 {
margin-left: 0;
margin-right: 0;
margin-top: 0;
padding-bottom: 0;
padding-left: 0;
padding-right: 0;
padding-top: 0;
margin-bottom: 1.45rem;
color: inherit;
font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen,
Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;
font-weight: bold;
text-rendering: optimizeLegibility;
font-size: 0.85028rem;
line-height: 1.1;
}
h6 {
margin-left: 0;
margin-right: 0;
margin-top: 0;
padding-bottom: 0;
padding-left: 0;
padding-right: 0;
padding-top: 0;
margin-bottom: 1.45rem;
color: inherit;
font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen,
Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;
font-weight: bold;
text-rendering: optimizeLegibility;
font-size: 0.78405rem;
line-height: 1.1;
}
hgroup {
margin-left: 0;
margin-right: 0;
margin-top: 0;
padding-bottom: 0;
padding-left: 0;
padding-right: 0;
padding-top: 0;
margin-bottom: 1.45rem;
}
ul {
margin-left: 1.45rem;
margin-right: 0;
margin-top: 0;
padding-bottom: 0;
padding-left: 0;
padding-right: 0;
padding-top: 0;
margin-bottom: 1.45rem;
list-style-position: outside;
list-style-image: none;
}
ol {
margin-left: 1.45rem;
margin-right: 0;
margin-top: 0;
padding-bottom: 0;
padding-left: 0;
padding-right: 0;
padding-top: 0;
margin-bottom: 1.45rem;
list-style-position: outside;
list-style-image: none;
}
dl {
margin-left: 0;
margin-right: 0;
margin-top: 0;
padding-bottom: 0;
padding-left: 0;
padding-right: 0;
padding-top: 0;
margin-bottom: 1.45rem;
}
dd {
margin-left: 0;
margin-right: 0;
margin-top: 0;
padding-bottom: 0;
padding-left: 0;
padding-right: 0;
padding-top: 0;
margin-bottom: 1.45rem;
}
p {
margin-left: 0;
margin-right: 0;
margin-top: 0;
padding-bottom: 0;
padding-left: 0;
padding-right: 0;
padding-top: 0;
margin-bottom: 1.45rem;
}
figure {
margin-left: 0;
margin-right: 0;
margin-top: 0;
padding-bottom: 0;
padding-left: 0;
padding-right: 0;
padding-top: 0;
margin-bottom: 1.45rem;
}
pre {
margin-left: 0;
margin-right: 0;
margin-top: 0;
margin-bottom: 1.45rem;
font-size: 0.85rem;
line-height: 1.42;
background: hsla(0, 0%, 0%, 0.04);
border-radius: 3px;
overflow: auto;
word-wrap: normal;
padding: 1.45rem;
}
table {
margin-left: 0;
margin-right: 0;
margin-top: 0;
padding-bottom: 0;
padding-left: 0;
padding-right: 0;
padding-top: 0;
margin-bottom: 1.45rem;
font-size: 1rem;
line-height: 1.45rem;
border-collapse: collapse;
width: 100%;
}
fieldset {
margin-left: 0;
margin-right: 0;
margin-top: 0;
padding-bottom: 0;
padding-left: 0;
padding-right: 0;
padding-top: 0;
margin-bottom: 1.45rem;
}
blockquote {
margin-left: 1.45rem;
margin-right: 1.45rem;
margin-top: 0;
padding-bottom: 0;
padding-left: 0;
padding-right: 0;
padding-top: 0;
margin-bottom: 1.45rem;
}
form {
margin-left: 0;
margin-right: 0;
margin-top: 0;
padding-bottom: 0;
padding-left: 0;
padding-right: 0;
padding-top: 0;
margin-bottom: 1.45rem;
}
noscript {
margin-left: 0;
margin-right: 0;
margin-top: 0;
padding-bottom: 0;
padding-left: 0;
padding-right: 0;
padding-top: 0;
margin-bottom: 1.45rem;
}
iframe {
margin-left: 0;
margin-right: 0;
margin-top: 0;
padding-bottom: 0;
padding-left: 0;
padding-right: 0;
padding-top: 0;
margin-bottom: 1.45rem;
width: 100%;
min-height: 90vh;
}
hr {
margin-left: 0;
margin-right: 0;
margin-top: 0;
padding-bottom: 0;
padding-left: 0;
padding-right: 0;
padding-top: 0;
margin-bottom: calc(1.45rem - 1px);
background: hsla(0, 0%, 0%, 0.2);
border: none;
height: 1px;
}
address {
margin-left: 0;
margin-right: 0;
margin-top: 0;
padding-bottom: 0;
padding-left: 0;
padding-right: 0;
padding-top: 0;
margin-bottom: 1.45rem;
}
b {
font-weight: bold;
}
strong {
font-weight: bold;
}
dt {
font-weight: bold;
}
th {
font-weight: bold;
}
li {
margin-bottom: calc(1.45rem / 2);
}
ol li {
padding-left: 0;
}
ul li {
padding-left: 0;
}
li > ol {
margin-left: 1.45rem;
margin-bottom: calc(1.45rem / 2);
margin-top: calc(1.45rem / 2);
}
li > ul {
margin-left: 1.45rem;
margin-bottom: calc(1.45rem / 2);
margin-top: calc(1.45rem / 2);
}
blockquote *:last-child {
margin-bottom: 0;
}
li *:last-child {
margin-bottom: 0;
}
p *:last-child {
margin-bottom: 0;
}
li > p {
margin-bottom: calc(1.45rem / 2);
}
code {
font-size: 0.85rem;
line-height: 1.45rem;
}
kbd {
font-size: 0.85rem;
line-height: 1.45rem;
}
samp {
font-size: 0.85rem;
line-height: 1.45rem;
}
abbr {
border-bottom: 1px dotted hsla(0, 0%, 0%, 0.5);
cursor: help;
}
acronym {
border-bottom: 1px dotted hsla(0, 0%, 0%, 0.5);
cursor: help;
}
abbr[title] {
border-bottom: 1px dotted hsla(0, 0%, 0%, 0.5);
cursor: help;
text-decoration: none;
}
thead {
text-align: left;
}
td,
th {
text-align: left;
border-bottom: 1px solid hsla(0, 0%, 0%, 0.12);
font-feature-settings: "tnum";
-moz-font-feature-settings: "tnum";
-ms-font-feature-settings: "tnum";
-webkit-font-feature-settings: "tnum";
padding-left: 0.96667rem;
padding-right: 0.96667rem;
padding-top: 0.725rem;
padding-bottom: calc(0.725rem - 1px);
}
th:first-child,
td:first-child {
padding-left: 0;
}
th:last-child,
td:last-child {
padding-right: 0;
}
tt,
code {
background-color: hsla(0, 0%, 0%, 0.04);
border-radius: 3px;
font-family: "SFMono-Regular", Consolas, "Roboto Mono", "Droid Sans Mono",
"Liberation Mono", Menlo, Courier, monospace;
padding: 0;
padding-top: 0.2em;
padding-bottom: 0.2em;
}
pre code {
background: none;
line-height: 1.42;
}
code:before,
code:after,
tt:before,
tt:after {
letter-spacing: -0.2em;
content: " ";
}
pre code:before,
pre code:after,
pre tt:before,
pre tt:after {
content: "";
}
@media only screen and (max-width: 480px) {
html {
font-size: 100%;
}
}
header, footer {
padding-top: 0.6rem;
padding-bottom: 0.6rem;
}
footer {
background: var(--colorUtu5);
color: var(--colorUtu9);
}
.header, .footer {
font-size: 87.4975%;
padding-left: 3.25rem;
padding-bottom: 0.875rem;
padding-right: 3.25rem;
padding-top: 0.875rem;
}
.header-content {
width: 100%;
border-bottom: 1px solid var(--colorUtu8);
display: flex;
flex-wrap: wrap;
align-items: flex-end;
justify-content: space-between;
}
.footer-content {
width: 100%;
display: flex;
flex-wrap: wrap;
align-items: flex-start;
justify-content: space-between;
}
.header nav, .footer nav {
display: block;
flex: 1 0 auto;
padding-bottom: 0.5em;
}
.footer nav {
display: block;
flex: 1 0 auto;
padding-top: 0.5em;
padding-bottom: 0;
}
.header ul, .footer ul {
float: right;
margin: 0 -0.5em;
padding: 0;
display: flex;
}
.header li, .footer li {
list-style: none;
padding: 0;
margin: 0 1em;
text-transform: uppercase;
font-weight: bold;
}
.header a {
color: var(--colorUtu5);
text-decoration: none;
}
.footer a {
color: var(--colorUtu9);
text-decoration: none;
}
.header a:hover {
color: var(--colorUtu5);
text-decoration: underline solid var(--colorUtu5);
}
.header .active {
color: var(--colorUtu5);
text-decoration: underline solid var(--colorUtu5);
}
.footer a:hover {
color: var(--colorUtu9);
text-decoration: underline solid var(--colorUtu9);
}
.sitebranding {
width: 14.040rem;
height: 3.967rem;
flex: 0 0 auto;
flex-shrink: 0;
margin: 0;
margin-bottom: 1em;
}
@media (min-width:50em) {
.header, .footer {
font-size: 91.665%;
padding-left: 3.1rem;
padding-bottom: 0.94rem;
padding-right: 3.1rem;
padding-top: 0.94rem;
}
.sitebranding {
width: 15.100rem;
height: 4.267rem;
}
}
@media (min-width:60em) {
.header, .footer {
font-size: 87.4975%;
padding-left: 4rem;
padding-bottom: 1.1rem;
padding-right: 4rem;
padding-top: 1.1rem;
}
.sitebranding {
width: 16.400rem;
height: 4.634rem;
}
}
@media (min-width:80em) {
.header, .footer {
font-size: 83.33%;
padding-left: 5rem;
padding-bottom: 1.25rem;
padding-right: 5rem;
padding-top: 1.25rem;
}
.sitebranding {
width: 17.700rem;
height: 5.002rem;
}
}
public/utulogo.png

13 KiB

public/utulogow.png

19.7 KiB

#!/bin/sh
find src > public/report.txt
mvn clean test 2>&1 >> public/report.txt
mvn surefire-report:report
cp target/site/surefire-report.html public/
package fi.utu.tech;
import java.util.List;
import java.util.Scanner;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;
interface neliöi {
int neliö(int x);
}
public class Main {
/**
* Main class.
* @param args Command line arguments
*/
public static void main(String[] args) throws Exception {
tehtA();
tehtB();
tehtC();
tehtD();
System.out.print("Neliöitävä luku: ");
var luku = new Scanner(System.in).nextInt();
tehtE(luku);
}
/**
*
* Teht a)
*
* @.pre true
* @.post list(FOREACH(System.out.print())
*/
public static void tehtA() {
var lista1 = List.of(1, 2, 3);
var lista2 = List.of(1, 2, 3);
var virta1 = lista1.stream();
var virta2 = lista2.stream();
var temp = Stream.concat(virta1, virta2);
var ans = temp.collect(Collectors.toList());
for (int i : ans) System.out.print(i);
System.out.print("\n" + ans);
}
/**
* Teht b)
*
* @.pre true
* @.post print(list(FOREACH:index * 2 && index != 4))
*/
public static void tehtB() {
var lista1 = List.of(1, 2, 3);
var lista2 = List.of(1, 2, 3);
var virta1 = lista1.stream();
var virta2 = lista2.stream();
var temp = Stream.concat(virta1, virta2);
var temp1 = temp.collect(Collectors.toList());
var ans = temp1.stream()
.map(i -> i*2)
.filter(i -> i!=4);
var lista = ans.collect(Collectors.toList());
System.out.println(lista);
}
/**
* Teht c)
*
* @.pre true
* @.post print(list: maxValue)
*/
public static void tehtC(){
var lista1 = List.of(1, 2, 3);
var lista2 = List.of(1, 2, 3);
var virta1 = lista1.stream();
var virta2 = lista2.stream();
var temp = Stream.concat(virta1, virta2);
var temp1 = temp.collect(Collectors.toList());
int max = temp1.stream()
.max(Integer::compareTo).get();
System.out.println(max);
}
/**
* Teht d)
*
* @.pre
* @.post print(list(index) + "\n"))
*/
public static void tehtD(){
var lista1 = List.of(1, 2, 3);
var lista2 = List.of(1, 2, 3);
var virta1 = lista1.stream();
var virta2 = lista2.stream();
var temp = Stream.concat(virta1, virta2);
var temp1 = temp.collect(Collectors.toList());
temp1.forEach(System.out::println);
}
/**
*
* @param luku
* @.pre luku!=null
* @.post true
*
* @.pre param > 0
* @.post print(param*param) (squared)
*
*
* @throws Exception
*/
public static void tehtE(int luku)throws Exception{
tehtE e = new tehtE();
neliöi n = (int x) -> x*x;
anon a = new anon();
Function<Integer, Integer> neliöijä = x -> x*x;
int ans = n.neliö(luku);
//ilmeisesti teht f??
try {
System.out.println(e.neliöi(luku));
} catch (Exception exception){
throw new Exception("ei skulaa nyt koska " + exception.getMessage());
}
try{
System.out.println(luku + " * " + luku + " = " + neliöijä.apply(luku));
} catch (Exception exception){
throw new Exception("Homma ei rokkaa koska " + exception.getMessage());
}
try{
System.out.println(ans);
}catch (Exception exception){
throw new Exception("Ei ihan menny putkeen koska " + exception.getMessage());
}
try{
System.out.println(a.neliöi(luku));
}catch (Exception exception){
throw new Exception("Ei toimi koska " + exception.getMessage());
}
}
}
/**
* Anonymous class in main-class to return square of user input value
*
* @.pre luku != null
* @.post return luku * luku
*
*/
class anon implements neliöijä{
public int neliöi(int luku){
Function<Integer, Integer> neliöi = x -> luku*luku;
int ans = neliöi.apply(luku);
return ans;
}
}
package fi.utu.tech;
import java.util.function.Function;
/**
* interface to return method "neliöi" to return a squared number
*/
public interface neliöijä {
Function<Integer, Integer> neliöi = luku -> luku*luku;
}
package fi.utu.tech;
public class tehtE implements neliöijä{
public tehtE(){
}
/**
* @.pre luku != null
* @.post true
*
*
* @param luku
* @return luku * luku
*
* implements interface -method neliöi from neliöijä to make squaring numbers more readable
* w/out using Math.sqrt()
*/
public int neliöi(int luku){
int ans = neliöi.apply(luku);
return ans;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment