Skip to content

Commit bc16b2e

Browse files
authored
Merge pull request #31 from stelfrich/randomaccessiblepair-test
Add RandomAccessiblePair randomAccess test
2 parents 04c57f6 + 8ac641e commit bc16b2e

File tree

1 file changed

+78
-0
lines changed

1 file changed

+78
-0
lines changed
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
/*
2+
* #%L
3+
* ImgLib2: a general-purpose, multidimensional image processing library.
4+
* %%
5+
* Copyright (C) 2009 - 2016 Tobias Pietzsch, Stephan Preibisch, Stephan Saalfeld,
6+
* John Bogovic, Albert Cardona, Barry DeZonia, Christian Dietz, Jan Funke,
7+
* Aivar Grislis, Jonathan Hale, Grant Harris, Stefan Helfrich, Mark Hiner,
8+
* Martin Horn, Steffen Jaensch, Lee Kamentsky, Larry Lindsey, Melissa Linkert,
9+
* Mark Longair, Brian Northan, Nick Perry, Curtis Rueden, Johannes Schindelin,
10+
* Jean-Yves Tinevez and Michael Zinsmaier.
11+
* %%
12+
* Redistribution and use in source and binary forms, with or without
13+
* modification, are permitted provided that the following conditions are met:
14+
*
15+
* 1. Redistributions of source code must retain the above copyright notice,
16+
* this list of conditions and the following disclaimer.
17+
* 2. Redistributions in binary form must reproduce the above copyright notice,
18+
* this list of conditions and the following disclaimer in the documentation
19+
* and/or other materials provided with the distribution.
20+
*
21+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
22+
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23+
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24+
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
25+
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26+
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27+
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28+
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29+
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
30+
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31+
* POSSIBILITY OF SUCH DAMAGE.
32+
* #L%
33+
*/
34+
package net.imglib2.algorithm.neighborhood;
35+
36+
import net.imglib2.Cursor;
37+
import net.imglib2.FinalDimensions;
38+
import net.imglib2.RandomAccess;
39+
import net.imglib2.RandomAccessible;
40+
import net.imglib2.RandomAccessibleInterval;
41+
import net.imglib2.img.Img;
42+
import net.imglib2.img.array.ArrayImgFactory;
43+
import net.imglib2.type.numeric.integer.ByteType;
44+
import net.imglib2.util.Pair;
45+
import net.imglib2.view.Views;
46+
47+
import org.junit.Test;
48+
49+
public class RandomAccessiblePairWithNeighborhoodTest
50+
{
51+
52+
@Test
53+
public void testRandomAccessOnPair()
54+
{
55+
// Extend input with Views.extend()
56+
Img< ByteType > in = new ArrayImgFactory< ByteType >().create( new FinalDimensions( 3, 3 ), new ByteType() );
57+
RandomAccessibleInterval< ByteType > extendedIn = Views.interval( Views.extendBorder( in ), in );
58+
59+
// Create RandomAccessiblePair
60+
final RandomAccessible< Neighborhood< ByteType > > safe = new RectangleShape( //
61+
1,
62+
false ).neighborhoodsRandomAccessibleSafe( extendedIn );
63+
RandomAccessible< Pair< Neighborhood< ByteType >, ByteType > > pair = Views.pair( safe, extendedIn );
64+
65+
// Set position out of bounds
66+
RandomAccess< Pair< Neighborhood< ByteType >, ByteType > > randomAccess = pair.randomAccess();
67+
randomAccess.setPosition( new int[] { 0, 0 } );
68+
69+
// Get value from Neighborhood via RandomAccessiblePair
70+
Pair< Neighborhood< ByteType >, ByteType > pair2 = randomAccess.get();
71+
Neighborhood< ByteType > neighborhood = pair2.getA();
72+
Cursor< ByteType > cursor = neighborhood.cursor();
73+
74+
// Tries to access (-1, -1) of the source
75+
cursor.next().getRealDouble();
76+
}
77+
78+
}

0 commit comments

Comments
 (0)