| TestRBTreeMap |

    1   /*
    2    *  TestRBTreeMap.java
    3    *
    4    *  Copyright (c) 1998-2001, The University of Sheffield.
    5    *
    6    *  This file is part of GATE (see http://gate.ac.uk/), and is free
    7    *  software, licenced under the GNU Library General Public License,
    8    *  Version 2, June 1991 (in the distribution as file licence.html,
    9    *  and also available at http://gate.ac.uk/gate/licence.html).
    10   *
    11   *  Valentin Tablan, 09/02/2000
    12   *
    13   *  $Id: TestRBTreeMap.java,v 1.5 2000/11/08 16:35:11 hamish Exp $
    14   */
    15
    16  package gate.util;
    17
    18  import junit.framework.*;
    19
    20  /** Tests for the RBTreeMap class
    21    */
    22  public class TestRBTreeMap extends TestCase
    23  {
    24    /** Debug flag */
    25    private static final boolean DEBUG = false;
    26
    27    /** Construction */
    28    public TestRBTreeMap(String name) { super(name); }
    29
    30    /** Create a map  with sparse values as keys */
    31    public void setUp() {
    32      myTree=new RBTreeMap();
    33      myTree.put(new Long(10),"Ten");
    34      myTree.put(new Long(20),"Twenty");
    35      myTree.put(new Long(30),"Thirty");
    36      myTree.put(new Long(40),"Forty");
    37      myTree.put(new Long(50),"Fifty");
    38    } // setUp
    39
    40    /** A test test */
    41    public void testExact() {
    42      Object result;
    43      Long key;
    44      String expected;
    45
    46      //try the first entry
    47      key=new Long(10);
    48      expected="Ten";
    49      result=myTree.get(key);
    50      assertEquals(expected,result);
    51
    52      //try some entry
    53      key=new Long(30);
    54      expected="Thirty";
    55      result=myTree.get(key);
    56      assertEquals(expected,result);
    57
    58      //try the last entry
    59      key=new Long(50);
    60      expected="Fifty";
    61      result=myTree.get(key);
    62      assertEquals(expected,result);
    63
    64      //try the last entry
    65      key=new Long(15);
    66      result=myTree.get(key);
    67      assertNull(result);
    68
    69    } // testExact
    70
    71    public void testClosestMatch(){
    72      Object[] result;
    73      Long key;
    74      Object[] expected;
    75
    76      //try a match
    77      key=new Long(10);
    78      expected=new Object[]{"Ten","Ten"};
    79      result=myTree.getClosestMatch(key);
    80      assertEquals("TestCM 1",expected[0],result[0]);
    81      assertEquals("TestCM 2",expected[1],result[1]);
    82
    83      //try glb=null
    84      key=new Long(5);
    85      expected=new Object[]{null,"Ten"};
    86      result=myTree.getClosestMatch(key);
    87      assertNull("TestCM 3",result[0]);
    88      assertEquals("TestCM 4",expected[1],result[1]);
    89
    90      //the normal case
    91      key=new Long(15);
    92      expected=new Object[]{"Ten","Twenty"};
    93      result=myTree.getClosestMatch(key);
    94      assertEquals("TestCM 5",expected[0],result[0]);
    95      assertEquals("TestCM 6",expected[1],result[1]);
    96
    97      //try lub=null
    98      key=new Long(55);
    99      expected=new Object[]{"Fifty",null};
    100     result=myTree.getClosestMatch(key);
    101     assertEquals("TestCM 7",expected[0],result[0]);
    102     assertNull("TestCM 8",result[1]);
    103
    104     //empty the tree
    105     myTree=new RBTreeMap();
    106
    107     //try glb=lub=null
    108     key=new Long(15);
    109     expected=new Object[]{null,null};
    110     result=myTree.getClosestMatch(key);
    111     assertNull("TestCM 9",result[0]);
    112     assertNull("TestCM 10",result[1]);
    113   }
    114
    115   public void testGetNextOf(){
    116     Object result;
    117     Long key;
    118     String expected;
    119
    120     //try the first entry
    121     key=new Long(5);
    122     expected="Ten";
    123     result=myTree.getNextOf(key);
    124     assertEquals(expected,result);
    125
    126     //try some entry
    127     key=new Long(20);
    128     expected="Twenty";
    129     result=myTree.getNextOf(key);
    130     assertEquals(expected,result);
    131
    132     //try the "next" case
    133     key=new Long(15);
    134     expected="Twenty";
    135     result=myTree.getNextOf(key);
    136     assertEquals(expected,result);
    137
    138     //try the last case
    139     key=new Long(55);
    140     result=myTree.getNextOf(key);
    141     assertNull(result);
    142
    143     //empty the tree
    144     myTree=new RBTreeMap();
    145     key=new Long(15);
    146     result=myTree.getNextOf(key);
    147     assertNull(result);
    148   }
    149
    150
    151   /** Test suite routine for the test runner */
    152   public static Test suite() {
    153     return new TestSuite(TestRBTreeMap.class);
    154   } // suite
    155
    156
    157   private RBTreeMap myTree;
    158
    159 } // class TestRBTreeMap
    160

| TestRBTreeMap |