<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">/**
 * Zaimplementuj klasy NapisLst i NapisTab implementujÄce interfejs Napis
 * 
 * public interface Napis {
 *  Napis(); -- tworzy pusty napis
 *	int dlugosc(); -- podaje dĹugoĹÄ napisy
 *	char dajZnak(int i); -- podaje znak na i-tej pozycji (numerujemy od 0)
 *	void ustawZnak(int i, char zn); -- zmienia znak na i-tej pozycji
 * 	void doklejZnak(char zn); -- dodaje nowy znak na koĹcu napisu
 * 	void doklejNapis(Napis n); -- dodaje treĹÄ podanego napisu (na koĹcu) 
 * 	void zrobMiejsce(int ile); -- rezerwuje miejsce na przechowywanie napisĂłw dĹugoĹci co najmniej ile
 * 	@Override
 * 	String toString(); -- podaje treĹÄ napis jako typ String
 * }
 */
import static org.junit.Assert.*;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;


public class NapisyTest {

    @Before
    public void setUp() throws Exception {}

    @After
    public void tearDown() throws Exception {}

    @Test
    public void test_tab() {
        testuj_napis(new NapisTab());
    }

    @Test
    public void test_lst() {
        testuj_napis(new NapisLst());
    }

    @Test
    public void test_doklejNapis() {
        Napis n1 = new NapisTab();
        n1.zrobMiejsce(2);
        doklejString(n1, "ala");
        Napis n2 = new NapisLst();
        doklejString(n2, "mapsa");
        n1.doklejNapis(n2);
        assertEquals(n1.dlugosc(), 8);
        assertEquals(n1.toString(), "alamapsa");
    }


    private void doklejString(Napis n, String s) {
        for(int i=0;i&lt;s.length();i++) {
            n.doklejZnak(s.charAt(i));
        }
    }


    private void testuj_napis(Napis n) {
        assertEquals(n.dlugosc(), 0);
        n.zrobMiejsce(10);
        n.doklejZnak('a');
        assertEquals(n.dajZnak(0), 'a');
        assertEquals(n.dlugosc(), 1);
        n.doklejZnak('b');
        assertEquals(n.dajZnak(0), 'a');
        assertEquals(n.dajZnak(1), 'b');
        assertEquals(n.dlugosc(), 2);
        for(int i=0;i&lt;100;i++) {
            n.doklejZnak('c');
        }
        assertEquals(n.dlugosc(), 102);
        doklejString(n, "abc");
        assertEquals(n.dlugosc(), 105);
    }

}
</pre></body></html>