Software consistency validation

<< Click to Display Table of Contents >>

Navigation:  Validation >

Software consistency validation

We are continually updating PoreXpert - so you may wonder if the calculation results you obtain may be changed in a following session by a software update or upgrade.  To check that never happens, the software has a system of self testing, using the NUnit system, to check internal consistency and forward validity.  Nevertheless your results may change from session to session, but that is most likely because the software learns as it goes along, with the aim of continually improving its fitting capabilities.  

To run the internal consistency tests, we freeze PoreXpert's brain at a specific level of experience.  Before we issue an update or upgrade, the software must pass all of the following tests :


Controller Level Tests


Classic UnitCell Test

- Build a classic unit cell with a set of parameters and compare it with a unit cell in file previously generated. Cluster Ratio is set to zero.

- Seven different unit cells are tested of constant size with varying parameters.



- Run the Simplex with a given grid initialisation file and verify that the results match previously obtained results.

- Assumes that users will be allowed to modify the bigmatrix.csv file contained in the program binary folder in order to add their best fitting grids so the test uses another bigmatrix.csv file which remains constant.


Cuboidal UnitCell Test

- Build a single cuboidal unit cell with fixed parameters and compare to one loaded from a file. Cluster ratio is set to zero.


Auto Cluster Ratio (new for v2)

- Loads a 10*10*10 fitted sample (based on the Clashac demo file) from a .pXt file, runs the Auto Cluster Ratio to generate the optimised unit cell, runs the PTSD (pore and throat size distribution) operation.

- Tests the ‘PoresVolume’, ‘ThroatsVolume’ and ‘ClusterVolume’ results against a second .pXt file with the Auto Cluster Ratio and PTSD ops already completed.

- Then runs an identical test with a 15*15*15 cell.


Permeability Test

- Creates a 10*10*10 manual cell with default parameters.

- Calculates water permeability and checks the exact result against hard-coded values.

- The test is repeated with a 15*15*15 unit cell. Both tests are then repeated calculating Nitrogen at 25oC permeabilities, again checking against known results.


Tortuosity Test

- Loads a test .pXt file containing completed building and Ionic tortuosity ops (tortuosityTest1.pXt).

- Creates a 12*12*12 manual cell with given parameters and runs the Ionic tortuosity calculation.

- Checks that the single figure tortuosity values are the same in each case.

- The test is then repeated with a Fluid tortuosity test file (tortuosityTest2.pXt) and a corresponding fresh Fluid tortuosity calculation.

Note that the full tortuosity curves are not compared at present.


Model Level Tests


Beta Distribution Test

- Creates a new Beta Distribution with given parameters and quantises it to give a Throat Distribution.

- Compares the throat sizes, percentages and quantized distribution with test results stored in a .csv file.


Curves Distance Test

- Creates a PX material using mercury porosimetry.

- Compares two curves using data from CurveDistanceTest.csv, applying nonWettingFluid.advLaplacePressure(diameter) to the data.


Laplace Diameter Test

- Creates a PX material using mercury porosimetry.

- Checks the material’s advLaplaceDiameter and advLaplacePressure properties against fixed constants.


Non Wetting Intrusion Test

- Runs the Simplex with a given grid initialisation file and verify that the results match previously obtained results.

- A fixed bigmatrix.csv file is used.


Pseudo Random Number Test

- Tests the PX Random Number Generators and Mersenne Twister functions with given seed values against known results.