// Path: src/main/java/org/logic2j/core/api/model/Operator.java
// public final class Operator implements Serializable {
//   private static final long serialVersionUID = 1L;
// 
//   // TODO Probably this should become an enum
//   public static final String FX = "fx"; // prefix non-associative - (i.e. --5 not possible)
//   public static final String FY = "fy"; // prefix associative
//   public static final String XF = "xf"; // postfix non-associative
//   public static final String XFX = "xfx"; // infix non-associative =, is, < (i.e. no nesting)
//   public static final String XFY = "xfy"; // infix right-associative , (for subgoals)
//   public static final String YF = "yf"; // postfix associative
//   public static final String YFX = "yfx"; // infix left-associative +, -, *
//   public static final String YFY = "yfy"; // makes no sense, structuring would be impossible
// 
//   /**
//    * highest operator precedence
//    */
//   public static final int OP_HIGHEST = 1200;
//   /**
//    * lowest operator precedence
//    */
//   public static final int OP_LOWEST = 1;
// 
//   /**
//    * operator text representation
//    */
//   private final String text;
// 
//   /**
//    * precedence
//    */
//   private final int precedence;
// 
//   /**
//    * xf, yf, fx, fy, xfx, xfy, yfx, (yfy)
//    */
//   private final String associativity;
// 
//   public Operator(String theText, String theAssociativity, int thePrecedence) {
//     this.text = theText;
//     this.associativity = theAssociativity;
//     this.precedence = thePrecedence;
//   }
// 
//   // ---------------------------------------------------------------------------
//   // Getters
//   // ---------------------------------------------------------------------------
// 
// 
//   public String getText() {
//     return text;
//   }
// 
//   public int getPrecedence() {
//     return precedence;
//   }
// 
//   public String getAssociativity() {
//     return associativity;
//   }
// }
// 
// Path: src/main/java/org/logic2j/core/impl/PrologReferenceImplementation.java
// public enum InitLevel {
//   /**
//    * A completely bare prolog engine, not functional for running programs (misses core predicates such as true/1, fail/1, !/1 (cut),
//    * =/2, call/1, not/1, etc. Yet unification and inference of user predicates will work. No libraries loaded at all.
//    */
//   L0_BARE,
//   /**
//    * This is the default initialization level, it loads the {@link org.logic2j.core.library.impl.CoreLibrary},
//    * containing (among others), core predicates such as
//    * true/1, fail/1, !/1 (cut), =/2, call/1, not/1, findall/3, etc.
//    */
//   L1_CORE_LIBRARY,
//   /**
//    * Higher level libraries loaded, such as {@link org.logic2j.core.library.impl.IOLibrary}.
//    */
//   L2_BASE_LIBRARIES,
// }


import static org.assertj.core.api.Assertions.assertThat;
import org.junit.Test;
import org.logic2j.core.api.model.Operator;
import org.logic2j.core.impl.PrologReferenceImplementation.InitLevel;
/*
 * logic2j - "Bring Logic to your Java" - Copyright (c) 2017 Laurent.Tettoni@gmail.com
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Foobar is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser Public License for more details.
 *
 * You should have received a copy of the GNU Lesser Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
package org.logic2j.core;



/**
 * Test parsing and formatting.
 */
public class ParsingAndFormattingTest extends PrologTestBase {
  private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(ParsingAndFormattingTest.class);

  /**
   * No need for special init for only testing parsing and formatting.
   */
  @Override
  protected InitLevel initLevel() {
// Path: src/main/java/org/logic2j/core/api/model/Operator.java
// public final class Operator implements Serializable {
//   private static final long serialVersionUID = 1L;
// 
//   // TODO Probably this should become an enum
//   public static final String FX = "fx"; // prefix non-associative - (i.e. --5 not possible)
//   public static final String FY = "fy"; // prefix associative
//   public static final String XF = "xf"; // postfix non-associative
//   public static final String XFX = "xfx"; // infix non-associative =, is, < (i.e. no nesting)
//   public static final String XFY = "xfy"; // infix right-associative , (for subgoals)
//   public static final String YF = "yf"; // postfix associative
//   public static final String YFX = "yfx"; // infix left-associative +, -, *
//   public static final String YFY = "yfy"; // makes no sense, structuring would be impossible
// 
//   /**
//    * highest operator precedence
//    */
//   public static final int OP_HIGHEST = 1200;
//   /**
//    * lowest operator precedence
//    */
//   public static final int OP_LOWEST = 1;
// 
//   /**
//    * operator text representation
//    */
//   private final String text;
// 
//   /**
//    * precedence
//    */
//   private final int precedence;
// 
//   /**
//    * xf, yf, fx, fy, xfx, xfy, yfx, (yfy)
//    */
//   private final String associativity;
// 
//   public Operator(String theText, String theAssociativity, int thePrecedence) {
//     this.text = theText;
//     this.associativity = theAssociativity;
//     this.precedence = thePrecedence;
//   }
// 
//   // ---------------------------------------------------------------------------
//   // Getters
//   // ---------------------------------------------------------------------------
// 
// 
//   public String getText() {
//     return text;
//   }
// 
//   public int getPrecedence() {
//     return precedence;
//   }
// 
//   public String getAssociativity() {
//     return associativity;
//   }
// }
// 
// Path: src/main/java/org/logic2j/core/impl/PrologReferenceImplementation.java
// public enum InitLevel {
//   /**
//    * A completely bare prolog engine, not functional for running programs (misses core predicates such as true/1, fail/1, !/1 (cut),
//    * =/2, call/1, not/1, etc. Yet unification and inference of user predicates will work. No libraries loaded at all.
//    */
//   L0_BARE,
//   /**
//    * This is the default initialization level, it loads the {@link org.logic2j.core.library.impl.CoreLibrary},
//    * containing (among others), core predicates such as
//    * true/1, fail/1, !/1 (cut), =/2, call/1, not/1, findall/3, etc.
//    */
//   L1_CORE_LIBRARY,
//   /**
//    * Higher level libraries loaded, such as {@link org.logic2j.core.library.impl.IOLibrary}.
//    */
//   L2_BASE_LIBRARIES,
// }


// Path: src/test/java/org/logic2j/core/ParsingAndFormattingTest.java
import static org.assertj.core.api.Assertions.assertThat;
import org.junit.Test;
import org.logic2j.core.api.model.Operator;
import org.logic2j.core.impl.PrologReferenceImplementation.InitLevel;

/*
 * logic2j - "Bring Logic to your Java" - Copyright (c) 2017 Laurent.Tettoni@gmail.com
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Foobar is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser Public License for more details.
 *
 * You should have received a copy of the GNU Lesser Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
package org.logic2j.core;



/**
 * Test parsing and formatting.
 */
public class ParsingAndFormattingTest extends PrologTestBase {
  private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(ParsingAndFormattingTest.class);

  /**
   * No need for special init for only testing parsing and formatting.
   */
  @Override
  protected InitLevel initLevel() {
    return InitLevel.L0_BARE;