Skip to content

1014 #27

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open

1014 #27

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions src/main/java/br/masmangan/beecrowd/bee1014/FuelConsumption.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package br.masmangan.beecrowd.bee1014;

public class FuelConsumption {
private double fuel;
private double distance;

public void setFuel(double fuel){
this.fuel = fuel;
}

public void setDistance(double distance){
this.distance = distance;
}

public double getConsumption() {
return this.distance/this.fuel;
}
}
18 changes: 18 additions & 0 deletions src/main/java/br/masmangan/beecrowd/bee1014/Main.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import java.util.Scanner;


public class Main {

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
double x = sc.nextDouble();
double y = sc.nextDouble();
FuelConsumption fuelConsumption = new FuelConsumption();
fuelConsumption.setDistance(x);
fuelConsumption.setFuel(y);
double k = fuelConsumption.getConsumption();
System.out.println(String.format("%.3f km/l", k));

}

}
52 changes: 52 additions & 0 deletions src/test/java/br/masmangan/beecrowd/bee1014/Bee1014steps.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
package br.masmangan.beecrowd.bee1014;

import io.cucumber.java.en.Given;
import io.cucumber.java.en.Then;
import io.cucumber.java.en.When;

import java.io.*;
import java.nio.charset.StandardCharsets;

import static org.junit.Assert.assertEquals;

public class Bee1014steps {

private String input;
private String actual;

@Given("input is")
public void input_is(String input) {
this.input = input;
}

@When("program runs")
public void program_runs() throws IOException {
InputStream inputStream = new ByteArrayInputStream(input.getBytes(StandardCharsets.UTF_8));

ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();

PrintStream outputStream = new PrintStream(byteArrayOutputStream);

PrintStream previousOut = System.out;
InputStream previousIn = System.in;

System.setIn(inputStream);
System.setOut(outputStream);

Main.main(null);

actual = byteArrayOutputStream.toString();

inputStream.close();
outputStream.close();

System.setOut(previousOut);
System.setIn(previousIn);
}

@Then("output should be")
public void output_should_be(String expected) {
assertEquals(expected, actual);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package br.masmangan.beecrowd.bee1014;

import io.cucumber.java.en.Given;
import io.cucumber.java.en.Then;
import io.cucumber.java.en.When;

import static org.junit.Assert.assertEquals;

public class FuelConsumptionSteps {

private final FuelConsumption product = new FuelConsumption();
private double consumption;

@Given("Distance is {double}")
public void first_number_is(double a) {
product.setDistance(a);
}
@Given("Fuel size is {double}")
public void second_number_is(double b) {
product.setFuel(b);
}

@When("Consumption is calculated")
public void different_is_calculated() {
consumption = product.getConsumption();
}
@Then("result should be {double}")
public void result_should_be(double expected) {
assertEquals(expected, consumption);
}
}
31 changes: 31 additions & 0 deletions src/test/java/br/masmangan/beecrowd/bee1014/RunCucumberTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
/*
* Copyright (C) 2021, Gherkin By Example and/or its contributors. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This software is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This code is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this code. If not, see <https://www.gnu.org/licenses/>.
*
* Please visit Gherkin By Example at https://github.com/gherkin-by-example
* if you need additional information or have any questions.
*/
package br.masmangan.beecrowd.bee1014;

import io.cucumber.junit.Cucumber;
import io.cucumber.junit.CucumberOptions;
import org.junit.runner.RunWith;

@RunWith(Cucumber.class)
@CucumberOptions(plugin = {"pretty"})
public class RunCucumberTest {

}
47 changes: 47 additions & 0 deletions src/test/resources/br/masmangan/beecrowd/bee1014/bee1014.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
@system
Feature: Bee1014 CLI

Narrative:

In order to avoid run out of gas
As a begginer truck driver
I want to be told the consumption of my truck based on the kilometers<km> it run nd the litters<l> I filled it

Scenario: Run program with input 500 and 35 (km,l)

Given input is
"""
500
35
"""
When program runs
Then output should be
"""
X = 14.286
"""

Scenario: Run program with input 4554 and 464.4 (km,l)

Given input is
"""
4554
464.6
"""
When program runs
Then output should be
"""
X = 9.802
"""

Scenario: Run program with input 500 and 45 (km,l)

Given input is
"""
500
45
"""
When program runs
Then output should be
"""
X = 11.111
"""
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
#
# Copyright (C) 2021, Gherkin By Example and/or its contributors. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This software is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This code is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this code. If not, see <https://www.gnu.org/licenses/>.
#
# Please visit Gherkin By Example at https://github.com/gherkin-by-example
# if you need additional information or have any questions.
@domain
Feature: Consumption

Narrative:

In order to know the consumption of a car
As a math novice
I want to be told the consumption based on fuel size and the distance reached

Scenario Outline: calculate consumption based on fuel size and distance reached

Given fuel size is <fuel>
And distance is <distance>
When Consumption is calculated
Then result should be <consumption>

Examples:
| fuel | distance | consumption |
| 35 | 500 | 14.286 |
| 464.6 | 4554 | 9.802 |
| 45 | 500 | 11.111 |