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