You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by el...@apache.org on 2016/05/17 14:06:01 UTC

svn commit: r1744269 - /directory/shared/trunk/ldap/model/src/test/java/org/apache/directory/api/ldap/model/schema/normalizers/DeepTrimToLowerNormalizerTest.java

Author: elecharny
Date: Tue May 17 14:06:01 2016
New Revision: 1744269

URL: http://svn.apache.org/viewvc?rev=1744269&view=rev
Log:
Added a test for the DeepTrimToLower normalizer

Added:
    directory/shared/trunk/ldap/model/src/test/java/org/apache/directory/api/ldap/model/schema/normalizers/DeepTrimToLowerNormalizerTest.java

Added: directory/shared/trunk/ldap/model/src/test/java/org/apache/directory/api/ldap/model/schema/normalizers/DeepTrimToLowerNormalizerTest.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/model/src/test/java/org/apache/directory/api/ldap/model/schema/normalizers/DeepTrimToLowerNormalizerTest.java?rev=1744269&view=auto
==============================================================================
--- directory/shared/trunk/ldap/model/src/test/java/org/apache/directory/api/ldap/model/schema/normalizers/DeepTrimToLowerNormalizerTest.java (added)
+++ directory/shared/trunk/ldap/model/src/test/java/org/apache/directory/api/ldap/model/schema/normalizers/DeepTrimToLowerNormalizerTest.java Tue May 17 14:06:01 2016
@@ -0,0 +1,261 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you 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.apache.directory.api.ldap.model.schema.normalizers;
+
+
+import static org.junit.Assert.assertEquals;
+
+import com.mycila.junit.concurrent.Concurrency;
+import com.mycila.junit.concurrent.ConcurrentJunitRunner;
+
+import org.apache.directory.api.ldap.model.exception.LdapException;
+import org.apache.directory.api.ldap.model.schema.Normalizer;
+import org.apache.directory.api.ldap.model.schema.normalizers.DeepTrimToLowerNormalizer;
+import org.apache.directory.api.util.Strings;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+
+/**
+ * Test the normalizer class
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ */
+@RunWith(ConcurrentJunitRunner.class)
+@Concurrency()
+public class DeepTrimToLowerNormalizerTest
+{
+    @Test
+    public void testDeepTrimToLowerNormalizerNull() throws LdapException
+    {
+        Normalizer normalizer = new DeepTrimToLowerNormalizer( "1.1.1" );
+        assertEquals( null, normalizer.normalize( ( String ) null ) );
+    }
+
+
+    @Test
+    public void testDeepTrimToLowerNormalizerEmpty() throws LdapException
+    {
+        Normalizer normalizer = new DeepTrimToLowerNormalizer( "1.1.1" );
+        assertEquals( "", normalizer.normalize( "" ) );
+    }
+
+
+    @Test
+    public void testDeepTrimToLowerNormalizerOneSpace() throws LdapException
+    {
+        Normalizer normalizer = new DeepTrimToLowerNormalizer( "1.1.1" );
+        assertEquals( " ", normalizer.normalize( " " ) );
+    }
+
+
+    @Test
+    public void testDeepTrimToLowerNormalizerTwoSpaces() throws LdapException
+    {
+        Normalizer normalizer = new DeepTrimToLowerNormalizer( "1.1.1" );
+        assertEquals( " ", normalizer.normalize( "  " ) );
+    }
+
+
+    @Test
+    public void testDeepTrimToLowerNormalizerNSpaces() throws LdapException
+    {
+        Normalizer normalizer = new DeepTrimToLowerNormalizer( "1.1.1" );
+        assertEquals( " ", normalizer.normalize( "      " ) );
+    }
+
+
+    @Test
+    public void testInsignifiantSpacesStringOneChar() throws LdapException
+    {
+        Normalizer normalizer = new DeepTrimToLowerNormalizer( "1.1.1" );
+        assertEquals( "a", normalizer.normalize( "a" ) );
+    }
+
+
+    @Test
+    public void testInsignifiantSpacesStringTwoChars() throws LdapException
+    {
+        Normalizer normalizer = new DeepTrimToLowerNormalizer( "1.1.1" );
+        assertEquals( "aa", normalizer.normalize( "aa" ) );
+    }
+
+
+    @Test
+    public void testInsignifiantSpacesStringNChars() throws LdapException
+    {
+        Normalizer normalizer = new DeepTrimToLowerNormalizer( "1.1.1" );
+        assertEquals( "aaaaa", normalizer.normalize( "aaaaa" ) );
+    }
+
+
+    @Test
+    public void testInsignifiantSpacesStringOneCombining() throws LdapException
+    {
+        Normalizer normalizer = new DeepTrimToLowerNormalizer( "1.1.1" );
+        char[] chars = new char[]
+            { ' ', 0x0310 };
+        char[] expected = new char[]
+            { ' ', 0x0310 };
+        //assertEquals( new String( expected ), normalizer.normalize( new String( chars ) ) );
+        
+        String expectedStr = new String( expected );
+        String charsStr = new String( chars );
+        assertEquals( expectedStr, normalizer.normalize( charsStr ) );
+    }
+
+
+    @Test
+    public void testInsignifiantSpacesStringNCombining() throws LdapException
+    {
+        Normalizer normalizer = new DeepTrimToLowerNormalizer( "1.1.1" );
+        char[] chars = new char[]
+            { ' ', 0x0310, ' ', 0x0311, ' ', 0x0312 };
+        char[] expected = new char[]
+            { ' ', 0x0310, ' ', 0x0311, ' ', 0x0312 };
+        assertEquals( new String( expected ), normalizer.normalize( new String( chars ) ) );
+    }
+
+
+    @Test
+    public void testInsignifiantSpacesStringCharsSpaces() throws LdapException
+    {
+        Normalizer normalizer = new DeepTrimToLowerNormalizer( "1.1.1" );
+        assertEquals( "a", normalizer.normalize( " a" ) );
+        assertEquals( "a", normalizer.normalize( "a " ) );
+        assertEquals( "a", normalizer.normalize( " a " ) );
+        assertEquals( "a a", normalizer.normalize( "a a" ) );
+        assertEquals( "a a", normalizer.normalize( " a a" ) );
+        assertEquals( "a a", normalizer.normalize( "a a " ) );
+        assertEquals( "a a", normalizer.normalize( "a  a" ) );
+        assertEquals( "a a", normalizer.normalize( " a   a " ) );
+        assertEquals( "aaa aaa aaa", normalizer.normalize( "  aaa   aaa   aaa  " ) );
+    }
+
+
+    @Test
+    public void testNormalizeCharsCombiningSpaces() throws LdapException
+    {
+        Normalizer normalizer = new DeepTrimToLowerNormalizer( "1.1.1" );
+        char[] chars = new char[]
+            { ' ', 0x0310, 'a', 'a', ' ', ' ', 0x0311, ' ', ' ', 'a', 0x0311, 0x0312 };
+        char[] expected = new char[]
+            { ' ', 0x0310, 'a', 'a', ' ', 0x0311, ' ', 'a', 0x0311, 0x0312 };
+        String expectedStr = new String( expected );
+        String charsStr = new String( chars );
+        assertEquals( expectedStr, normalizer.normalize( charsStr ) );
+    }
+
+
+    @Test
+    public void testNormalizeString() throws Exception
+    {
+        Normalizer normalizer = new DeepTrimToLowerNormalizer( "1.1.1" );
+        assertEquals( "abcd", normalizer.normalize( "abcd" ) );
+    }
+
+
+    @Test
+    public void testMapToSpace() throws Exception
+    {
+        Normalizer normalizer = new DeepTrimToLowerNormalizer( "1.1.1" );
+        char[] chars = new char[]
+            { 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0085, 0x00A0, 0x1680, 0x2000, 0x2001, 0x2002, 0x2003, 0x2004, 0x2005,
+                0x2006, 0x2007, 0x2008, 0x2009, 0x200A, 0x2028, 0x2029, 0x202F, 0x205F };
+        assertEquals( " ", normalizer.normalize( new String( chars ) ) );
+    }
+
+
+    @Test
+    public void testNormalizeIgnore() throws Exception
+    {
+        Normalizer normalizer = new DeepTrimToLowerNormalizer( "1.1.1" );
+        char[] chars = new char[58];
+
+        int pos = 0;
+
+        for ( char c = 0x0000; c < 0x0008; c++ )
+        {
+            chars[pos++] = c;
+        }
+
+        for ( char c = 0x000E; c < 0x001F; c++ )
+        {
+            chars[pos++] = c;
+        }
+
+        for ( char c = 0x007F; c < 0x0084; c++ )
+        {
+            chars[pos++] = c;
+        }
+
+        for ( char c = 0x0086; c < 0x009F; c++ )
+        {
+            chars[pos++] = c;
+        }
+
+        chars[pos++] = 0x00AD;
+
+        assertEquals( " ", normalizer.normalize( new String( chars ) ) );
+    }
+
+    @Test
+    @Ignore
+    public void testSpeed() throws Exception
+    {
+        Normalizer normalizer = new DeepTrimToLowerNormalizer();
+        char[] chars = new char[]{ 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0085, 0x00A0, 0x1680,
+            0x2000, 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2007, 0x2008, 0x2009, 0x200A,
+            0x2028, 0x2029, 0x202F, 0x205F };
+        String s = new String( chars );
+        assertEquals( " ", normalizer.normalize( s ) );
+        
+        String t = "xs crvtbynU  Jikl7897790";
+        
+        Normalizer normalizer2 = new DeepTrimToLowerNormalizer();
+        
+        String s1 = (String)normalizer2.normalize( t );
+
+        long t0 = System.currentTimeMillis();
+
+        for ( int i = 0; i < 10000000; i++ )
+        {
+            normalizer2.normalize( t );
+        }
+        
+        long t1 = System.currentTimeMillis();
+        
+        System.out.println( t1 - t0 );
+
+        String s2 = Strings.deepTrimToLower( t );
+
+        t0 = System.currentTimeMillis();
+
+        for ( int i = 0; i < 10000000; i++ )
+        {
+            Strings.deepTrimToLower( t );
+        }
+        
+        t1 = System.currentTimeMillis();
+        
+        System.out.println( t1 - t0 );
+    }
+}
\ No newline at end of file