public void TestCartesianToNotional_Vector3d_Vector3d_Vector3d() { Vector3 a = new Vector3(1.0, 0.0, 0.0); Vector3 b = new Vector3(0.0, 2.0, 0.0); Vector3 c = new Vector3(0.0, 0.0, 3.0); double[] notionalCoords = CrystalGeometryTools.CartesianToNotional(a, b, c); Assert.AreEqual(1.0, notionalCoords[0], 0.001); Assert.AreEqual(2.0, notionalCoords[1], 0.001); Assert.AreEqual(3.0, notionalCoords[2], 0.001); Assert.AreEqual(90.0, notionalCoords[3], 0.001); Assert.AreEqual(90.0, notionalCoords[4], 0.001); Assert.AreEqual(90.0, notionalCoords[5], 0.001); }
public void TestRoundTripUnitCellNotionalCoordinates() { Vector3[] cardAxes = CrystalGeometryTools.NotionalToCartesian(7.6, 3.9, 10.3, 67.0, 91.2, 110.5); Vector3 a = cardAxes[0]; Vector3 b = cardAxes[1]; Vector3 c = cardAxes[2]; double[] notionalCoords = CrystalGeometryTools.CartesianToNotional(a, b, c); Assert.AreEqual(7.6, notionalCoords[0], 0.001); Assert.AreEqual(3.9, notionalCoords[1], 0.001); Assert.AreEqual(10.3, notionalCoords[2], 0.001); Assert.AreEqual(67.0, notionalCoords[3], 0.001); Assert.AreEqual(91.2, notionalCoords[4], 0.001); Assert.AreEqual(110.5, notionalCoords[5], 0.001); }