@Test
    public void efficientFormulaNodeTrees() {
        assertThat(Formula.compile("13.123").toDebugString(null, false, true))
                .as("constant value should be in one node").isEqualTo("13.123{}");
        assertThat(Formula.compile("13.123(4+5)").toDebugString(null, false, true))
                .as("constant value should be in one node").isEqualTo("13.1239{}");
        assertThat(Formula.compile("13.123 + length('abc')").toDebugString(null, false, true))
                .as("constant value should be in one node").isEqualTo("16.123{}");

        assertThat(Formula.compile("A + (length('abc') + 3)").toDebugString(null, false, true))
                .as("constant parts should be in one subnode").isEqualTo("?A + 6{?A{};6{}}");

        assertThat(Formula.compile("12A.456B8901").toDebugString(null, false, true))
                .as("decimals should be stored as efficiently as possible").isEqualTo("12?A.456?B8901{12{};?A{};.456{};?B{};8901{}}");


    }
checks whether a given error string is correct and has the right places highlighted with an error format
main/src/test/java/cgeo/geocaching/utils/formulas/FormulaTest.java