Is it ok to write unit tests for private method for this Expression evaluator class?
<p><br/>
I have tho following code</p>

<pre><code>public interface IInterpreter
{
    decimal Evaluate(string expression);
}

public class Interpreter : IInterpreter
{
    public decimal Evaluate(string expression)
    {
        if (String.IsNullOrWhiteSpace(expression))
            throw new ArgumentException("Parameter " + nameof(expression) + " cannot be empty");

        var rpnExpression = ConvertToReversePolishNotation(expression);
        return EvaluateReversePolishExpression(rpnExpression);
    }
...
 }
</code></pre>

<p>This class will evaluate expressions like "5+5*6" or "(3-5)*(2+2) +5" <br />
Now i want to write unit tests. The only public function here is <code>Evaluate</code> and according to all recomendation only this method should be tested.  <br />
The problem is that i have a strong feeling that both <code>ConvertToReversePolishNotation(expression)</code>  <code>EvaluateReversePolishExpression(rpnExpression)</code> functions have to be covered with unit tests ... If some unit test will fail for <code>Evaluate</code> method it will not point me out where is the bug (in <code>ConvertToRPNExpression</code> method or in <code>EvaluateReversePolishExpression</code> function).
<br />
<br/>
So the question is - <strong>Is it ok in this case to write unit tests for private functions ?</strong></p>