home | career | drupal | java | mac | mysql | perl | scala | uml | unix

Groovy example source code file (MethodRankHelperTest.java)

This example Groovy source code file (MethodRankHelperTest.java) is included in the DevDaily.com "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.

Java - Groovy tags/keywords

case, del, end, end, ins, mid, mid, object, safd, start, start, sub, tracase, tracase

The Groovy MethodRankHelperTest.java source code

 /*
 * Copyright 2003-2009 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.codehaus.groovy.runtime;
import junit.framework.TestCase;
/**
 * @author Hjalmar Ekengren
 */
public class MethodRankHelperTest extends TestCase{
    
    
    public void testDELDistance() throws Exception {
        assertEquals("Identical Strings", 0,  MethodRankHelper.delDistance("asdf","asdf"));
    
        //Simple tests
        assertEquals("Case Start", MethodRankHelper.DL_CASE, MethodRankHelper.delDistance("Asdf","asdf"));
        assertEquals("Case Mid", MethodRankHelper.DL_CASE, MethodRankHelper.delDistance("aSdf","asdf"));
        assertEquals("Case End", MethodRankHelper.DL_CASE, MethodRankHelper.delDistance("asdF","asdf"));
    
        assertEquals("Del Start", MethodRankHelper.DL_DELETE, MethodRankHelper.delDistance("sdf","asdf"));
        assertEquals("Del Mid", MethodRankHelper.DL_DELETE, MethodRankHelper.delDistance("adf","asdf"));
        assertEquals("Del End", MethodRankHelper.DL_DELETE, MethodRankHelper.delDistance("asd","asdf"));
    
        assertEquals("Ins Start", MethodRankHelper.DL_DELETE, MethodRankHelper.delDistance("aasdf","asdf"));
        assertEquals("Ins Mid", MethodRankHelper.DL_DELETE, MethodRankHelper.delDistance("assdf","asdf"));
        assertEquals("Ins End", MethodRankHelper.DL_DELETE, MethodRankHelper.delDistance("asdff","asdf"));
    
        assertEquals("Sub Start", MethodRankHelper.DL_SUBSTITUTION, MethodRankHelper.delDistance("Qsdf","asdf"));
        assertEquals("Sub Mid", MethodRankHelper.DL_SUBSTITUTION, MethodRankHelper.delDistance("aQdf","asdf"));
        assertEquals("Sub End", MethodRankHelper.DL_SUBSTITUTION, MethodRankHelper.delDistance("asdQ","asdf"));
    
        assertEquals("Tra Start", MethodRankHelper.DL_TRANSPOSITION, MethodRankHelper.delDistance("sadf","asdf"));
        assertEquals("Tra Mid", MethodRankHelper.DL_TRANSPOSITION, MethodRankHelper.delDistance("adsf","asdf"));
        assertEquals("Tra End", MethodRankHelper.DL_TRANSPOSITION, MethodRankHelper.delDistance("asfd","asdf"));
    
        //A transposition and a casemodification
        assertEquals("TraCase Start1", MethodRankHelper.DL_CASE + MethodRankHelper.DL_TRANSPOSITION, 
            MethodRankHelper.delDistance("sAdf","asdf"));
        assertEquals("TraCase Start2", MethodRankHelper.DL_CASE + MethodRankHelper.DL_TRANSPOSITION, 
            MethodRankHelper.delDistance("Sadf","asdf"));
        assertEquals("TraCase Mid1", MethodRankHelper.DL_CASE + MethodRankHelper.DL_TRANSPOSITION, 
            MethodRankHelper.delDistance("aDsf","asdf"));
        assertEquals("TraCase Mid2", MethodRankHelper.DL_CASE + MethodRankHelper.DL_TRANSPOSITION, 
            MethodRankHelper.delDistance("adSf","asdf"));
        assertEquals("TraCase End1", MethodRankHelper.DL_CASE + MethodRankHelper.DL_TRANSPOSITION, 
            MethodRankHelper.delDistance("asFd","asdf"));
        assertEquals("TraCase End2", MethodRankHelper.DL_CASE + MethodRankHelper.DL_TRANSPOSITION, 
            MethodRankHelper.delDistance("asfD","asdf"));
    
        assertEquals("2x TraCase1", (MethodRankHelper.DL_CASE + MethodRankHelper.DL_TRANSPOSITION)*2, 
            MethodRankHelper.delDistance("sAfD","asdf"));
        assertEquals("2x TraCase2", (MethodRankHelper.DL_CASE + MethodRankHelper.DL_TRANSPOSITION)*2, 
            MethodRankHelper.delDistance("SaFd","asdf"));
        
        assertEquals("2x TraCase + Case", (MethodRankHelper.DL_CASE + MethodRankHelper.DL_TRANSPOSITION)*2 + MethodRankHelper.DL_CASE, 
            MethodRankHelper.delDistance("SAfD","asdf"));
        assertEquals("2x TraCase + Case", (MethodRankHelper.DL_CASE + MethodRankHelper.DL_TRANSPOSITION)*2 + MethodRankHelper.DL_CASE, 
            MethodRankHelper.delDistance("SAFd","asdf"));
        assertEquals("2x TraCase + Case", (MethodRankHelper.DL_CASE + MethodRankHelper.DL_TRANSPOSITION)*2 + MethodRankHelper.DL_CASE, 
            MethodRankHelper.delDistance("sAFD","asdf"));
        assertEquals("2x TraCase + Case", (MethodRankHelper.DL_CASE + MethodRankHelper.DL_TRANSPOSITION)*2 + MethodRankHelper.DL_CASE, 
            MethodRankHelper.delDistance("SaFD","asdf"));
    }
    
    /**
     * turns a int array to a Integer array 
     */
    private Integer[] box(int[] ia){
        Integer[] ret = new Integer[ia.length];
        for(int i = 0; i < ia.length; i++){
            ret[i] = new Integer(ia[i]);
        }
        return ret;
    }

    public void testDamerauLevenshteinDistance(){
        //There HAS to be a better way to do this!
        assertEquals("Equals", 0, MethodRankHelper.damerauLevenshteinDistance(box(new int[]{0,1,2,3}), box(new int[]{0,1,2,3})));
    
        assertEquals("Del Start", MethodRankHelper.DL_DELETE, MethodRankHelper.damerauLevenshteinDistance(box(new int[] {0,1,2,3}), box(new int[]{1,2,3})));
        assertEquals("Del Mid", MethodRankHelper.DL_DELETE, MethodRankHelper.damerauLevenshteinDistance(box(new int[] {0,1,2,3}), box(new int[]{0,2,3})));
        assertEquals("Del End", MethodRankHelper.DL_DELETE, MethodRankHelper.damerauLevenshteinDistance(box(new int[] {0,1,2,3}), box(new int[]{0,1,2})));
        
        assertEquals("Sub Start", MethodRankHelper.DL_SUBSTITUTION, MethodRankHelper.damerauLevenshteinDistance(box(new int[] {0,1,2,3}), box(new int[]{4,1,2,3})));
        assertEquals("Sub Mid", MethodRankHelper.DL_SUBSTITUTION, MethodRankHelper.damerauLevenshteinDistance(box(new int[] {0,1,2,3}), box(new int[]{0,4,2,3})));
        assertEquals("Sub End", MethodRankHelper.DL_SUBSTITUTION, MethodRankHelper.damerauLevenshteinDistance(box(new int[] {0,1,2,3}), box(new int[]{0,1,2,4})));
    
        assertEquals("Ins Start", MethodRankHelper.DL_DELETE, MethodRankHelper.damerauLevenshteinDistance(box(new int[] {0,1,2,3}), box(new int[]{4,0,1,2,3})));
        assertEquals("Ins Mid", MethodRankHelper.DL_DELETE, MethodRankHelper.damerauLevenshteinDistance(box(new int[] {0,1,2,3}), box(new int[]{0,1,4,2,3})));
        assertEquals("Ins End", MethodRankHelper.DL_DELETE, MethodRankHelper.damerauLevenshteinDistance(box(new int[] {0,1,2,3}), box(new int[]{0,1,2,3,4})));
    }

    public void boxVarTest() throws Exception {
        assertEquals(Boolean.class, MethodRankHelper.boxVar(Boolean.TYPE));
        assertEquals(Character.class, MethodRankHelper.boxVar(Character.TYPE));
        assertEquals(Byte.class, MethodRankHelper.boxVar(Byte.TYPE));
        assertEquals(Double.class, MethodRankHelper.boxVar(Double.TYPE));
        assertEquals(Float.class, MethodRankHelper.boxVar(Float.TYPE));
        assertEquals(Integer.class, MethodRankHelper.boxVar(Integer.TYPE));
        assertEquals(Long.class, MethodRankHelper.boxVar(Long.TYPE));
        assertEquals(Short.class, MethodRankHelper.boxVar(Short.TYPE));
    
        assertEquals(MethodRankHelperTest.class, MethodRankHelper.boxVar(MethodRankHelperTest.class));
    }

    /*
    A better set of more complete tests of everything below is on the way!
    */
    final class TempClass{
        int x, y, fieldWithLongName;
        public TempClass(int x, int y){}
        public TempClass(int x){}
        public TempClass(){}
    
        public int getX(){
            return x;
        }
        public int gety(){
            return y;
        }
        
        public void setX(int x){}
        public void setXY(int x, int y){}
        public int getXYMultiplied(){
            return x*y;
        }
    }

    public void testGetMethodSuggestionString(){
        assertEquals("No suggestion",0, MethodRankHelper.getMethodSuggestionString("noSuchMethod", TempClass.class, new Object[]{}).length());
        assertEquals("getx",true, MethodRankHelper.getMethodSuggestionString("getx", TempClass.class, new Object[]{}).indexOf("getX") > 0);
        assertEquals("To great distance",true, MethodRankHelper.getMethodSuggestionString("getx", TempClass.class, new Object[]{}).indexOf("getXYMultiplied") < 0);
    }

    public void testGetConstructorSuggestionString(){
        assertEquals("No suggestion",0, MethodRankHelper.getConstructorSuggestionString(TempClass.class, new Object[]{null,null,null,null,null}).length());
    }
}

Other Groovy examples (source code examples)

Here is a short list of links related to this Groovy MethodRankHelperTest.java source code file:

new blog posts

 

Copyright 1998-2014 Alvin Alexander, alvinalexander.com
All Rights Reserved.