ITI0011:harjutus 01
Üldine
Tähtaeg: 3. prakikum (08.-10. veebruar)
Ülesande testimiseks tuleb see laadida tudengi gitis kausta EX01. Faili/klassi nimi peab täpselt sama olema nagu all mallis. Ehk siis teil peaks giti tekkima fail: EX01/src/EX01.java (või EX01/EX01.java kui teete ilma IDE-ta).
- Kuidas testida: How to test, testfaili sisu #Testifail siit
Ülesanne
Mardil – ühel tagasihoidlikul kommipoe omanikul tuli mõte automatiseerida ettevõttes 2 väga tähtsat ülesannet. Ülesanneteks on klientide tervitamine ja kommide koguhinna arvutamine. Ülesannete realiseerimisel loodab Mart just Sinu abile!
Sinu ülesandeks on kirjutada sisu järgnevatele meetoditele:
1) meetod getCustomerGreeting(String customerName)
, kus parameetri customerName
väärtuseks on kliendi nimi ja meetod tagastab nimelise tervituse kujul: Hello {nimi}, nice to see you!
(kus {nimi} tuleb asendada etteantud lapse nimega).
Mart eksib pidevalt arvutustes, teeme ka selle tema eest ära
2) meetod getPrice(int amount, double price)
, kus parameetri amount
väärtuseks antakse täisarv, mis näitab mitu kommi osteti, ja parameetri price
väärtuseks on ühe kommi hind. Eeldame, et kõik ostetud kommid on sama hinnaga. Meetod peaks tagastama ostu kogusumma. Eeldame, et kommide arv on > 0 ja ühe kommi hind on mitte-negatiivne.
Meetodite sisendid on korrektsed - ei ole vaja teostada sisendikontrolli.
Mall
<source lang="java"> /**
* Home assignment 01. */
public class EX01 {
/** * Entry-point of the program. * This is here so you can test out your code * with running this program. * @param args Arguments from command-line. */ public static void main(String[] args) { System.out.println(getCustomerGreeting("Alice")); // => Hello Alice, nice to see you! System.out.println(getPriceOfCandies(5, 4.5)); // => 22.5 }
/** * Function that greets a customer by it's name * @param customerName The customer's name to greet * @return Greeting to the customer like Hello {customerName}, nice to see you! */ public static String getCustomerGreeting(String customerName) { //Add your code here return null; }
/** * Function that returns the total cost of candies * @param amount Amount of candies to buy * @param price Price of one candy * @return Total cost of the candies */ public static double getPriceOfCandies(int amount, double price) { //add your code here return Double.NaN; }
}
</source>
Testifail
<source lang="java"> import static org.junit.Assert.*;
import java.util.Random;
import org.junit.Test;
public class EX01Test {
EX01 testEX01 = new EX01(); private static final double DELTA = 1e-5; //For testing double values.
@Test public void testGreetings() { assertEquals("Hello Alice, nice to see you!", testEX01.getCustomerGreeting("Alice")); }
@Test public void testNumeralGreetings() { String name = "1234"; assertEquals("Hello " + name + ", nice to see you!", testEX01.getCustomerGreeting(name)); }
@Test public void testCandyPrice() { int one = 5; double two = 4.5; assertEquals(one*two, testEX01.getPriceOfCandies(one, two),DELTA); }
@Test public void testRandomCandyPrice() { double min = 1; double max = 50; Random rand = new Random(); int one = rand.nextInt(50)+1; double two = min + (max - min) * rand.nextDouble(); assertEquals(one*two, testEX01.getPriceOfCandies(one, two),DELTA); }
}
</source>