### Question:
PersistentTreeMap extends AbstractTreeMap<K, V, PersistentTreeMap<K, V>> implements PersistentSortedMap<K, V> { @Override public Entry<K, V> lowerEntry(K key) { return lowerNode(root, key); } private  PersistentTreeMap(); private  PersistentTreeMap(Comparator<? super K> comparator);   PersistentTreeMap(Comparator<? super K> comparator, Node<K, V> root, int size); @SuppressWarnings("unchecked") static PersistentTreeMap<K, V> empty(); static PersistentTreeMap<K, V> empty(Comparator<? super K> comparator); @SuppressWarnings("unchecked") static PersistentTreeMap<K, V> copyOf(Map<? extends K, ? extends V> map); static PersistentTreeMap<K, V> of(); @SuppressWarnings("unchecked") static PersistentTreeMap<K, V> of(K k1, V v1); static PersistentTreeMap<K, V> of(K k1, V v1, K k2, V v2); static PersistentTreeMap<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3); @Override int size(); @Override MutableTreeMap<K, V> toMutableMap(); @Override Map<K, V> asMap(); @Override Entry<K, V> getFirstEntry(); @Override Entry<K, V> getLastEntry(); @Override Entry<K, V> higherEntry(K key); @Override Entry<K, V> ceilingEntry(K key); @Override Entry<K, V> lowerEntry(K key); @Override Entry<K, V> floorEntry(K key); @Override Spliterator<Entry<K, V>> spliterator(); Spliterator<K> keySpliterator(); Spliterator<V> valueSpliterator(); String toString(); @SuppressWarnings("rawtypes")
    static final PersistentTreeMap EMPTY; }### Answer:
@Test public void lower() { PersistentTreeMap<Integer, Integer> map = mapForRangeTest(); assertThat(map.lowerEntry(0), nullValue()); assertThat(map.lowerEntry(1), nullValue()); assertThat(map.lowerEntry(2).getKey(), equalTo(1)); assertThat(map.lowerEntry(3).getKey(), equalTo(1)); assertThat(map.lowerEntry(4).getKey(), equalTo(3)); assertThat(map.lowerEntry(5).getKey(), equalTo(3)); assertThat(map.lowerEntry(6).getKey(), equalTo(5)); assertThat(map.lowerEntry(7).getKey(), equalTo(5)); assertThat(map.lowerEntry(8).getKey(), equalTo(7)); assertThat(map.lowerEntry(9).getKey(), equalTo(7)); assertThat(map.lowerEntry(10).getKey(), equalTo(9)); assertThat(map.lowerEntry(11).getKey(), equalTo(9)); }