public function testIsFormulaValid()
 {
     $this->assertFalse(CalculatedNumberUtil::isFormulaValid('IF(4 + 5;"string";"")', 'TestOperatorTypeModel'));
     // Not Coding Standard
     $this->assertFalse(CalculatedNumberUtil::isFormulaValid('IF(4 >=! 5;"string";"")', 'TestOperatorTypeModel'));
     // Not Coding Standard
     $this->assertFalse(CalculatedNumberUtil::isFormulaValid('IF(4>=5;>string";"")', 'TestOperatorTypeModel'));
     // Not Coding Standard
     $this->assertFalse(CalculatedNumberUtil::isFormulaValid('IF(4>=5;"string":"")', 'TestOperatorTypeModel'));
     // Not Coding Standard
     $this->assertFalse(CalculatedNumberUtil::isFormulaValid('IF(4 == 5;"true string";"false string")', 'TestOperatorTypeModel'));
     // Not Coding Standard
     $this->assertTrue(CalculatedNumberUtil::isFormulaValid("IF(4 == 5;'true string';'false string')", 'TestOperatorTypeModel'));
     // Not Coding Standard
     $this->assertTrue(CalculatedNumberUtil::isFormulaValid('IF(4 <= 5;emailStandard;urlStandard)', 'TestOperatorTypeModel'));
     // Not Coding Standard
     $this->assertTrue(CalculatedNumberUtil::isFormulaValid('IF(4 < 5;emailStandard;urlStandard)', 'TestOperatorTypeModel'));
     // Not Coding Standard
     $this->assertTrue(CalculatedNumberUtil::isFormulaValid('IF(4 > 5;emailStandard;urlStandard)', 'TestOperatorTypeModel'));
     // Not Coding Standard
     $this->assertTrue(CalculatedNumberUtil::isFormulaValid('IF(4 >= 5;emailStandard;urlStandard)', 'TestOperatorTypeModel'));
     // Not Coding Standard
     $this->assertTrue(CalculatedNumberUtil::isFormulaValid('IF(4 != 5;emailStandard;urlStandard)', 'TestOperatorTypeModel'));
     // Not Coding Standard
     $this->assertTrue(CalculatedNumberUtil::isFormulaValid("IF(emailStandard == 'email';emailStandard;urlStandard)", 'TestOperatorTypeModel'));
     // Not Coding Standard
     $this->assertTrue(CalculatedNumberUtil::isFormulaValid('(4 + 5)', 'TestOperatorTypeModel'));
     $this->assertTrue(CalculatedNumberUtil::isFormulaValid('(integerStandard + 5)', 'TestOperatorTypeModel'));
     $this->assertTrue(CalculatedNumberUtil::isFormulaValid('(integerStandard + floatStandard)', 'TestOperatorTypeModel'));
     $this->assertFalse(CalculatedNumberUtil::isFormulaValid('(integerStandard + floatStandard + jj)', 'TestOperatorTypeModel'));
     $this->assertFalse(CalculatedNumberUtil::isFormulaValid(')4(', 'TestOperatorTypeModel'));
     $this->assertTrue(CalculatedNumberUtil::isFormulaValid('(integerStandard + integerS)', 'TestOperatorTypeModel'));
 }
 public function validateFormula($attribute, $params)
 {
     assert('$attribute == "formula"');
     assert('$this->modelClassName != null');
     if (!CalculatedNumberUtil::isFormulaValid($this->{$attribute}, $this->modelClassName)) {
         $this->addError('formula', Zurmo::t('DesignerModule', 'The formula is invalid.'));
     }
 }
 public function validateFormula($attribute, $params)
 {
     assert('$attribute == "formula"');
     assert('$this->modelClassName != null');
     $modelClassName = $this->modelClassName;
     $model = new $modelClassName(false);
     $adapter = new ModelNumberOrCurrencyAttributesAdapter($model);
     if (!CalculatedNumberUtil::isFormulaValid($this->{$attribute}, $adapter)) {
         $this->addError('formula', Zurmo::t('DesignerModule', 'The formula is invalid.'));
     }
 }
 public function testIsFormulaValid()
 {
     $model = new TestOperatorTypeModel();
     $adapter = new ModelNumberOrCurrencyAttributesAdapter($model);
     $this->assertTrue(CalculatedNumberUtil::isFormulaValid('(4 + 5)', $adapter));
     $this->assertTrue(CalculatedNumberUtil::isFormulaValid('(integerStandard + 5)', $adapter));
     $this->assertTrue(CalculatedNumberUtil::isFormulaValid('(integerStandard + floatStandard)', $adapter));
     $this->assertFalse(CalculatedNumberUtil::isFormulaValid('(integerStandard + floatStandard + jj)', $adapter));
     $this->assertFalse(CalculatedNumberUtil::isFormulaValid(')4(', $adapter));
 }