PMCORE-508:Create the pmfunction PMFTotalCalculation( "GRID_ID" , "COLUMN" , "FUNCTION" ) to get the total calculation of columns
Correction unit test Coverage Median Par Minimun Test
This commit is contained in:
@@ -0,0 +1,260 @@
|
||||
<?php
|
||||
|
||||
namespace Tests\unit\workflow\engine\classes\PmFunctions;
|
||||
|
||||
use Faker\Factory;
|
||||
use Tests\TestCase;
|
||||
|
||||
/**
|
||||
* Test the PMFTotalCalculation() function
|
||||
*
|
||||
* @link https://wiki.processmaker.com/3.1/ProcessMaker_Functions#executeQuery.28.29
|
||||
*/
|
||||
class PMFTotalCalculationTest extends TestCase
|
||||
{
|
||||
/**
|
||||
* This tests if the "PMFTotalCalculation" execute correctly the sum
|
||||
* @test
|
||||
*/
|
||||
public function it_must_return_the_sum_of_the_method()
|
||||
{
|
||||
$grid = [
|
||||
'1' => [
|
||||
"field1" => "Value 1",
|
||||
"field2" => 2
|
||||
],
|
||||
'2' => [
|
||||
"field1" => "Value 2",
|
||||
"field2" => 5
|
||||
],
|
||||
'3' => [
|
||||
"field1" => "Value 3",
|
||||
"field2" => 3
|
||||
]
|
||||
];
|
||||
$field = "field2";
|
||||
$this->assertEquals(10, PMFTotalCalculation($grid, $field, 'sum'));
|
||||
}
|
||||
/**
|
||||
* This tests if the "PMFTotalCalculation" execute correctly the average
|
||||
* @test
|
||||
*/
|
||||
public function it_must_return_the_average_of_the_method()
|
||||
{
|
||||
$grid = [
|
||||
'1' => [
|
||||
"field1" => "Value 1",
|
||||
"field2" => 2
|
||||
],
|
||||
'2' => [
|
||||
"field1" => "Value 2",
|
||||
"field2" => 5
|
||||
],
|
||||
'3' => [
|
||||
"field1" => "Value 3",
|
||||
"field2" => 3
|
||||
]
|
||||
];
|
||||
$this->assertEquals(3.3333333333, PMFTotalCalculation($grid, 'field2', 'average'));
|
||||
}
|
||||
/**
|
||||
* This tests if the "PMFTotalCalculation" execute correctly the median
|
||||
* @test
|
||||
*/
|
||||
public function it_must_return_the_median_of_the_method()
|
||||
{
|
||||
$grid1 = [
|
||||
'1' => [
|
||||
"field1" => "Value 1",
|
||||
"field2" => 2
|
||||
],
|
||||
'2' => [
|
||||
"field1" => "Value 2",
|
||||
"field2" => 5
|
||||
],
|
||||
'3' => [
|
||||
"field1" => "Value 3",
|
||||
"field2" => 3
|
||||
]
|
||||
];
|
||||
$grid2 = [
|
||||
'1' => [
|
||||
"field1" => "Value 1",
|
||||
"field2" => 2
|
||||
],
|
||||
'2' => [
|
||||
"field1" => "Value 2",
|
||||
"field2" => 5
|
||||
],
|
||||
'3' => [
|
||||
"field1" => "Value 3",
|
||||
"field2" => 3
|
||||
],
|
||||
'4' => [
|
||||
"field1" => "Value 3",
|
||||
"field2" => 8
|
||||
]
|
||||
];
|
||||
$this->assertEquals(3, PMFTotalCalculation($grid1, 'field2', 'median'));
|
||||
$this->assertEquals(4, PMFTotalCalculation($grid2, 'field2', 'median'));
|
||||
}
|
||||
/**
|
||||
* This tests if the "PMFTotalCalculation" execute correctly the minimum
|
||||
* @test
|
||||
*/
|
||||
public function it_must_return_the_minimum_of_the_method()
|
||||
{
|
||||
$grid = [
|
||||
'1' => [
|
||||
"field1" => "Value 1",
|
||||
"field2" => 5
|
||||
],
|
||||
'2' => [
|
||||
"field1" => "Value 2",
|
||||
"field2" => 2
|
||||
],
|
||||
'3' => [
|
||||
"field1" => "Value 3",
|
||||
"field2" => 3
|
||||
]
|
||||
];
|
||||
$this->assertEquals(2, PMFTotalCalculation($grid, 'field2', 'minimum'));
|
||||
}
|
||||
/**
|
||||
* This tests if the "PMFTotalCalculation" execute correctly the maximum
|
||||
* @test
|
||||
*/
|
||||
public function it_must_return_the_maximum_of_the_method()
|
||||
{
|
||||
$grid = [
|
||||
'1' => [
|
||||
"field1" => "Value 1",
|
||||
"field2" => 2
|
||||
],
|
||||
'2' => [
|
||||
"field1" => "Value 2",
|
||||
"field2" => 5
|
||||
],
|
||||
'3' => [
|
||||
"field1" => "Value 3",
|
||||
"field2" => 3
|
||||
]
|
||||
];
|
||||
$this->assertEquals(5, PMFTotalCalculation($grid, 'field2', 'maximum'));
|
||||
}
|
||||
/**
|
||||
* This tests if the "PMFTotalCalculation" execute correctly the standardDeviation
|
||||
* @test
|
||||
*/
|
||||
public function it_must_return_the_standardDeviation_of_the_method()
|
||||
{
|
||||
$grid = [
|
||||
'1' => [
|
||||
"field1" => "Value 1",
|
||||
"field2" => 25
|
||||
],
|
||||
'2' => [
|
||||
"field1" => "Value 2",
|
||||
"field2" => 40
|
||||
],
|
||||
'3' => [
|
||||
"field1" => "Value 3",
|
||||
"field2" => 10
|
||||
]
|
||||
];
|
||||
$this->assertEquals(12.2474487139, PMFTotalCalculation($grid, 'field2', 'standardDeviation'));
|
||||
}
|
||||
/**
|
||||
* This tests if the "PMFTotalCalculation" execute correctly the variance
|
||||
* @test
|
||||
*/
|
||||
public function it_must_return_the_variance_of_the_method()
|
||||
{
|
||||
$grid = [
|
||||
'1' => [
|
||||
"field1" => "Value 1",
|
||||
"field2" => 25
|
||||
],
|
||||
'2' => [
|
||||
"field1" => "Value 2",
|
||||
"field2" => 40
|
||||
],
|
||||
'3' => [
|
||||
"field1" => "Value 3",
|
||||
"field2" => 10
|
||||
]
|
||||
];
|
||||
$this->assertEquals(150, PMFTotalCalculation($grid, 'field2', 'variance'));
|
||||
}
|
||||
/**
|
||||
* This tests if the "PMFTotalCalculation" execute correctly the percentile
|
||||
* @test
|
||||
*/
|
||||
public function it_must_return_the_percentile_of_the_method()
|
||||
{
|
||||
$grid = [
|
||||
'1' => [
|
||||
"field1" => "Value 1",
|
||||
"field2" => 10
|
||||
],
|
||||
'2' => [
|
||||
"field1" => "Value 2",
|
||||
"field2" => 35
|
||||
],
|
||||
'3' => [
|
||||
"field1" => "Value 3",
|
||||
"field2" => 5
|
||||
]
|
||||
];
|
||||
$expectedArray = [
|
||||
"0" => 20,
|
||||
"1" => 70,
|
||||
"2" => 10,
|
||||
];
|
||||
$this->assertEquals($expectedArray, PMFTotalCalculation($grid, 'field2', 'percentile'));
|
||||
}
|
||||
/**
|
||||
* This tests if the "PMFTotalCalculation" execute correctly the count
|
||||
* @test
|
||||
*/
|
||||
public function it_must_return_the_count_of_the_method()
|
||||
{
|
||||
$grid = [
|
||||
'1' => [
|
||||
"field1" => "Value 1",
|
||||
"field2" => 25
|
||||
],
|
||||
'2' => [
|
||||
"field1" => "Value 2",
|
||||
"field2" => 40
|
||||
],
|
||||
'3' => [
|
||||
"field1" => "Value 3",
|
||||
"field2" => 10
|
||||
]
|
||||
];
|
||||
$this->assertEquals(3, PMFTotalCalculation($grid, 'field2', 'count'));
|
||||
}
|
||||
/**
|
||||
* This tests if the "PMFTotalCalculation" execute correctly the count distinct
|
||||
* @test
|
||||
*/
|
||||
public function it_must_return_the_count_distinct_of_the_method()
|
||||
{
|
||||
$grid = [
|
||||
'1' => [
|
||||
"field1" => "Value 1",
|
||||
"field2" => 20
|
||||
],
|
||||
'2' => [
|
||||
"field1" => "Value 2",
|
||||
"field2" => 20
|
||||
],
|
||||
'3' => [
|
||||
"field1" => "Value 3",
|
||||
"field2" => 10
|
||||
]
|
||||
];
|
||||
$this->assertEquals(2, PMFTotalCalculation($grid, 'field2', 'countDistinct'));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user