Exemple #1
0
function testBinary($cnx, $values, $type, $options = array(), $msg = '')
{
    echo '==================================' . CLI_EOL;
    echo 'Test ' . $type . ' ' . $msg . CLI_EOL;
    $tt = strtolower($type);
    $rexp = create_REXP($values, $type, $options);
    $bin = Rserve_Parser::createBinary($rexp);
    //var_dump($bin);
    $i = 0;
    echo "Debug REXP" . CLI_EOL;
    var_dump(Rserve_Parser::parseDebug($bin, $i));
    $i = 0;
    echo "binary to REXP" . CLI_EOL;
    $r2 = Rserve_Parser::parseREXP($bin, $i);
    var_dump($r2);
    $cn2 = get_class($r2);
    $cn = get_class($rexp);
    if (strtolower($cn2) != strtolower($cn)) {
        echo 'Differentes classes' . CLI_EOL;
        return FALSE;
    } else {
        echo 'Class Type ok' . CLI_EOL;
    }
    $r = $cnx->assign('x', $rexp);
    if ($r['is_error']) {
        echo $cnx->getErrorMessage($r['error']);
    } else {
        echo "OK";
    }
    echo CLI_EOL;
    echo "Check R object" . CLI_EOL;
    $r = $cnx->evalString('x');
    var_dump($r);
}
Exemple #2
0
function testBinary($values, $type, $options = array(), $msg = '')
{
    echo 'Test ' . $type . ' ' . $msg . '<br/>';
    $cn = 'Rserve_REXP_' . $type;
    $r = new $cn();
    $tt = strtolower($type);
    if (is_subclass_of($r, 'Rserve_REXP_Vector')) {
        if (is_subclass_of($r, 'Rserve_REXP_List') and @$options['named']) {
            $r->setValues($values, TRUE);
        } else {
            $r->setValues($values);
        }
    } else {
        $r->setValue($values);
    }
    $bin = Rserve_Parser::createBinary($r);
    var_dump(Rserve_Parser::parseDebug($bin, 0));
    $r2 = Rserve_Parser::parseREXP($bin, 0);
    var_dump($r2);
    $cn2 = get_class($r2);
    if (strtolower($cn2) != strtolower($cn)) {
        echo 'Differentes classes';
        return FALSE;
    } else {
        echo 'Class Type ok';
    }
}
Exemple #3
0
 /**
  * @dataProvider providerTestParser
  * @param unknown_type $type
  * @param unknown_type $values
  */
 public function testParser($type, $values)
 {
     $rexp = $this->create_REXP($values, $type);
     $bin = Rserve_Parser::createBinary($rexp);
     $r2 = Rserve_Parser::parseREXP($bin, $i);
     $this->assertEquals(get_class($rexp), get_class($r2));
     $this->assertEquals($rexp->getValues(), $r2->getValues());
 }
Exemple #4
0
 /**
  * Assign a value to a symbol in R
  * @param string $symbol name of the variable to set (should be compliant with R syntax !)
  * @param Rserve_REXP $value value to set
  */
 public function assign($symbol, Rserve_REXP $value)
 {
     $symbol = (string) $symbol;
     $data = _rserve_make_data(self::DT_STRING, $symbol);
     $bin = Rserve_Parser::createBinary($value);
     $data .= _rserve_make_data(self::DT_SEXP, $bin);
     $r = $this->sendCommand(self::CMD_assignSEXP, $data);
     return $r;
 }