ITI0011-2016:harjutus 18

Allikas: Kursused
Mine navigeerimisribale Mine otsikasti

Üldine

Kaitsmised: 09. - 13. mai 2016
Kaust gitis: EX18

Tähelepanu, selle ülesande puhul kirjutate te ise testid. Ülesande kaitsmisel vaadatakse teie testid üle. Automaatselt seda tulemust, mis tester annab, ei saa. Kui test nimega TestCorrectClass läbi ei lähe, ei saa ülesannet kaitsma tulla.

Ülesanne

Ülesandes peate kirjutama testid EX03 ülesande kohta.

Kuna testide testimine on suhteliselt keeruline, siis lõplik hinne selgub kaitsmisel. Kindlasti peab testeris töötama test nimega TestCorrectClass. See testib, et ega õige lahendus ei ebaõnnestu testidega.

Mall

Kasuta etteantud malli. Esitama pead vaid EX18Test.java (jäta etteantud kood muutmata, lisa oma testid).

EX18Interface.java (seda faili pole vaja üles panna): <source lang="java"> public interface EX18Interface {

   public String encrypt(String plainText, int rotation);
   /**
    * Finds the most frequently occurring letter in text.
    * @param text either plain or encrypted text.
    * @return the most frequently occurring letter in text.
    */
   public String findMostFrequentlyOccurringLetter(String text);
   /**
    * Removes the most prevalent letter from text.
    * @param text either plain or encrypted text.
    * @return text in which the most prevalent letter has been removed.
    */
   public String minimizeText(String text);
   /**
    * Given the initial rotation and the encrypted text, this method
    * decrypts said text.
    * @param cryptoText Encrypted text.
    * @param rotation How many letters to the right the alphabet was
    *                 shifted in order to encrypt text.
    * @return Decrypted text.
    */
   public String decrypt(String cryptoText, int rotation);

} </source>

EX18.java (seda faili pole vaja üles panna; võid kasutada EX03 lahendust): <source lang="java"> public class EX18 implements EX18Interface { } </source>

EX18Test.java <source lang="java"> import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized;

import java.util.Arrays; import java.util.Collection; import java.util.List;

import static org.junit.Assert.*;

@RunWith(Parameterized.class) public class EX18Test {

   public EX18Interface ex18Interface;
   static List<Object> manyEX18;
   @Parameterized.Parameters
   public static Collection<Object> instancesToTest() {
       if (manyEX18 == null) return Arrays.asList(new EX18());
       return manyEX18;
   }
   public EX18Test(EX18Interface ex18Interface) {
       this.ex18Interface = ex18Interface;
   }
   // example
   @Test
   public void TestEncrypt() {
       // test that decrypt("bcd", 1) returns "abc".
       assertEquals("abc", ex18Interface.decrypt("bcd", 1));
   }
   // write your tests here

} </source>