/**
  * Test to exclude low population filter
  */
 function test_filter_Lowpop1()
 {
     $idcol = Piwik_DataTable_Row::COLUMNS;
     $table = new Piwik_DataTable();
     $rows = array(array($idcol => array('label' => 'google', 'nb_visits' => 897)), array($idcol => array('label' => 'ask', 'nb_visits' => -152)), array($idcol => array('label' => 'piwik', 'nb_visits' => 1.5)), array($idcol => array('label' => 'piwik2', 'nb_visits' => 1.4)), array($idcol => array('label' => 'yahoo', 'nb_visits' => 154)), array($idcol => array('label' => 'amazon', 'nb_visits' => 30)), array($idcol => array('label' => '238949', 'nb_visits' => 0)), array($idcol => array('label' => 'Q*(%&*', 'nb_visits' => 1)), array($idcol => array('label' => 'Q*(%&*2', 'nb_visits' => -1.5)));
     $table->addRowsFromArray($rows);
     $expectedtable = new Piwik_DataTable();
     $rows = array(array($idcol => array('label' => 'google', 'nb_visits' => 897)), array($idcol => array('label' => 'piwik', 'nb_visits' => 1.5)), array($idcol => array('label' => 'piwik2', 'nb_visits' => 1.4)), array($idcol => array('label' => 'yahoo', 'nb_visits' => 154)), array($idcol => array('label' => 'amazon', 'nb_visits' => 30)));
     $expectedtable->addRowsFromArray($rows);
     $filter = new Piwik_DataTable_Filter_ExcludeLowPopulation($table, 'nb_visits', 1.4);
     $filter->filter($table);
     $this->assertTrue(Piwik_DataTable::isEqual($table, $expectedtable));
 }
 public function __construct($table, $columnToFilter, $minimumValue)
 {
     $this->columnToFilter = $columnToFilter;
     self::$minimumValue = $minimumValue;
     parent::__construct($table);
     $this->filter();
 }
 /**
  * Constructor
  *
  * @param Piwik_DataTable  $table
  * @param string           $columnToFilter              column to filter
  * @param number           $minimumValue                minimum value
  * @param bool             $minimumPercentageThreshold
  */
 public function __construct($table, $columnToFilter, $minimumValue, $minimumPercentageThreshold = false)
 {
     parent::__construct($table);
     $this->columnToFilter = $columnToFilter;
     if ($minimumValue == 0) {
         if ($minimumPercentageThreshold === false) {
             $minimumPercentageThreshold = self::MINIMUM_SIGNIFICANT_PERCENTAGE_THRESHOLD;
         }
         $allValues = $table->getColumn($this->columnToFilter);
         $sumValues = array_sum($allValues);
         $minimumValue = $sumValues * $minimumPercentageThreshold;
     }
     self::$minimumValue = $minimumValue;
 }