<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">/**
 * Zaimplementuj klasÄ BST&lt;T extends Comparable&lt;T&gt;&gt; implementujÄcÄ nastÄpujÄce operacje
 * 
 * public int size() 
 * public boolean exists(T value)
 * public void add(T value) {
 * public void remove(T value) {
 */
import static org.junit.Assert.*;

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

import java.util.Random;
import java.util.TreeSet;

public class bstTest {

    @Test
    public void testKonstuktury() {
        BST&lt;Integer&gt; t1 = new BST&lt;&gt;();
        BST&lt;String&gt; t2 = new BST&lt;&gt;();
        BST&lt;Double&gt; t3 = new BST&lt;&gt;();
    }

    @Test
    public void testAdd() {
        BST&lt;Integer&gt; t = new BST&lt;&gt;();
        t.add(2);
        t.add(1);
        t.add(3);
        assertEquals(t.size(), 3);
        t.add(1);
        assertEquals(t.size(), 3);
    }

    @Test
    public void testRemove() {
        BST&lt;Integer&gt; t = new BST&lt;&gt;();
        t.add(1);
        assertEquals(t.size(), 1);
        t.remove(1);
        assertEquals(t.size(), 0);
        t.remove(1);
        assertEquals(t.size(), 0);
    }

    @Test
    public void testExists() {
        BST&lt;Integer&gt; t = new BST&lt;&gt;();
        t.add(20);
        t.add(10);
        t.add(30);
        t.add(15);
        assertEquals(t.size(), 4);
        assertTrue(t.exists(10));
        assertTrue(t.exists(20));
        assertTrue(t.exists(30));
        assertTrue(t.exists(15));
        assertFalse(t.exists(16));
        assertFalse(t.exists(21));
        assertFalse(t.exists(35));
        assertFalse(t.exists(7));
    }

    @Test
    public void testRandom() {
        TreeSet&lt;Integer&gt; ts = new TreeSet&lt;Integer&gt;();
        BST&lt;Integer&gt; t = new BST&lt;&gt;();
        Random gen = new Random(42);
        for(int i=0;i&lt;1000;i++) {
            int v=gen.nextInt(100000);
            assertEquals(t.exists(v), ts.contains(v));
            t.add(v);
            ts.add(v);
            assertEquals(t.size(), ts.size());
        }
    }

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