blob: a8d9fa5d7c090b277a312352f458b043437a2238 [file] [log] [blame]
/*
* Copyright 2017 HugeGraph Authors
*
* 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 com.baidu.hugegraph.unit.util;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.junit.Test;
import com.baidu.hugegraph.testutil.Assert;
import com.baidu.hugegraph.unit.BaseUnitTest;
import com.baidu.hugegraph.util.InsertionOrderUtil;
import com.google.common.collect.ImmutableList;
public class InsertionOrderUtilTest extends BaseUnitTest {
@Test
public void testSet() {
Set<Integer> set = InsertionOrderUtil.newSet();
set.add(4);
set.add(2);
set.add(5);
set.add(1);
set.add(3);
Assert.assertEquals(ImmutableList.of(4, 2, 5, 1, 3),
ImmutableList.copyOf(set));
}
@Test
public void testSetWithInitialCapacity() {
Set<Integer> set = InsertionOrderUtil.newSet(3);
set.add(4);
set.add(2);
set.add(5);
set.add(1);
set.add(3);
Assert.assertEquals(ImmutableList.of(4, 2, 5, 1, 3),
ImmutableList.copyOf(set));
}
@Test
public void testSetCopy() {
Set<Integer> set = InsertionOrderUtil.newSet();
set.add(4);
set.add(2);
set.add(5);
set.add(1);
set.add(3);
Assert.assertEquals(ImmutableList.of(4, 2, 5, 1, 3),
ImmutableList.copyOf(set));
Set<Integer> set2 = InsertionOrderUtil.newSet(set);
set2.add(6);
set2.add(1);
Assert.assertEquals(ImmutableList.of(4, 2, 5, 1, 3, 6),
ImmutableList.copyOf(set2));
Assert.assertEquals(ImmutableList.of(4, 2, 5, 1, 3),
ImmutableList.copyOf(set));
}
@Test
public void testList() {
List<Integer> list = InsertionOrderUtil.newList();
list.add(4);
list.add(2);
list.add(5);
list.add(1);
list.add(3);
Assert.assertEquals(ImmutableList.of(4, 2, 5, 1, 3),
ImmutableList.copyOf(list));
}
@Test
public void testListWithInitialCapacity() {
List<Integer> list = InsertionOrderUtil.newList(3);
list.add(4);
list.add(2);
list.add(5);
list.add(1);
list.add(3);
Assert.assertEquals(ImmutableList.of(4, 2, 5, 1, 3),
ImmutableList.copyOf(list));
}
@Test
public void testListCopy() {
List<Integer> list = InsertionOrderUtil.newList();
list.add(4);
list.add(2);
list.add(5);
list.add(1);
list.add(3);
Assert.assertEquals(ImmutableList.of(4, 2, 5, 1, 3),
ImmutableList.copyOf(list));
List<Integer> list2 = InsertionOrderUtil.newList(list);
list2.add(6);
list2.add(1);
Assert.assertEquals(ImmutableList.of(4, 2, 5, 1, 3, 6, 1),
ImmutableList.copyOf(list2));
Assert.assertEquals(ImmutableList.of(4, 2, 5, 1, 3),
ImmutableList.copyOf(list));
}
@Test
public void testMap() {
Map<Integer, Integer> map = InsertionOrderUtil.newMap();
map.put(4, 4);
map.put(2, 2);
map.put(5, 5);
map.put(1, 1);
map.put(3, 3);
Assert.assertEquals(ImmutableList.of(4, 2, 5, 1, 3),
ImmutableList.copyOf(map.keySet()));
}
@Test
public void testMapWithInitialCapacity() {
Map<Integer, Integer> map = InsertionOrderUtil.newMap(3);
map.put(4, 4);
map.put(2, 2);
map.put(5, 5);
map.put(1, 1);
map.put(3, 3);
Assert.assertEquals(ImmutableList.of(4, 2, 5, 1, 3),
ImmutableList.copyOf(map.keySet()));
}
@Test
public void testMapCopy() {
Map<Integer, Integer> map = InsertionOrderUtil.newMap(3);
map.put(4, 4);
map.put(2, 2);
map.put(5, 5);
map.put(1, 1);
map.put(3, 3);
Assert.assertEquals(ImmutableList.of(4, 2, 5, 1, 3),
ImmutableList.copyOf(map.keySet()));
Map<Integer, Integer> map2 = InsertionOrderUtil.newMap(map);
map2.put(6, 6);
map2.put(1, 7);
Assert.assertEquals(ImmutableList.of(4, 2, 5, 1, 3, 6),
ImmutableList.copyOf(map2.keySet()));
Assert.assertEquals(ImmutableList.of(4, 2, 5, 1, 3),
ImmutableList.copyOf(map.keySet()));
}
}