1bfbbee8c5757aef4a20879547c16af0a4d1bf4c7Jean Chalard/* 2bfbbee8c5757aef4a20879547c16af0a4d1bf4c7Jean Chalard * Copyright (C) 2011 The Android Open Source Project 3bfbbee8c5757aef4a20879547c16af0a4d1bf4c7Jean Chalard * 4bfbbee8c5757aef4a20879547c16af0a4d1bf4c7Jean Chalard * Licensed under the Apache License, Version 2.0 (the "License"); 5bfbbee8c5757aef4a20879547c16af0a4d1bf4c7Jean Chalard * you may not use this file except in compliance with the License. 6bfbbee8c5757aef4a20879547c16af0a4d1bf4c7Jean Chalard * You may obtain a copy of the License at 7bfbbee8c5757aef4a20879547c16af0a4d1bf4c7Jean Chalard * 8bfbbee8c5757aef4a20879547c16af0a4d1bf4c7Jean Chalard * http://www.apache.org/licenses/LICENSE-2.0 9bfbbee8c5757aef4a20879547c16af0a4d1bf4c7Jean Chalard * 10bfbbee8c5757aef4a20879547c16af0a4d1bf4c7Jean Chalard * Unless required by applicable law or agreed to in writing, software 11bfbbee8c5757aef4a20879547c16af0a4d1bf4c7Jean Chalard * distributed under the License is distributed on an "AS IS" BASIS, 12bfbbee8c5757aef4a20879547c16af0a4d1bf4c7Jean Chalard * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13bfbbee8c5757aef4a20879547c16af0a4d1bf4c7Jean Chalard * See the License for the specific language governing permissions and 14bfbbee8c5757aef4a20879547c16af0a4d1bf4c7Jean Chalard * limitations under the License. 15bfbbee8c5757aef4a20879547c16af0a4d1bf4c7Jean Chalard */ 16bfbbee8c5757aef4a20879547c16af0a4d1bf4c7Jean Chalard 17bfbbee8c5757aef4a20879547c16af0a4d1bf4c7Jean Chalardpackage com.android.inputmethod.latin; 18bfbbee8c5757aef4a20879547c16af0a4d1bf4c7Jean Chalard 19bfbbee8c5757aef4a20879547c16af0a4d1bf4c7Jean Chalardimport com.android.inputmethod.latin.FusionDictionary.Node; 20bfbbee8c5757aef4a20879547c16af0a4d1bf4c7Jean Chalard 21bfbbee8c5757aef4a20879547c16af0a4d1bf4c7Jean Chalardimport java.util.ArrayList; 22bfbbee8c5757aef4a20879547c16af0a4d1bf4c7Jean Chalard 23bfbbee8c5757aef4a20879547c16af0a4d1bf4c7Jean Chalardimport junit.framework.TestCase; 24bfbbee8c5757aef4a20879547c16af0a4d1bf4c7Jean Chalard 25bfbbee8c5757aef4a20879547c16af0a4d1bf4c7Jean Chalard/** 26bfbbee8c5757aef4a20879547c16af0a4d1bf4c7Jean Chalard * Unit tests for BinaryDictInputOutput. 27bfbbee8c5757aef4a20879547c16af0a4d1bf4c7Jean Chalard */ 28bfbbee8c5757aef4a20879547c16af0a4d1bf4c7Jean Chalardpublic class BinaryDictInputOutputTest extends TestCase { 29bfbbee8c5757aef4a20879547c16af0a4d1bf4c7Jean Chalard 30bfbbee8c5757aef4a20879547c16af0a4d1bf4c7Jean Chalard public void setUp() throws Exception { 31bfbbee8c5757aef4a20879547c16af0a4d1bf4c7Jean Chalard super.setUp(); 32bfbbee8c5757aef4a20879547c16af0a4d1bf4c7Jean Chalard } 33bfbbee8c5757aef4a20879547c16af0a4d1bf4c7Jean Chalard 34bfbbee8c5757aef4a20879547c16af0a4d1bf4c7Jean Chalard public void tearDown() throws Exception { 35bfbbee8c5757aef4a20879547c16af0a4d1bf4c7Jean Chalard super.tearDown(); 36bfbbee8c5757aef4a20879547c16af0a4d1bf4c7Jean Chalard } 37bfbbee8c5757aef4a20879547c16af0a4d1bf4c7Jean Chalard 38bfbbee8c5757aef4a20879547c16af0a4d1bf4c7Jean Chalard // Test the flattened array contains the expected number of nodes, and 39bfbbee8c5757aef4a20879547c16af0a4d1bf4c7Jean Chalard // that it does not contain any duplicates. 40bfbbee8c5757aef4a20879547c16af0a4d1bf4c7Jean Chalard public void testFlattenNodes() { 41bfbbee8c5757aef4a20879547c16af0a4d1bf4c7Jean Chalard final FusionDictionary dict = new FusionDictionary(); 42bfbbee8c5757aef4a20879547c16af0a4d1bf4c7Jean Chalard dict.add("foo", 1, null); 43bfbbee8c5757aef4a20879547c16af0a4d1bf4c7Jean Chalard dict.add("fta", 1, null); 44bfbbee8c5757aef4a20879547c16af0a4d1bf4c7Jean Chalard dict.add("ftb", 1, null); 45bfbbee8c5757aef4a20879547c16af0a4d1bf4c7Jean Chalard dict.add("bar", 1, null); 46bfbbee8c5757aef4a20879547c16af0a4d1bf4c7Jean Chalard dict.add("fool", 1, null); 47bfbbee8c5757aef4a20879547c16af0a4d1bf4c7Jean Chalard final ArrayList<Node> result = BinaryDictInputOutput.flattenTree(dict.mRoot); 48bfbbee8c5757aef4a20879547c16af0a4d1bf4c7Jean Chalard assertEquals(4, result.size()); 49bfbbee8c5757aef4a20879547c16af0a4d1bf4c7Jean Chalard while (!result.isEmpty()) { 50bfbbee8c5757aef4a20879547c16af0a4d1bf4c7Jean Chalard final Node n = result.remove(0); 51bfbbee8c5757aef4a20879547c16af0a4d1bf4c7Jean Chalard assertFalse("Flattened array contained the same node twice", result.contains(n)); 52bfbbee8c5757aef4a20879547c16af0a4d1bf4c7Jean Chalard } 53bfbbee8c5757aef4a20879547c16af0a4d1bf4c7Jean Chalard } 54bfbbee8c5757aef4a20879547c16af0a4d1bf4c7Jean Chalard 55bfbbee8c5757aef4a20879547c16af0a4d1bf4c7Jean Chalard} 56