TestUTF8.java
上传用户:quxuerui
上传日期:2018-01-08
资源大小:41811k
文件大小:3k
源码类别:

网格计算

开发平台:

Java

  1. /**
  2.  * Licensed to the Apache Software Foundation (ASF) under one
  3.  * or more contributor license agreements.  See the NOTICE file
  4.  * distributed with this work for additional information
  5.  * regarding copyright ownership.  The ASF licenses this file
  6.  * to you under the Apache License, Version 2.0 (the
  7.  * "License"); you may not use this file except in compliance
  8.  * with the License.  You may obtain a copy of the License at
  9.  *
  10.  *     http://www.apache.org/licenses/LICENSE-2.0
  11.  *
  12.  * Unless required by applicable law or agreed to in writing, software
  13.  * distributed under the License is distributed on an "AS IS" BASIS,
  14.  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  15.  * See the License for the specific language governing permissions and
  16.  * limitations under the License.
  17.  */
  18. package org.apache.hadoop.io;
  19. import junit.framework.TestCase;
  20. import java.util.Random;
  21. /** Unit tests for UTF8. */
  22. public class TestUTF8 extends TestCase {
  23.   public TestUTF8(String name) { super(name); }
  24.   private static final Random RANDOM = new Random();
  25.   public static String getTestString() throws Exception {
  26.     StringBuffer buffer = new StringBuffer();
  27.     int length = RANDOM.nextInt(100);
  28.     for (int i = 0; i < length; i++) {
  29.       buffer.append((char)(RANDOM.nextInt(Character.MAX_VALUE)));
  30.     }
  31.     return buffer.toString();
  32.   }
  33.   public void testWritable() throws Exception {
  34.     for (int i = 0; i < 10; i++) {
  35.       TestWritable.testWritable(new UTF8(getTestString()));
  36.     }
  37.   }
  38.   public void testGetBytes() throws Exception {
  39.     for (int i = 0; i < 10; i++) {
  40.       // generate a random string
  41.       String before = getTestString();
  42.       // check its utf8
  43.       assertEquals(before, new String(UTF8.getBytes(before), "UTF-8"));
  44.     }
  45.   }
  46.   public void testIO() throws Exception {
  47.     DataOutputBuffer out = new DataOutputBuffer();
  48.     DataInputBuffer in = new DataInputBuffer();
  49.     for (int i = 0; i < 10; i++) {
  50.       // generate a random string
  51.       String before = getTestString();
  52.       // write it
  53.       out.reset();
  54.       UTF8.writeString(out, before);
  55.       // test that it reads correctly
  56.       in.reset(out.getData(), out.getLength());
  57.       String after = UTF8.readString(in);
  58.       assertTrue(before.equals(after));
  59.       // test that it reads correctly with DataInput
  60.       in.reset(out.getData(), out.getLength());
  61.       String after2 = in.readUTF();
  62.       assertTrue(before.equals(after2));
  63.       // test that it is compatible with Java's other decoder
  64.       String after3 = new String(out.getData(), 2, out.getLength()-2, "UTF-8");
  65.       assertTrue(before.equals(after3));
  66.     }
  67.   }
  68. }