Package org.apache.poi.hssf.record.formula.eval

Examples of org.apache.poi.hssf.record.formula.eval.StringEval


  public void testCountifEmptyStringCriteria() {
    I_MatchPredicate mp;

    // pred '=' matches blank cell but not empty string
    mp = createCriteriaPredicate(new StringEval("="));
    confirmPredicate(false, mp, "");
    confirmPredicate(true, mp, NULL);

    // pred '' matches both blank cell but not empty string
    mp = createCriteriaPredicate(new StringEval(""));
    confirmPredicate(true, mp, "");
    confirmPredicate(true, mp, NULL);

    // pred '<>' matches empty string but not blank cell
    mp = createCriteriaPredicate(new StringEval("<>"));
    confirmPredicate(false, mp, NULL);
    confirmPredicate(true, mp, "");
  }
View Full Code Here


  }

  public void testCountifComparisons() {
    I_MatchPredicate mp;

    mp = createCriteriaPredicate(new StringEval(">5"));
    confirmPredicate(false, mp, 4);
    confirmPredicate(false, mp, 5);
    confirmPredicate(true, mp, 6);

    mp = createCriteriaPredicate(new StringEval("<=5"));
    confirmPredicate(true, mp, 4);
    confirmPredicate(true, mp, 5);
    confirmPredicate(false, mp, 6);
    confirmPredicate(false, mp, "4.9");
    confirmPredicate(false, mp, "4.9t");
    confirmPredicate(false, mp, "5.1");
    confirmPredicate(false, mp, NULL);

    mp = createCriteriaPredicate(new StringEval("=abc"));
    confirmPredicate(true, mp, "abc");

    mp = createCriteriaPredicate(new StringEval("=42"));
    confirmPredicate(false, mp, 41);
    confirmPredicate(true, mp, 42);
    confirmPredicate(true, mp, "42");

    mp = createCriteriaPredicate(new StringEval(">abc"));
    confirmPredicate(false, mp, 4);
    confirmPredicate(false, mp, "abc");
    confirmPredicate(true, mp, "abd");

    mp = createCriteriaPredicate(new StringEval(">4t3"));
    confirmPredicate(false, mp, 4);
    confirmPredicate(false, mp, 500);
    confirmPredicate(true, mp, "500");
    confirmPredicate(true, mp, "4t4");
  }
View Full Code Here

   * propagate to the COUNTIF result).
   */
  public void testCountifErrorCriteria() {
    I_MatchPredicate mp;

    mp = createCriteriaPredicate(new StringEval("#REF!"));
    confirmPredicate(false, mp, 4);
    confirmPredicate(false, mp, "#REF!");
    confirmPredicate(true, mp, ErrorEval.REF_INVALID);

    mp = createCriteriaPredicate(new StringEval("<#VALUE!"));
    confirmPredicate(false, mp, 4);
    confirmPredicate(false, mp, "#DIV/0!");
    confirmPredicate(false, mp, "#REF!");
    confirmPredicate(true, mp, ErrorEval.DIV_ZERO);
    confirmPredicate(false, mp, ErrorEval.REF_INVALID);

    // not quite an error literal, should be treated as plain text
    mp = createCriteriaPredicate(new StringEval("<=#REF!a"));
    confirmPredicate(false, mp, 4);
    confirmPredicate(true, mp, "#DIV/0!");
    confirmPredicate(true, mp, "#REF!");
    confirmPredicate(false, mp, ErrorEval.DIV_ZERO);
    confirmPredicate(false, mp, ErrorEval.REF_INVALID);
View Full Code Here

  }

  public void testWildCards() {
    I_MatchPredicate mp;

    mp = createCriteriaPredicate(new StringEval("a*b"));
    confirmPredicate(false, mp, "abc");
    confirmPredicate(true, mp, "ab");
    confirmPredicate(true, mp, "axxb");
    confirmPredicate(false, mp, "xab");

    mp = createCriteriaPredicate(new StringEval("a?b"));
    confirmPredicate(false, mp, "abc");
    confirmPredicate(false, mp, "ab");
    confirmPredicate(false, mp, "axxb");
    confirmPredicate(false, mp, "xab");
    confirmPredicate(true, mp, "axb");

    mp = createCriteriaPredicate(new StringEval("a~?"));
    confirmPredicate(false, mp, "a~a");
    confirmPredicate(false, mp, "a~?");
    confirmPredicate(true, mp, "a?");

    mp = createCriteriaPredicate(new StringEval("~*a"));
    confirmPredicate(false, mp, "~aa");
    confirmPredicate(false, mp, "~*a");
    confirmPredicate(true, mp, "*a");

    mp = createCriteriaPredicate(new StringEval("12?12"));
    confirmPredicate(false, mp, 12812);
    confirmPredicate(true, mp, "12812");
    confirmPredicate(false, mp, "128812");
  }
View Full Code Here

  }
  public void testNotQuiteWildCards() {
    I_MatchPredicate mp;

    // make sure special reg-ex chars are treated like normal chars
    mp = createCriteriaPredicate(new StringEval("a.b"));
    confirmPredicate(false, mp, "aab");
    confirmPredicate(true, mp, "a.b");


    mp = createCriteriaPredicate(new StringEval("a~b"));
    confirmPredicate(false, mp, "ab");
    confirmPredicate(false, mp, "axb");
    confirmPredicate(false, mp, "a~~b");
    confirmPredicate(true, mp, "a~b");

    mp = createCriteriaPredicate(new StringEval(">a*b"));
    confirmPredicate(false, mp, "a(b");
    confirmPredicate(true, mp, "aab");
    confirmPredicate(false, mp, "a*a");
    confirmPredicate(true, mp, "a*c");
  }
 
View Full Code Here

  private static void confirmPredicate(boolean expectedResult, I_MatchPredicate matchPredicate, int value) {
    assertEquals(expectedResult, matchPredicate.matches(new NumberEval(value)));
  }
  private static void confirmPredicate(boolean expectedResult, I_MatchPredicate matchPredicate, String value) {
    ValueEval ev = value == null ? BlankEval.instance : new StringEval(value);
    assertEquals(expectedResult, matchPredicate.matches(ev));
  }
View Full Code Here

    int cellType = cell.getCellType();
    switch (cellType) {
      case Cell.CELL_TYPE_NUMERIC:
        return new NumberEval(cell.getNumericCellValue());
      case Cell.CELL_TYPE_STRING:
        return new StringEval(cell.getStringCellValue());
      case Cell.CELL_TYPE_BOOLEAN:
        return BoolEval.valueOf(cell.getBooleanCellValue());
      case Cell.CELL_TYPE_BLANK:
        return BlankEval.INSTANCE;
      case Cell.CELL_TYPE_ERROR:
View Full Code Here

    }
    if (ptg instanceof NumberPtg) {
      return new NumberEval(((NumberPtg)ptg).getValue());
    }
    if (ptg instanceof StringPtg) {
      return new StringEval(((StringPtg) ptg).getValue());
    }
    if (ptg instanceof BoolPtg) {
      return BoolEval.valueOf(((BoolPtg) ptg).getValue());
    }
    if (ptg instanceof ErrPtg) {
View Full Code Here

      case HSSFCell.CELL_TYPE_FORMULA:
        return _evaluator.evaluate(cell);
      case HSSFCell.CELL_TYPE_NUMERIC:
        return new NumberEval(cell.getNumericCellValue());
      case HSSFCell.CELL_TYPE_STRING:
        return new StringEval(cell.getStringCellValue());
      case HSSFCell.CELL_TYPE_BLANK:
        return null;
    }
    throw new IllegalStateException("Bad cell type (" + cell.getCellType() + ")");
  }
View Full Code Here

    if (ve instanceof NumericValueEval) {
      return ((NumericValueEval) ve).getNumberValue();
    }
    if (ve instanceof StringEval) {
      StringEval se = (StringEval) ve;
      Double d = OperandResolver.parseDouble(se.getStringValue());
      if(d == null) {
        throw new EvaluationException(ErrorEval.VALUE_INVALID);
      }
      return d.doubleValue();
    }
View Full Code Here

TOP

Related Classes of org.apache.poi.hssf.record.formula.eval.StringEval

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.