// Path: src/main/java/com/orgzly/org/OrgFile.java
// public class OrgFile {
// 
//     /** In-buffer settings. */
//     private OrgFileSettings settings;
// 
//     /** Text before the first heading. */
//     private String preface;
// 
//     public OrgFile() {
// 	}
// 
//     public OrgFileSettings getSettings() {
//         if (settings == null) {
//             settings = new OrgFileSettings();
//         }
//         return settings;
//     }
// 
//     /**
//      * @return Text before first {@link OrgHead} in the file.
//      */
//     public String getPreface() {
//         return preface != null ? preface : "";
//     }
// 
//     public void setPreface(String str) {
//         preface = str;
//     }
// 
//     public String toString() {
// 		return OrgFile.class.getSimpleName() + "[" + preface.length() + "]";
// 	}
// }


import com.orgzly.org.OrgFile;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import java.io.IOException;
import java.util.Arrays;
import java.util.TreeMap;
import static org.junit.Assert.assertEquals;
                        "" +
                                " 1  2 \n"
                },
                {
                        "" +
                                "* A\n" +
                                "* B\n",
                        "" +
                                " 1  6 \n" +
                                " 2  3 * A\n" +
                                " 4  5 * B\n"
                }
        });
    }

    @Test
    public void testNestedSetModelParser() throws IOException {
        final TreeMap<Long, OrgNodeInSet> map = new TreeMap<>();

        OrgParser.Builder parserBuilder = new OrgParser.Builder()
                .setTodoKeywords(new String[]{"TODO"})
                .setDoneKeywords(new String[]{"DONE"})
                .setInput(data)
                .setListener(new OrgNestedSetParserListener() {
                    @Override
                    public void onNode(OrgNodeInSet node) {
                        map.put(node.getLft(), node);
                    }

                    @Override
// Path: src/main/java/com/orgzly/org/OrgFile.java
// public class OrgFile {
// 
//     /** In-buffer settings. */
//     private OrgFileSettings settings;
// 
//     /** Text before the first heading. */
//     private String preface;
// 
//     public OrgFile() {
// 	}
// 
//     public OrgFileSettings getSettings() {
//         if (settings == null) {
//             settings = new OrgFileSettings();
//         }
//         return settings;
//     }
// 
//     /**
//      * @return Text before first {@link OrgHead} in the file.
//      */
//     public String getPreface() {
//         return preface != null ? preface : "";
//     }
// 
//     public void setPreface(String str) {
//         preface = str;
//     }
// 
//     public String toString() {
// 		return OrgFile.class.getSimpleName() + "[" + preface.length() + "]";
// 	}
// }


// Path: src/test/java/com/orgzly/org/parser/OrgNestedSetParserTest.java
import com.orgzly.org.OrgFile;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import java.io.IOException;
import java.util.Arrays;
import java.util.TreeMap;
import static org.junit.Assert.assertEquals;

                        "" +
                                " 1  2 \n"
                },
                {
                        "" +
                                "* A\n" +
                                "* B\n",
                        "" +
                                " 1  6 \n" +
                                " 2  3 * A\n" +
                                " 4  5 * B\n"
                }
        });
    }

    @Test
    public void testNestedSetModelParser() throws IOException {
        final TreeMap<Long, OrgNodeInSet> map = new TreeMap<>();

        OrgParser.Builder parserBuilder = new OrgParser.Builder()
                .setTodoKeywords(new String[]{"TODO"})
                .setDoneKeywords(new String[]{"DONE"})
                .setInput(data)
                .setListener(new OrgNestedSetParserListener() {
                    @Override
                    public void onNode(OrgNodeInSet node) {
                        map.put(node.getLft(), node);
                    }

                    @Override
                    public void onFile(OrgFile file) {