@Test
  public void shouldCompute3dCoordinates() {
    Rectangle rect = new Rectangle(100, 100);
    rect.setTranslateX(100);
    rect.setTranslateY(100);
    rect.setTranslateZ(50);
    Group root = new Group(rect, new Rectangle(0, 0));
    Scene scene = new Scene(root);
    Stage stage = new Stage();
    stage.setScene(scene);
    stage.show();
    rect.requestFocus();

    rect.setOnContextMenuRequested(
        event -> {
          Assert.assertEquals(1.0, event.getX(), 0.0001);
          Assert.assertEquals(101, event.getSceneX(), 0.0001);
          Assert.assertEquals(201, event.getScreenX(), 0.0001);
          Assert.assertEquals(2.0, event.getY(), 0.0001);
          Assert.assertEquals(102, event.getSceneY(), 0.0001);
          Assert.assertEquals(202, event.getScreenY(), 0.0001);
          Assert.assertEquals(0, event.getZ(), 0.0001);
          assertFalse(event.isKeyboardTrigger());
        });

    scene.setOnContextMenuRequested(
        event -> {
          Assert.assertEquals(101.0, event.getX(), 0.0001);
          Assert.assertEquals(101, event.getSceneX(), 0.0001);
          Assert.assertEquals(201, event.getScreenX(), 0.0001);
          Assert.assertEquals(102.0, event.getY(), 0.0001);
          Assert.assertEquals(102, event.getSceneY(), 0.0001);
          Assert.assertEquals(202, event.getScreenY(), 0.0001);
          Assert.assertEquals(50, event.getZ(), 0.0001);
          assertFalse(event.isKeyboardTrigger());
        });

    ((StubScene) scene.impl_getPeer()).getListener().menuEvent(101, 102, 201, 202, false);
  }