@Test
public void testZmatrixToCartesian_arraydouble_arrayint_arraydouble_arrayint_arraydouble_arrayint() {

    // acetaldehyde example from http://www.shodor.org/chemviz/zmatrices/babelex.html
    int[] first_atoms = {0, 0, 0, 0, 3, 3, 3};
    double[] distances = {0, 1.2, 1.1, 1.5, 1.1, 1.1, 1.1};
    int[] second_atoms = {0, 0, 1, 1, 0, 0, 0};
    double[] angles = {0, 0, 120, 120, 110, 110, 110};
    int[] third_atoms = {0, 0, 0, 2, 1, 1, 1};
    double[] dihedrals = {0, 0, 0, 180, 0, 120, -120};
    Point3d points[] = ZMatrixTools.zmatrixToCartesian(distances, first_atoms, angles, second_atoms, dihedrals,
            third_atoms);
    Assert.assertEquals(-0.5500, points[2].x, 0.0001);
    Assert.assertEquals(-1.3664, points[5].y, 0.0001);
    Assert.assertEquals(-0.8952, points[6].z, 0.0001);
}