/* * Copyright (C) 2009-2011 University of Dundee & Open Microscopy Environment. * All rights reserved. * * Use is subject to license terms supplied in LICENSE.txt */ package ome.util.utests; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Set; import junit.framework.TestCase; import ome.model.acquisition.DetectorSettings; import ome.model.acquisition.FilterSet; import ome.model.acquisition.ObjectiveSettings; import ome.model.core.Image; import ome.model.core.LogicalChannel; import ome.model.screen.Plate; import ome.util.LSID; import org.testng.annotations.Test; @Test public class LSIDEquivalenceTest extends TestCase { public void testStringHashMapContainsKey() { Map<LSID, List<LSID>> map = new HashMap<LSID, List<LSID>>(); LSID lsid1 = new LSID("Image:0"); map.put(lsid1, new ArrayList<LSID>()); LSID lsid2 = new LSID("Image:1"); map.put(lsid2, new ArrayList<LSID>()); assertEquals(2, map.size()); assertTrue(map.containsKey(lsid1)); assertTrue(map.containsKey(lsid2)); } public void testLSIDHashMapContainsKey() { Map<LSID, String> map = new HashMap<LSID, String>(); LSID lsid1 = new LSID(Image.class, 0); map.put(lsid1, "Test"); LSID lsid2 = new LSID(Image.class, 1); map.put(lsid2, "Test"); assertEquals(2, map.size()); assertTrue(map.containsKey(lsid1)); assertTrue(map.containsKey(lsid2)); } public void testHashMapContainsMultipleKeys() { Map<LSID, List<LSID>> map = new HashMap<LSID, List<LSID>>(); LSID lsid1 = new LSID(FilterSet.class, 0, 0); map.put(lsid1, new ArrayList<LSID>()); LSID lsid2 = new LSID(FilterSet.class, 0, 1); map.put(lsid2, new ArrayList<LSID>()); LSID lsid3 = new LSID(FilterSet.class, 0, 2); map.put(lsid3, new ArrayList<LSID>()); LSID lsid4 = new LSID(FilterSet.class, 0, 3); map.put(lsid4, new ArrayList<LSID>()); LSID lsid5 = new LSID(DetectorSettings.class, 0, 0); map.put(lsid5, new ArrayList<LSID>()); LSID lsid6 = new LSID(LogicalChannel.class, 0, 0); map.put(lsid6, new ArrayList<LSID>()); LSID lsid7 = new LSID(Image.class, 0); map.put(lsid7, new ArrayList<LSID>()); LSID lsid8 = new LSID(ObjectiveSettings.class, 0); map.put(lsid8, new ArrayList<LSID>()); assertEquals(8, map.size()); assertEquals(8, map.entrySet().size()); assertTrue(map.containsKey(lsid1)); assertTrue(map.containsKey(lsid2)); assertTrue(map.containsKey(lsid3)); assertTrue(map.containsKey(lsid4)); assertTrue(map.containsKey(lsid5)); assertTrue(map.containsKey(lsid6)); assertTrue(map.containsKey(lsid7)); assertTrue(map.containsKey(lsid8)); } public void testStringVsStringNumeric() { LSID a = new LSID("Image:0"); LSID b = new LSID("Image:0"); assertEquals(a, b); } public void testStringVsStringAlpha() { LSID a = new LSID("Image:ABC"); LSID b = new LSID("Image:ABC"); assertEquals(a, b); } public void testStringVsStringMixed() { LSID a = new LSID("Image:ABC-1"); LSID b = new LSID("Image:ABC-1"); assertEquals(a, b); } public void testLSIDVsString() { LSID a = new LSID("ome.model.core.Image:0"); LSID b = new LSID(Image.class, 0); assertEquals(a, b); } public void testStringVsLSID() { LSID a = new LSID(Image.class, 0); LSID b = new LSID("ome.model.core.Image:0"); assertEquals(a, b); } public void testPlateStringVsLSID() { LSID a = new LSID(Plate.class, 0); LSID b = new LSID("ome.model.screen.Plate:0"); assertEquals(a, b); } public void testLSIDVsStringWithConstructor() { LSID a = new LSID("ome.model.core.Image:0", true); LSID b = new LSID(Image.class, 0); assertEquals(a, b); assertEquals(a.getJavaClass(), b.getJavaClass()); assertEquals(a.getIndexes()[0], b.getIndexes()[0]); } public void testStringVsLSIDWithConstructor() { LSID a = new LSID(Image.class, 0); LSID b = new LSID("ome.model.core.Image:0", true); assertEquals(a, b); assertEquals(a.getJavaClass(), b.getJavaClass()); assertEquals(a.getIndexes()[0], b.getIndexes()[0]); } public void testPlateStringVsLSIDWithConstructor() { LSID a = new LSID(Plate.class, 0); LSID b = new LSID("ome.model.screen.Plate:0", true); assertEquals(a, b); assertEquals(a.getJavaClass(), b.getJavaClass()); assertEquals(a.getIndexes()[0], b.getIndexes()[0]); } public void testBigListsWithSet() { Set<LSID> set = new HashSet<LSID>(); for (int i = 0; i < 100000; i++) { set.add(new LSID(Plate.class, i)); } } public void testBigListsWithSetAndList() { Set<LSID> found = new HashSet<LSID>(); List<LSID> list = new ArrayList<LSID>(); for (int i = 0; i < 100000; i++) { LSID lsid = new LSID(Plate.class, i); if (!found.contains(lsid)) { found.add(lsid); list.add(lsid); } } } public void testBigListsWithLinkedHashSet() { LinkedHashSet<LSID> set = new LinkedHashSet<LSID>(); for (int i = 0; i < 100000; i++) { LSID lsid = new LSID(Plate.class, i); if (!set.contains(lsid)) { set.add(lsid); } } } }