public function testCanSeeIfArrayContainsValue() { $true = Arrays::contains(array(1, 2, 3), 2); $false = Arrays::contains(array(1, 2, 3), 5); $this->assertTrue($true); $this->assertFalse($false); }
/** * Find all k-mer motifs - input dna,k,d - output * @param array $lines * @return array */ public function compute(array $lines) { list($k, $d) = array_map(function ($val) { return (int) $val; }, explode(' ', $lines[0])); $strings = []; $l = count($lines); for ($i = 1; $i < $l; $i++) { if (!empty($lines[$i])) { array_push($strings, $lines[$i]); } } $motifs = []; for ($i = 0; $i < strlen($strings[0]) - $k + 1; $i++) { $patt = substr($strings[0], $i, $k); $neighbors = BioUtil::neighbors($patt, $d); foreach ($neighbors as $nb) { if (Arrays::matches($strings, function ($str) use($nb, $d) { return BioUtil::approximate_frequency($str, $nb, $d, true) > 0; }) && !Arrays::contains($motifs, $nb)) { array_push($motifs, $nb); } } } return $motifs; }
function validate_format() { return Object::values(Arrays::clean(Arrays::each($this->values(), function ($value, $key) { $field = $this->get_fields()[$key]; if (empty($value)) { if (isset($field['required']) && $field['required']) { return $this->build_error('invalid', array('%field%' => $field['label'])); } } else { switch ($field['type']) { case 'string': if (isset($field['maxlength'])) { $maxlength = $field['maxlength']; if (strlen($value) > $maxlength) { return $this->build_error('invalid', array('%field%' => $field['label'], '%maxlength%' => $maxlength)); } } break; case 'email': if (!filter_var($value, FILTER_VALIDATE_EMAIL)) { return $this->build_error('invalid', array('%field%' => $field['label'])); } break; case 'number': if (!is_numeric($value)) { return $this->build_error('invalid', array('%field%' => $field['label'])); } else { $value = intval($value); if (isset($field['minvalue']) && isset($field['maxvalue'])) { $min = $field['minvalue']; $max = $field['maxvalue']; if ($value < $min || $max < $value) { return $this->build_error('range', array('%field%' => $field['label'], '%minvalue%' => $min, '%maxvalue%' => $max)); } } else { if (isset($field['minvalue'])) { $min = $field['minvalue']; if ($value < $min) { return $this->build_error('minvalue', array('%field%' => $field['label'], '%minvalue%' => $min)); } } else { if (isset($field['maxvalue'])) { $max = $field['maxvalue']; if ($max < $value) { return $this->build_error('maxvalue', array('%field%' => $field['label'], '%maxvalue%' => $max)); } } else { if (isset($field['select'])) { if (!Arrays::contains($field['select'], $value)) { return $this->build_error('select', array('%field%' => $field['label'], '%select%' => implode(', ', $field['select']))); } } } } } } break; } } }))); }