@@ -0,0 +1,2532 @@
+/* This file is part of SableCC ( http://sablecc.org ).%0A * %0A * See the NOTICE file distributed with this work for copyright information.%0A *%0A * Licensed under the Apache License, Version 2.0 (the %22License%22);%0A * you may not use this file except in compliance with the License.%0A * You may obtain a copy of the License at%0A *%0A *     http://www.apache.org/licenses/LICENSE-2.0%0A *%0A * Unless required by applicable law or agreed to in writing, software%0A * distributed under the License is distributed on an %22AS IS%22 BASIS,%0A * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.%0A * See the License for the specific language governing permissions and%0A * limitations under the License.%0A */%0A%0Apackage org.sablecc.sablecc.util;%0A%0Aimport static org.junit.Assert.assertEquals;%0Aimport static org.junit.Assert.assertFalse;%0Aimport static org.junit.Assert.assertTrue;%0Aimport static org.junit.Assert.fail;%0A%0Aimport org.junit.Before;%0Aimport org.junit.Test;%0Aimport org.sablecc.sablecc.exception.InternalException;%0A%0Apublic class WorkSetTest %7B%0A%0A    private WorkSet%3CInteger%3E workSet;%0A%0A    @Before%0A    public void setUp()%0A            throws Exception %7B%0A%0A        this.workSet = new WorkSet%3CInteger%3E();%0A    %7D%0A%0A    @Test%0A    public void testHasNext() %7B%0A%0A        // Case with empty workSet.%0A        assertFalse(%22the WorkSet is empty.%22, this.workSet.hasNext());%0A%0A        // Case with at least one element.%0A        this.workSet.add(5);%0A        this.workSet.add(10);%0A        assertTrue(%22the WorkSet contains one element.%22, this.workSet.hasNext());%0A    %7D%0A%0A    @Test%0A    public void testNext() %7B%0A%0A        // Adding elements%0A        this.workSet.add(100);%0A        this.workSet.add(25);%0A        this.workSet.add(50);%0A%0A        assertEquals(%22the first element should be 100%22, 100, this.workSet%0A                .next());%0A        assertEquals(%22the first element should be 25%22, 25, this.workSet.next());%0A        assertEquals(%22the first element should be 50%22, 50, this.workSet.next());%0A%0A        assertFalse(%22the WorkSet is empty.%22, this.workSet.hasNext());%0A%0A        // Case adding the same elements%0A        this.workSet.add(100);%0A        this.workSet.add(25);%0A        this.workSet.add(50);%0A%0A        assertFalse(%22the WorkSet should still be empty.%22, this.workSet%0A                .hasNext());%0A    %7D%0A%0A    @Test%0A    public void testAdd() %7B%0A%0A        // Case with null element.%0A        try %7B%0A            this.workSet.add(null);%0A            fail(%22element may not be null%22);%0A        %7D%0A        catch (InternalException e) %7B%0A            // Excepted%0A        %7D%0A%0A    %7D%0A%7D%0A

Add JUnit tests.