datatable.test.php

来自「一款可以和GOOGLE媲美的开源统计系统,运用AJAX.功能强大. 无色提示:」· PHP 代码 · 共 904 行 · 第 1/3 页

PHP
904
字号
	 	$rows = array(	  		array( $idcol => array('label'=>'google', 	'nb_visits' => 897)),//0	  		array( $idcol => array('label'=>'ask', 		'nb_visits' => -152)),//1	  		array( $idcol => array('label'=>'piwik', 	'nb_visits' => 1.5)),//2	  		array( $idcol => array('label'=>'yahoo', 	'nb_visits' => 154)),//3	  		array( $idcol => array('label'=>'amazon', 	'nb_visits' => 30)),//4	  		array( $idcol => array('label'=>'238949', 	'nb_visits' => 0)),//5	  		array( $idcol => array('label'=>'Q*(%&*', 	'nb_visits' => 1)),//6	  		);	  	$table->loadFromArray( $rows );	  		  	$expectedtable = new Piwik_DataTable;	 	$rows = array(	  		array( $idcol => array('label'=>'ask', 		'nb_visits' => -152)),//1	  		array( $idcol => array('label'=>'238949', 	'nb_visits' => 0)),//5	  		array( $idcol => array('label'=>'Q*(%&*', 	'nb_visits' => 1)),//6	  		array( $idcol => array('label'=>'piwik', 	'nb_visits' => 1.5)),//2	  		array( $idcol => array('label'=>'amazon', 	'nb_visits' => 30)),//4	  		array( $idcol => array('label'=>'yahoo', 	'nb_visits' => 154)),//3	  		array( $idcol => array('label'=>'google', 	'nb_visits' => 897)),//0	  		);	  	$expectedtable->loadFromArray( $rows );	  		  	$expectedtableReverse = new Piwik_DataTable;	  	$expectedtableReverse->loadFromArray(array_reverse($rows));	  		  		 	$filter = new Piwik_DataTable_Filter_Sort($table, 'nb_visits', 'asc');	  	$this->assertTrue(Piwik_DataTable::isEqual($table, $expectedtable));	  		  	$filter = new Piwik_DataTable_Filter_Sort($table, 'nb_visits', 'desc');	  	$this->assertTrue(Piwik_DataTable::isEqual($table, $expectedtableReverse));	 }			/**	 * 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)),//0	  		array( $idcol => array('label'=>'ask', 		'nb_visits' => -152)),//1	  		array( $idcol => array('label'=>'piwik', 	'nb_visits' => 1.5)),//2	  		array( $idcol => array('label'=>'piwik2', 	'nb_visits' => 1.4)),//2	  		array( $idcol => array('label'=>'yahoo', 	'nb_visits' => 154)),//3	  		array( $idcol => array('label'=>'amazon', 	'nb_visits' => 30)),//4	  		array( $idcol => array('label'=>'238949', 	'nb_visits' => 0)),//5	  		array( $idcol => array('label'=>'Q*(%&*', 	'nb_visits' => 1)),//6	  		array( $idcol => array('label'=>'Q*(%&*2', 	'nb_visits' => -1.5)),//6	  		);	  	$table->loadFromArray( $rows );	  		  	$expectedtable = new Piwik_DataTable;	 	$rows = array(	  		array( $idcol => array('label'=>'google', 	'nb_visits' => 897)),//0	 		array( $idcol => array('label'=>'piwik', 	'nb_visits' => 1.5)),//2	  		array( $idcol => array('label'=>'piwik2', 	'nb_visits' => 1.4)),//2	  		array( $idcol => array('label'=>'yahoo', 	'nb_visits' => 154)),//3	  		array( $idcol => array('label'=>'amazon', 	'nb_visits' => 30)),//4		);	  	$expectedtable->loadFromArray( $rows );	  		 	$filter = new Piwik_DataTable_Filter_ExcludeLowPopulation($table, 'nb_visits', 1.4);	  	$this->assertTrue(Piwik_DataTable::isEqual($table, $expectedtable));	 }			/**	 * for all datatable->addDatatable tests we check that	 * - row uniqueness is based on the label + presence of the SUBTABLE id	 * 		=> the label is the criteria used to match 2 rows in 2 datatable	 * - no metadata are lost in the first datatable rows that have been changed	 * - when a subtable	 */	 	 	/**     * add an empty datatable to a normal datatable     */    public function test_addSimpleNoRowTable2()	{		$table = $this->getDataTable1ForTest();	 	$tableEmpty = new Piwik_DataTable;	  	$tableAfter = clone $table;	  	$tableAfter->addDataTable($tableEmpty);	  	$this->assertTrue( Piwik_DataTable::isEqual($table, $tableAfter) );	}		/**     * add a normal datatable to an empty datatable     */    public function test_addSimpleNoRowTable1()	{ 			$table = $this->getDataTable1ForTest();	 	$tableEmpty = new Piwik_DataTable;	  	$tableAfter = clone $tableEmpty;	  	$tableEmpty->addDataTable($table);	  	$this->assertTrue( Piwik_DataTable::isEqual($tableEmpty, $table) );	}	/**     * add to the datatable another datatable// they don't have any row in common     */    public function test_addSimpleNoCommonRow()	{		$table1 = $this->getDataTable1ForTest();		$table2 = $this->getDataTable2ForTest();	  	  	$table1->addDataTable($table2);	  	  	$rowsExpected = array_merge($this->getRowsDataTable1ForTest(),$this->getRowsDataTable2ForTest());	  	$tableExpected = new Piwik_DataTable;	  	$tableExpected->loadFromArray( $rowsExpected );	  		  	$this->assertTrue( Piwik_DataTable::isEqual($table1, $tableExpected) );	}		/**     * add 2 datatable with some common rows      */    public function test_addSimpleSomeCommonRow()	{				$idcol = Piwik_DataTable_Row::COLUMNS;				$rows = array(	  		array( $idcol => array('label'=>'google', 'visits' => 1)),	  		array( $idcol => array('label'=>'ask', 'visits' => 2)),	  		array( $idcol => array('label'=>'123', 'visits' => 2)),	  		Piwik_DataTable::ID_SUMMARY_ROW => array( $idcol => array('label'=>Piwik_DataTable::LABEL_SUMMARY_ROW, 'visits' => 7))  		);	  		 	$table = new Piwik_DataTable;	  	$table->loadFromArray( $rows );	  		  			$rows2 = array(	  		array( $idcol => array('label'=>'test', 'visits' => 1)),	  		array( $idcol => array('label'=>'ask', 'visits' => 111)),	  		array( $idcol => array('label'=>' google ', 'visits' => 5)),	  		array( $idcol => array('label'=>'123', 'visits' => 2)),  		);	  		 	$table2 = new Piwik_DataTable;	  	$table2->loadFromArray( $rows2 );	  	  	$table->addDataTable($table2);	  		$rowsExpected = array(	  		array( $idcol => array('label'=>'google', 'visits' => 1)),	  		array( $idcol => array('label'=>'ask', 'visits' => 113)),	  		array( $idcol => array('label'=>'123', 'visits' => 4)),	  		array( $idcol => array('label'=>'test', 'visits' => 1)),	  		array( $idcol => array('label'=>' google ', 'visits' => 5)),	  		Piwik_DataTable::ID_SUMMARY_ROW => array( $idcol  => array('label'=>Piwik_DataTable::LABEL_SUMMARY_ROW, 'visits' => 7))  		);	  		  	$tableExpected = new Piwik_DataTable;	  	$tableExpected->loadFromArray( $rowsExpected );	  		  	$this->assertTrue( Piwik_DataTable::isEqual($table, $tableExpected) );	}		/**     * add 2 datatable with only common rows     */    public function test_addSimpleAllCommonRow()	{		$idcol = Piwik_DataTable_Row::COLUMNS;				$rows = array(	  		array( $idcol => array('label'=>'google', 'visits' => 1)),	  		array( $idcol => array('label'=>'ask', 'visits' => 2)),	  		array( $idcol => array('label'=>'123', 'visits' => 2)),	  		Piwik_DataTable::ID_SUMMARY_ROW => array( $idcol  => array('label'=>Piwik_DataTable::LABEL_SUMMARY_ROW, 'visits' => 7))  		);	  		 	$table = new Piwik_DataTable;	  	$table->loadFromArray( $rows );	  		  			$rows2 = array(	  		array( $idcol => array('label'=>'google', 'visits' => -1)),	  		array( $idcol => array('label'=>'ask', 'visits' => 0)),	  		array( $idcol => array('label'=>'123', 'visits' => 1.5)),	  		Piwik_DataTable::ID_SUMMARY_ROW => array( $idcol  => array('label'=>Piwik_DataTable::LABEL_SUMMARY_ROW, 'visits' => 8))  		);	  		 	$table2 = new Piwik_DataTable;	  	$table2->loadFromArray( $rows2 );	  	  	$table->addDataTable($table2);	  		$rowsExpected = array(	  		array( $idcol => array('label'=>'google', 'visits' => 0)),	  		array( $idcol => array('label'=>'ask', 'visits' => 2)),	  		array( $idcol => array('label'=>'123', 'visits' => 3.5)),	  		Piwik_DataTable::ID_SUMMARY_ROW => array( $idcol  => array('label'=>Piwik_DataTable::LABEL_SUMMARY_ROW, 'visits' => 15))  		);	  		  	$tableExpected = new Piwik_DataTable;	  	$tableExpected->loadFromArray( $rowsExpected );	  		  	$this->assertTrue( Piwik_DataTable::isEqual($table, $tableExpected) );	}		/**	 * test add 2 different tables to the same table	 */    public function test_addDataTable2times()	{	 		$idcol = Piwik_DataTable_Row::COLUMNS;				$rows = array(	  		array( $idcol => array('label'=>'google', 'visits' => 1)),	  		array( $idcol => array('label'=>'ask', 'visits' => 0)),	  		array( $idcol => array('label'=>'123', 'visits' => 2)),	  		Piwik_DataTable::ID_SUMMARY_ROW => array( $idcol  => array('label'=>Piwik_DataTable::LABEL_SUMMARY_ROW, 'visits' => 1))  		);	  		 	$table = new Piwik_DataTable;	  	$table->loadFromArray( $rows );	  		  			$rows2 = array(	  		array( $idcol => array('label'=>'google2', 'visits' => -1)),	  		array( $idcol => array('label'=>'ask', 'visits' => 100)),	  		array( $idcol => array('label'=>'123456', 'visits' => 1.5)),  		);	  		 	$table2 = new Piwik_DataTable;	  	$table2->loadFromArray( $rows2 );	  	  			$rows3 = array(	  		array( $idcol => array('label'=>'google2', 'visits' => -1)),	  		array( $idcol => array('label'=>'ask', 'visits' => -10)),	  		array( $idcol => array('label'=>'123ab', 'visits' => 1.5)),	  		Piwik_DataTable::ID_SUMMARY_ROW => array( $idcol  => array('label'=>Piwik_DataTable::LABEL_SUMMARY_ROW, 'visits' => 3))  		);	  		 	$table3 = new Piwik_DataTable;	  	$table3->loadFromArray( $rows3 );	  			// add the 2 tables	  	$table->addDataTable($table2);	  	$table->addDataTable($table3);	  		$rowsExpected = array(	  		array( $idcol => array('label'=>'google', 'visits' => 1)),	  		array( $idcol => array('label'=>'ask', 'visits' => 90)),	  		array( $idcol => array('label'=>'123', 'visits' => 2)),	  		array( $idcol => array('label'=>'google2', 'visits' => -2)),	  		array( $idcol => array('label'=>'123456', 'visits' => 1.5)),	  		array( $idcol => array('label'=>'123ab', 'visits' => 1.5)),	  		Piwik_DataTable::ID_SUMMARY_ROW => array( $idcol  => array('label'=>Piwik_DataTable::LABEL_SUMMARY_ROW, 'visits' => 4))  		);	  	$tableExpected = new Piwik_DataTable;	  	$tableExpected->loadFromArray( $rowsExpected );	  		  	$this->assertTrue( Piwik_DataTable::isEqual($table, $tableExpected) );	}		protected function getDataTable1ForTest()	{		$rows = $this->getRowsDataTable1ForTest();	 	$table = new Piwik_DataTable;	  	$table->loadFromArray( $rows );	  	return $table;	}	protected function getDataTable2ForTest()	{		$rows = $this->getRowsDataTable2ForTest();		 	$table = new Piwik_DataTable;	  	$table->loadFromArray( $rows );	  	return $table;	}		protected function getRowsDataTable1ForTest()	{		$rows = array(	  		array( Piwik_DataTable_Row::COLUMNS => array('label'=>'google', 'visits' => 1)),	  		array( Piwik_DataTable_Row::COLUMNS => array('label'=>'ask', 'visits' => 2)),	  		array( Piwik_DataTable_Row::COLUMNS => array('label'=>'123', 'visits' => 2)),	  		Piwik_DataTable::ID_SUMMARY_ROW => array( Piwik_DataTable_Row::COLUMNS  => array('label'=>Piwik_DataTable::LABEL_SUMMARY_ROW, 'visits' => 4))	  		  		);  		return $rows;	  		}	protected function getRowsDataTable2ForTest()	{		$rows = array(	  		array( Piwik_DataTable_Row::COLUMNS => array('label'=>'test', 'visits' => 1)),	  		array( Piwik_DataTable_Row::COLUMNS => array('label'=>' google ', 'visits' => 3)),	  		array( Piwik_DataTable_Row::COLUMNS => array('label'=>'123a', 'visits' => 2)),  		);  		return $rows;	  		}	}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?