| package com.intellij.application.options.codeStyle.arrangement.util |
| |
| import org.junit.Test |
| |
| import static org.junit.Assert.assertEquals |
| import static org.junit.Assert.assertNull; |
| |
| /** |
| * @author Denis Zhdanov |
| * @since 11/09/2012 |
| */ |
| class IntObjectMapTest { |
| |
| @Test |
| void "set and get"() { |
| def map = new IntObjectMap<Integer>(4) |
| map.set(0, 10) |
| map.set(1, 11) |
| assertEquals(10, map.get(0)) |
| assertEquals(11, map.get(1)) |
| assertEquals(2, map.size()) |
| } |
| |
| @Test |
| void "set and get with expand"() { |
| def map = new IntObjectMap<Integer>(4) |
| map.set(5, 10) |
| assertEquals(10, map.get(5)) |
| assertEquals(1, map.size()) |
| } |
| |
| @Test |
| void "expand and enough space"() { |
| def map = new IntObjectMap<Integer>(4) |
| map.set(1, 10) |
| map.shiftKeys(0, 2) |
| assertNull(map.get(1)) |
| assertEquals(10, map.get(3)) |
| assertEquals(1, map.size()) |
| } |
| |
| @Test |
| void "expand and not enough space"() { |
| def map = new IntObjectMap<Integer>(4) |
| map.set(3, 10) |
| map.shiftKeys(3, 2) |
| assertNull(map.get(3)) |
| assertEquals(10, map.get(5)) |
| assertEquals(1, map.size()) |
| } |
| |
| @Test |
| void "expand on first insert"() { |
| def map = new IntObjectMap<Integer>(4) |
| map.set(4, 10) |
| assertEquals(10, map.get(4)) |
| assertEquals(1, map.size()) |
| } |
| |
| @Test |
| void "composite"() { |
| def map = new IntObjectMap<Integer>(4) |
| map.set(1, 10) |
| map.set(2, 20) |
| map.set(5, 50) |
| map.shiftKeys(2, 10) |
| |
| assertEquals(10, map.get(1)) |
| assertNull(map.get(2)) |
| assertNull(map.get(5)) |
| assertEquals(20, map.get(12)) |
| assertEquals(50, map.get(15)) |
| |
| map.remove(15) |
| assertNull(map.get(15)) |
| |
| map.shiftKeys(0, 10) |
| assertNull(map.get(1)) |
| assertEquals(10, map.get(11)) |
| assertNull(map.get(15)) |
| assertEquals(20, map.get(22)) |
| assertEquals(2, map.size()) |
| } |
| |
| @Test |
| void "shift backwards starting from null"() { |
| def map = new IntObjectMap<Integer>(4) |
| map.set(1, 10) |
| map.set(3, 30) |
| map.set(4, 40) |
| |
| map.shiftKeys(2, -1) |
| assertEquals(10, map.get(1)) |
| assertEquals(30, map.get(2)) |
| assertEquals(40, map.get(3)) |
| assertNull(map.get(4)) |
| assertEquals(3, map.size()) |
| } |
| |
| @Test |
| void "clear"() { |
| def map = new IntObjectMap<Integer>() |
| map.set(1, 10) |
| map.set(2, 20) |
| assertEquals(2, map.size()) |
| |
| map.clear(); |
| assertEquals(0, map.size()) |
| assertNull(map.get(1)) |
| assertNull(map.get(2)) |
| } |
| |
| @Test |
| void "duplicate operations and size"() { |
| def map = new IntObjectMap<Integer>() |
| |
| map.set(1, 10) |
| assertEquals(1, map.size()) |
| assertEquals(10, map.get(1)) |
| |
| map.set(1, 100) |
| assertEquals(1, map.size()) |
| assertEquals(100, map.get(1)) |
| |
| map.remove(1) |
| assertEquals(0, map.size()) |
| assertNull(map.get(1)) |
| |
| map.remove(1) |
| assertEquals(0, map.size()) |
| assertNull(map.get(1)) |
| } |
| } |