/*******************************************************************************
* Copyright (c) 2012 Michael Kutschke.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Michael Kutschke - initial API and implementation
******************************************************************************/
package org.eclipse.recommenders.jayes;
import static org.junit.Assert.*;
import static org.junit.Assume.assumeTrue;
import org.eclipse.recommenders.jayes.factor.arraywrapper.DoubleArrayWrapper;
import org.eclipse.recommenders.jayes.util.sharing.CanonicalArrayWrapperManager;
import org.eclipse.recommenders.jayes.util.sharing.CanonicalIntArraySet;
import org.junit.Test;
public class ObjectSharingTest {
@Test
public void testCanonicalIntArraySet() {
int[] a1 = new int[] { 1, 2, 3 };
int[] a2 = new int[] { 1, 2, 3 };
assumeTrue(a1 != a2);
int[] a3 = new int[] { 2, 3, 4 };
CanonicalIntArraySet sut = new CanonicalIntArraySet();
sut.add(a1);
sut.add(a2);
sut.add(a3);
assertSame(sut.get(a1), sut.get(a2));
assertTrue(sut.get(a1) == a1);
assertNotSame(sut.get(a1), sut.get(a3));
assertEquals(sut.size(), 2);
sut.remove(a1);
assertEquals(sut.size(), 1);
}
@Test
public void testCanonicalArrayWrapperManager() {
DoubleArrayWrapper a1 = new DoubleArrayWrapper(1, 2, 3);
DoubleArrayWrapper a2 = new DoubleArrayWrapper(1, 2, 3);
assumeTrue(a1 != a2);
DoubleArrayWrapper a3 = new DoubleArrayWrapper(2, 3, 4);
CanonicalArrayWrapperManager sut = new CanonicalArrayWrapperManager();
assertSame(sut.getInstance(a1), sut.getInstance(a2));
assertTrue(sut.getInstance(a1) == a1);
assertNotSame(sut.getInstance(a1), sut.getInstance(a3));
}
}