function test($data_xmin, $data_xmax, $data_ymin, $data_ymax) { global $test_verbose, $n_tests, $n_pass, $n_fail; $n_tests++; $q = compact('data_xmin', 'data_ymin', 'data_xmax', 'data_ymax'); $title = "({$data_xmin}, {$data_ymin}) : ({$data_xmax}, {$data_ymax})"; if ($test_verbose) { testin($q); } $p = new PHPlot_test(); $p->SetDataValues(array(array('', $data_xmin, $data_ymin), array('', $data_xmax, $data_ymax))); $p->SetDataType('data-data'); $p->SetPlotType('lines'); $p->test_CalcPlotAreaWorld(); # This returns an array with several protected variables: plot_xmin, # plot_xmax, plot_ymin, plot_ymax, xtick, ytick: $p->test_GetVars($q); # Calculate number of tick intervals: $q['nxtick'] = (int) (1.001 * ($q['plot_xmax'] - $q['plot_xmin']) / $q['xtick']); $q['nytick'] = (int) (1.001 * ($q['plot_ymax'] - $q['plot_ymin']) / $q['ytick']); if ($test_verbose) { testout($q); } $result = validate($q); if (empty($result)) { $n_pass++; } else { $n_fail++; echo "Failed test case {$n_tests}: {$title}\n{$result}\n"; } }