All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.evosuite.symbolic.expr.Operator Maven / Gradle / Ivy

The newest version!
/**
 * Copyright (C) 2010-2018 Gordon Fraser, Andrea Arcuri and EvoSuite
 * contributors
 *
 * This file is part of EvoSuite.
 *
 * EvoSuite is free software: you can redistribute it and/or modify it
 * under the terms of the GNU Lesser General Public License as published
 * by the Free Software Foundation, either version 3.0 of the License, or
 * (at your option) any later version.
 *
 * EvoSuite 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 General Public
 * License along with EvoSuite. If not, see .
 */
//
//Copyright (C) 2005 United States Government as represented by the
//Administrator of the National Aeronautics and Space Administration
//(NASA).  All Rights Reserved.
//
//This software is distributed under the NASA Open Source Agreement
//(NOSA), version 1.3.  The NOSA has been approved by the Open Source
//Initiative.  See the file NOSA-1.3-JPF at the top of the distribution
//directory tree for the complete NOSA document.
//
//THE SUBJECT SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY OF ANY
//KIND, EITHER EXPRESSED, IMPLIED, OR STATUTORY, INCLUDING, BUT NOT
//LIMITED TO, ANY WARRANTY THAT THE SUBJECT SOFTWARE WILL CONFORM TO
//SPECIFICATIONS, ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR
//A PARTICULAR PURPOSE, OR FREEDOM FROM INFRINGEMENT, ANY WARRANTY THAT
//THE SUBJECT SOFTWARE WILL BE ERROR FREE, OR ANY WARRANTY THAT
//DOCUMENTATION, IF PROVIDED, WILL CONFORM TO THE SUBJECT SOFTWARE.
//
package org.evosuite.symbolic.expr;
public enum Operator {

	//ALL with ### are not yet implemented in the execute of the according expression
	// Simple operators
	NEG("-",1),//negate
	DIV("/", 2), //
	MUL("*", 2), //
	MINUS("-", 2), //
	PLUS("+", 2), //
	REM("%",2),//Remainder

	// Logical operators
	AND("&", 2), //
	OR("|", 2), //
	XOR("^", 2), //

	// special operators
	D2L("d2l", 1), // isn't used anywhere
	L2D("l2d", 1), // isn't used anywhere
	CMP("cmp", 2), // this is automatically removed so don't need it in execute

	// Integer operators
	IAND("iand", 2), //
	IOR("ior", 2), //
	SHR("ishr", 2), //
	SHL("ishl", 2), //
	USHR("iushr", 2), //
	IXOR("ixor", 2), //

	// More complex Math operators
	
	//Unary
	ABS("abs", 1), // 
	ACOS("acos", 1), // 
	ASIN("asin", 1), // 
	ATAN("atan", 1), // 
	CBRT("cbrt", 1), // 
	CEIL("ceil",1), // 
	COS("cos", 1), // 
	COSH("cosh", 1), // 
	EXP("exp", 1), // 
	EXPM1("expm1", 1), // 
	FLOOR("floor",1), // 
	GETEXPONENT("getExponent", 1), //  
	LOG("log", 1), // 
	LOG10("log10", 1), // 
	LOG1P("log1p", 1), // 
	NEXTUP("nextUp", 1), // 
	RINT("rint", 1), // 
	ROUND("round", 1), // this is never used
	SIGNUM("signum", 1), // 
	SIN("sin", 1), // 
	SINH("sinh", 1), // 
	SQRT("sqrt", 1), // 
	TAN("tan", 1), // 
	TANH("tanh", 1), // 
	TODEGREES("toDegrees", 1), // 
	TORADIANS("toRadians", 1), // 
	ULP("ulp", 1), // 
	
	//Binary
	ATAN2("atan2", 2), // ###
	COPYSIGN("copySign", 2), // ###
	HYPOT("hypot", 2), // ###
	IEEEREMAINDER("IEEEremainder", 2), // ###
	MAX("max", 2), // ###
	MIN("min", 2), // ###
	NEXTAFTER("nextAfter", 2), // ###
	POW("pow", 2), // ###
	SCALB("scalb", 2), // ###
	
	
	// String comparisons
	EQUALSIGNORECASE("equalsIgnoreCase", 2),
	EQUALS("equals", 2),
	ENDSWITH("endsWith", 2),
	CONTAINS("contains", 2),
	STARTSWITH("startsWith", 3),
	REGIONMATCHES("regionMatches", 6), 
	PATTERNMATCHES("patternMatches", 2), 
	APACHE_ORO_PATTERN_MATCHES("apacheOroPatternMatches", 2), 

	// character operators
	ISLETTER("isLetter",1),
	ISDIGIT("isDigit",1),
	GETNUMERICVALUE("getNumericValue",1),

	// String operators
	TRIM("trim", 1), 
	LENGTH("length", 1), 
	TOLOWERCASE("toLowerCase", 1), 
	TOUPPERCASE("toUpperCase", 1),
	IS_INTEGER("isInteger", 1),
	
	COMPARETO("compareTo", 2), 
	COMPARETOIGNORECASE("compareToIgnoreCase", 2),
	CONCAT("concat", 2), 
	
	APPEND_BOOLEAN("append_boolean", 2), 
	APPEND_STRING("append_String", 2), 
	APPEND_REAL("append_Real",2),
	APPEND_INTEGER("append_Integer", 2), 
	APPEND_CHAR("append_Char", 2), 

	INDEXOFC("indexOfC", 2),
	INDEXOFS("indexOfS", 2),
	LASTINDEXOFC("lastIndexOfC", 2),
	LASTINDEXOFS("lastIndexOfS", 2),
	CHARAT("charAt", 2),
	
	REPLACEC("replacec", 3),
	REPLACECS("replacecs", 3), 
	REPLACEALL("replaceAll", 3),
	REPLACEFIRST("replaceFirst", 3),
	INDEXOFCI("indexOfCI", 3),
	INDEXOFSI("indexOfSI", 3),
	LASTINDEXOFCI("lastIndexOfCI", 3),
	LASTINDEXOFSI("lastIndexOfSI", 3),
	SUBSTRING("substring", 3);
	

	
	private final String str;
	private final int arity;

	Operator(String str, int arity) {
		this.str = str;
		this.arity = arity;
	}

	/**
	 * 

Getter for the field arity.

* * @return a int. */ public int getArity() { return arity; } /** {@inheritDoc} */ @Override public String toString() { return " " + str + " "; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy