@Test
public void testCreate_NonSP3() throws Exception {

    IAtomContainer container = mock(IAtomContainer.class);
    when(container.getAtomCount()).thenReturn(5);
    IAtom c1 = mock(IAtom.class);
    IAtom o2 = mock(IAtom.class);
    IAtom n3 = mock(IAtom.class);
    IAtom c4 = mock(IAtom.class);
    IAtom h5 = mock(IAtom.class);
    when(container.getAtom(0)).thenReturn(c1);
    when(container.getAtom(1)).thenReturn(o2);
    when(container.getAtom(2)).thenReturn(n3);
    when(container.getAtom(3)).thenReturn(c4);
    when(container.getAtom(4)).thenReturn(h5);
    when(c1.getPoint2d()).thenReturn(new Point2d(1.23, -0.29));
    when(o2.getPoint2d()).thenReturn(new Point2d(-0.30, -0.29));
    when(n3.getPoint2d()).thenReturn(new Point2d(2.00, -1.63));
    when(c4.getPoint2d()).thenReturn(new Point2d(2.00, 1.03));
    when(h5.getPoint2d()).thenReturn(new Point2d(2.32, -0.29));
    IBond c1c4 = mock(IBond.class);
    IBond c1o2 = mock(IBond.class);
    IBond c1n3 = mock(IBond.class);
    IBond c1h5 = mock(IBond.class);
    int[][] graph = new int[][]{{1, 2, 3, 4}, {0}, {0}, {0}, {0}};
    when(container.getConnectedBondsList(c1)).thenReturn(Arrays.asList(c1c4, c1o2, c1n3, c1h5));
    // ATOM is not SP3
    // when(c1.getHybridization()).thenReturn(IAtomType.Hybridization.SP3);
    // with a hatch bond from c1 to n3
    when(c1n3.getStereo()).thenReturn(DOWN);
    when(c1n3.getBegin()).thenReturn(c1);
    when(c1n3.getEnd()).thenReturn(n3);
    when(c1o2.getStereo()).thenReturn(NONE);
    when(c1o2.getBegin()).thenReturn(c1);
    when(c1o2.getEnd()).thenReturn(o2);
    when(c1c4.getStereo()).thenReturn(NONE);
    when(c1c4.getBegin()).thenReturn(c1);
    when(c1c4.getEnd()).thenReturn(c4);
    when(c1h5.getStereo()).thenReturn(NONE);
    when(c1h5.getBegin()).thenReturn(c1);
    when(c1h5.getEnd()).thenReturn(h5);
    StereoEncoder encoder = new GeometricTetrahedralEncoderFactory().create(container, graph);
    assertThat(encoder, is(StereoEncoder.EMPTY));
}