Difference between revisions of "UCVM Testing"

From SCECpedia
Jump to navigationJump to search
Line 57: Line 57:
 
* basin_query
 
* basin_query
  
* Test case interpolation 
+
Tests for adding Models to UCVM. These also confirm path to UCVM models set correctly
* Test Cases Tiling
 
* Test Cases Invalid Points
 
 
* unittest_suite_lib.c:int test_lib_init()
 
* unittest_suite_lib.c:int test_lib_init()
 
* unittest_suite_lib.c:int test_lib_add_model_1d()
 
* unittest_suite_lib.c:int test_lib_add_model_1d()
 
* unittest_suite_lib.c:int test_lib_query_1d()
 
* unittest_suite_lib.c:int test_lib_query_1d()
 
* unittest_suite_lib.c:int test_lib_get_model_label_1d()
 
* unittest_suite_lib.c:int test_lib_get_model_label_1d()
 +
* unittest_suite_lib.c:int test_lib_model_version_1d()
 +
 +
Tests for Query by Elevation/Query by Depth
 
* unittest_suite_lib.c:int test_lib_setparam_querymode_gd_1d()
 
* unittest_suite_lib.c:int test_lib_setparam_querymode_gd_1d()
 
* unittest_suite_lib.c:int test_lib_setparam_querymode_ge_1d()
 
* unittest_suite_lib.c:int test_lib_setparam_querymode_ge_1d()
* unittest_suite_lib.c:int test_lib_model_version_1d()
+
 
 +
Additional Key Core Functionality
 +
* Test case interpolation
 +
* Test Cases Tiling
 +
* Test Cases Invalid Point
  
 
== Integration Tests ==
 
== Integration Tests ==

Revision as of 03:40, 7 September 2021

UCVM C-Language Testing Fixtures

  • C-Language - unittest - C executable
  • accepttest - C executable

UCVM uses two C language programs called unittest.c and accepttest.c framework. These C program framework provides methods like "test_assert_string()". There are references to an xmldir with list of tests, but that is not used. These C language tests enable us to test the C-API for UCVM

Test defined as c language functions in unittest_suite_lib.c

    • test_lib_init()
    • test_lib_add_model_1d()
    • test_lib_query_1d()
    • test_lib_get_model_label_1d()
    • test_lib_setparam_querymode_gd_1d()
    • test_lib_setparam_querymode_ge_1d
    • test_lib_model_version_1d

Following Tests have conditional compile statements

    • test_lib_add_model_cencal
    • test_lib_add_model_cvmh
    • test_lib_add_model_cvms
    • test_lib_add_model_cvmsi
    • test_lib_add_model_ivlsu
    • test_lib_add_model_cvlsu
    • test_lib_add_model_albacore
    • test_lib_add_model_cvms5
    • test_lib_add_model_cca
    • test_lib_add_model_cs173
    • test_lib_add_model_cs173h

Test defined as c lanuage functions in accepttest_suite_grid.c

    • test_grid_tool_1d()
    • test_grid_lib_1d()
    • then suite_xxx() where test_grid_tool_1d is tested with its own script

UCVM Python Language Testing

UCVM uses a custom script accept_test.py. Contains two tests:

    • def test_vs30_query(dir)
    • def test_ssh_generate(dir):

UCVM Test Scripts

  • make check - defined in ucvm_bin/tests
    • runs unittest
    • runs accepttest
    • runs accept_test.py
  • Makefile.am creates script > run-testing
    • unittest
    • accepttest
    • accept_test.py
    • cd api; ./run_query_1d_gtl.sh
    • cd basin; ./run_bains_query_mpi_cvms5.sh
    • cd mesh; ./run_ucvm2mesh_mpi_layer_cvms.sh


Functional tests

Tests for C executables

  • ucvm_query
  • basin_query

Tests for adding Models to UCVM. These also confirm path to UCVM models set correctly

  • unittest_suite_lib.c:int test_lib_init()
  • unittest_suite_lib.c:int test_lib_add_model_1d()
  • unittest_suite_lib.c:int test_lib_query_1d()
  • unittest_suite_lib.c:int test_lib_get_model_label_1d()
  • unittest_suite_lib.c:int test_lib_model_version_1d()

Tests for Query by Elevation/Query by Depth

  • unittest_suite_lib.c:int test_lib_setparam_querymode_gd_1d()
  • unittest_suite_lib.c:int test_lib_setparam_querymode_ge_1d()

Additional Key Core Functionality

  • Test case interpolation
  • Test Cases Tiling
  • Test Cases Invalid Point

Integration Tests

Test utilities including meshing, layer searches, gtls, and and modificaiton to the velocity models.

UCVM 2 Mesh

  • ucvm2mesh
  • ucvm2mesh_mpi
  • ucvm2mesh_mpi_layer

SSH Command

  • ssh_generate
  • ssh_merge

UCVM Query

  • ucvm_query
  • test_grid
  • test_ucvm

Basic Query

  • basin_query
  • basin_query_mpi
  • basin_query_mpi_complete

Etree Related Commands

  • ecompact
  • ehelper
  • ecoalesce

Patch

  • patch_config

Grid

  • grd

Grid 2 Etree

  • grd2etree

UCVM 2 Etree

  • ucvm2etree.c
  • ucvm2etree_extract_MPI.c
  • ucvm2etree_merge_MPI.c
  • ucvm2etree_sort_MPI.c

Vs30 Query Related Commands

  • vs30_query
  • vs30_query_mpi
  • vs30_query_debug
  • Adding Elygtl:ifunc
  • accepttest_suite_grid.c:int test_grid_tool_1d()
  • accepttest_suite_grid.c:int test_grid_lib_1d()
  • accept_test.py:def test_vs30_query(dir):
  • accept_test.py:def test_ssh_generate(dir):

Model Tests

Each velocity model has tests showing expected results for some points

  • Test Cases 1D Models
  • Test Cases CVM S4.26
  • Test Cases CVM-H
  • Test Cases External CVMs
  • Test Cases Invalid Points
  • unittest_suite_lib.c:int test_lib_add_model_cencal()
  • unittest_suite_lib.c:int test_lib_add_model_cvmh()
  • unittest_suite_lib.c:int test_lib_add_model_cvms()
  • unittest_suite_lib.c:int test_lib_add_model_cvmsi()
  • unittest_suite_lib.c:int test_lib_add_model_cvms5()
  • unittest_suite_lib.c:int test_lib_add_model_ivlsu()
  • unittest_suite_lib.c:int test_lib_add_model_cvlsu()
  • unittest_suite_lib.c:int test_lib_add_model_wfcvm()
  • unittest_suite_lib.c:int test_lib_add_model_albacore()
  • unittest_suite_lib.c:int test_lib_add_model_cca()
  • unittest_suite_lib.c:int test_lib_add_model_cs173()
  • unittest_suite_lib.c:int test_lib_add_model_cs173h()

Utilities Tests

In Utilities Directory:

  • run_ucvm.sh
  • installed_models.py
  • makegrid.sh
  • run_ucvm.sh
  • run_ucvm_query.sh
  • time_mesh_generator.py
  • view_png.py

Additional Utility Tests

  • /api/run_query_1d_gtl.sh
  • programs/basin/run_basin_query_cvmh.sh
  • programs/basin/run_basin_query_mpi_complete_cencal_cvms.sh
  • programs/basin/run_basin_query_mpi_complete_cencal_cvms5.sh
  • programs/basin/run_basin_query_mpi_complete_cencal_cvmsi.sh
  • programs/basin/run_basin_query_mpi_cvms5.sh
  • programs/etree/run_ucvm2etree_cvmh.sh
  • programs/mesh/run_ucvm2mesh_cvmh.sh
  • programs/mesh/run_ucvm2mesh_mpi_cvmh.sh
  • programs/mesh/run_ucvm2mesh_mpi_cvmsi.sh
  • programs/mesh/run_ucvm2mesh_mpi_layer_cvms.sh
  • programs/mesh/run_ucvm2mesh_mpi_layer_cvmsi.sh
  • programs/ucvm/run_ucvm_query_albacore.sh
  • programs/ucvm/run_ucvm_query_cencal_cvms.sh
  • programs/ucvm/run_ucvm_query_cencal_cvms5.sh
  • programs/ucvm/run_ucvm_query_cvmh.sh
  • programs/ucvm/run_ucvm_query_wfcvm.sh

Acceptance tests

Confirm results on users system. Maybe union of funcational, integration, and model tests.

Related Entries