private void test(TreeNode<K, D> nd) {
            if (nd == getRoot()) {
                satisfied = satisfied && nd.getColor() == BLACK;
                return;
            }
            if (isNil(nd)) {
                satisfied = satisfied && nd.getColor() == BLACK;
                return;
            }
            if (nd.getColor() == RED) {
                satisfied = satisfied && nd.getLeftChild().getColor() == BLACK;
                satisfied = satisfied && nd.getRightChild().getColor() == BLACK;
                //if (! satisfied) throw new IllegalStateException();
            }
            //TODO property 5

        }