/* XOWA: the XOWA Offline Wiki Application Copyright (C) 2012 gnosygnu@gmail.com This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ package gplx.gfml; import gplx.*; import org.junit.*; public class z011_IntObjHash_tst { @Before public void setup() { hash = new IntObjHash_base(); } IntObjHash_base hash; @Test public void Empty() { tst_Count(0); tst_Fetch(1, null); } @Test public void Add() { hash.Add(1, "1"); tst_Count(1); tst_Fetch(1, "1"); tst_Fetch(2, null); } @Test public void Del() { hash.Add(1, "1"); hash.Del(1); tst_Count(0); tst_Fetch(1, null); } @Test public void Clear() { hash.Add(1, "1"); hash.Add(32, "32"); tst_Fetch(1, "1"); tst_Fetch(32, "32"); tst_Count(2); hash.Clear(); tst_Count(0); tst_Fetch(2, null); tst_Fetch(32, null); } @Test public void Add_bug() { // fails after expanding ary, and fetching at key=n*16 hash.Add(1, "1"); tst_Count(1); tst_Fetch(1, "1"); tst_Fetch(15, null); // works tst_Fetch(17, null); // works tst_Fetch(16, null); // used to fail } void tst_Fetch(int key, Object expd) {Tfds.Eq(expd, hash.Get_by(key));} void tst_Count(int expd) {Tfds.Eq(expd, hash.Count());} }