{"id":37070117,"url":"https://github.com/damar-wicaksono/uqtestfuns","last_synced_at":"2026-01-14T08:05:33.916Z","repository":{"id":55065218,"uuid":"473655698","full_name":"damar-wicaksono/uqtestfuns","owner":"damar-wicaksono","description":"A Python3 library of test functions from the uncertainty quantification community with a common interface for validation and benchmarking purposes.","archived":false,"fork":false,"pushed_at":"2025-06-17T16:14:03.000Z","size":2109,"stargazers_count":8,"open_issues_count":25,"forks_count":1,"subscribers_count":1,"default_branch":"dev","last_synced_at":"2025-12-15T02:30:41.009Z","etag":null,"topics":["metamodeling","python","reliability-analysis","sensitivity-analysis","test-functions","uncertainty-quantification"],"latest_commit_sha":null,"homepage":"https://uqtestfuns.readthedocs.io/en/latest/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/damar-wicaksono.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.MD","funding":null,"license":"LICENSE","code_of_conduct":"CODE-OF-CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-03-24T15:05:26.000Z","updated_at":"2025-06-17T16:13:41.000Z","dependencies_parsed_at":"2023-12-15T11:24:20.795Z","dependency_job_id":"6d832477-da64-4cf8-9516-a6d281826ad1","html_url":"https://github.com/damar-wicaksono/uqtestfuns","commit_stats":{"total_commits":216,"total_committers":2,"mean_commits":108.0,"dds":0.0092592592592593,"last_synced_commit":"7249ed9f470405ee2b6489366f742339424cf5c6"},"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/damar-wicaksono/uqtestfuns","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/damar-wicaksono%2Fuqtestfuns","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/damar-wicaksono%2Fuqtestfuns/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/damar-wicaksono%2Fuqtestfuns/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/damar-wicaksono%2Fuqtestfuns/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/damar-wicaksono","download_url":"https://codeload.github.com/damar-wicaksono/uqtestfuns/tar.gz/refs/heads/dev","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/damar-wicaksono%2Fuqtestfuns/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28413527,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T05:26:33.345Z","status":"ssl_error","status_checked_at":"2026-01-14T05:21:57.251Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["metamodeling","python","reliability-analysis","sensitivity-analysis","test-functions","uncertainty-quantification"],"created_at":"2026-01-14T08:05:33.160Z","updated_at":"2026-01-14T08:05:33.883Z","avatar_url":"https://github.com/damar-wicaksono.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# UQTestFuns\n[![JOSS](https://img.shields.io/badge/JOSS-10.21105/joss.05671-brightgreen?style=flat-square)](https://doi.org/10.21105/joss.05671)\n[![DOI](http://img.shields.io/badge/DOI-10.5281/zenodo.14710452-blue.svg?style=flat-square)](https://doi.org/10.5281/zenodo.14710452)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg?style=flat-square)](https://github.com/psf/black)\n[![Python 3.7](https://img.shields.io/badge/python-3.7-blue.svg?style=flat-square)](https://www.python.org/downloads/release/python-370/)\n[![License](https://img.shields.io/github/license/damar-wicaksono/uqtestfuns?style=flat-square)](https://choosealicense.com/licenses/mit/)\n[![PyPI](https://img.shields.io/pypi/v/uqtestfuns?style=flat-square)](https://pypi.org/project/uqtestfuns/)\n\n|                                  Branches                                  | Status                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |\n|:--------------------------------------------------------------------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| [`main`](https://github.com/damar-wicaksono/uqtestfuns/tree/main) (stable) | ![build](https://img.shields.io/github/actions/workflow/status/damar-wicaksono/uqtestfuns/main.yml?branch=main\u0026style=flat-square) [![codecov](https://img.shields.io/codecov/c/github/damar-wicaksono/uqtestfuns/main?logo=CodeCov\u0026style=flat-square\u0026token=Y6YQEPJ1TT)](https://app.codecov.io/gh/damar-wicaksono/uqtestfuns/tree/main) [![Docs](https://readthedocs.org/projects/uqtestfuns/badge/?version=stable\u0026style=flat-square)](https://uqtestfuns.readthedocs.io/en/stable/?badge=stable) |\n|  [`dev`](https://github.com/damar-wicaksono/uqtestfuns/tree/dev) (latest)  | ![build](https://img.shields.io/github/actions/workflow/status/damar-wicaksono/uqtestfuns/main.yml?branch=dev\u0026style=flat-square) [![codecov](https://img.shields.io/codecov/c/github/damar-wicaksono/uqtestfuns/dev?logo=CodeCov\u0026style=flat-square\u0026token=Y6YQEPJ1TT)](https://app.codecov.io/gh/damar-wicaksono/uqtestfuns/tree/dev) [![Docs](https://readthedocs.org/projects/uqtestfuns/badge/?version=latest\u0026style=flat-square)](https://uqtestfuns.readthedocs.io/en/latest/?badge=latest)    |\n\n\u003c!--One paragraph description--\u003e\nUQTestFuns is an open-source Python3 library of test functions commonly used\nwithin the applied uncertainty quantification (UQ) community.\nSpecifically, the package provides:\n\n- an implementation _with minimal dependencies_ (i.e., NumPy and SciPy) and\n  _a common interface_ of many test functions available in the UQ literature\n- a _single entry point_ collecting test functions _and_ their probabilistic\n  input specifications in a single Python package\n- an _opportunity for an open-source contribution_, supporting\n  the implementation of new test functions or posting reference results.\n\nIn short, UQTestFuns is an homage\nto the [Virtual Library of Simulation Experiments (VLSE)](https://www.sfu.ca/~ssurjano/).\n\n## Usage\n\nUQTestFuns includes several commonly used test functions in the UQ community.\nTo list the available functions:\n\n```python-repl\n\u003e\u003e\u003e import uqtestfuns as uqtf\n\u003e\u003e\u003e uqtf.list_functions()\n+-------+-------------------------------+-----------+------------+----------+---------------+--------------------------------+\n|  No.  |          Constructor          |  # Input  |  # Output  |  Param.  |  Application  | Description                    |\n+=======+===============================+===========+============+==========+===============+================================+\n|   1   |           Ackley()            |     M     |     1      |   True   | optimization, | Optimization test function     |\n|       |                               |           |            |          | metamodeling  | from Ackley (1987)             |\n+-------+-------------------------------+-----------+------------+----------+---------------+--------------------------------+\n|   2   |        Alemazkoor20D()        |    20     |     1      |  False   | metamodeling  | High-dimensional low-degree    |\n|       |                               |           |            |          |               | polynomial from Alemazkoor \u0026   |\n|       |                               |           |            |          |               | Meidani (2018)                 |\n+-------+-------------------------------+-----------+------------+----------+---------------+--------------------------------+\n|   3   |        Alemazkoor2D()         |     2     |     1      |  False   | metamodeling  | Low-dimensional high-degree    |\n|       |                               |           |            |          |               | polynomial from Alemazkoor \u0026   |\n|       |                               |           |            |          |               | Meidani (2018)                 |\n+-------+-------------------------------+-----------+------------+----------+---------------+--------------------------------+\n|   4   |          Borehole()           |     8     |     1      |  False   | metamodeling, | Borehole function from Harper  |\n|       |                               |           |            |          |  sensitivity  | and Gupta (1983)               |\n+-------+-------------------------------+-----------+------------+----------+---------------+--------------------------------+\n...\n```\n\nConsider the Borehole function, a test function commonly used for metamodeling\nand sensitivity analysis purposes; to create an instance of this test function:\n\n```python-repl\n\u003e\u003e\u003e my_testfun = uqtf.Borehole()\n\u003e\u003e\u003e print(my_testfun)\nFunction ID      : Borehole\nInput Dimension  : 8 (fixed)\nOutput Dimension : 1\nParameterized    : False\nDescription      : Borehole function from Harper and Gupta (1983)\nApplications     : metamodeling, sensitivity\n```\n\nThe probabilistic input specification of this test function is built-in:\n\n```python-repl\n\u003e\u003e\u003e print(my_testfun.prob_input)\nFunction ID     : Borehole\nInput ID        : Harper1983\nInput Dimension : 8\nDescription     : Probabilistic input model of the Borehole model from\n                  Harper and Gupta (1983)\nMarginals       :\n\n No.    Name    Distribution        Parameters                          Description\n-----  ------  --------------  ---------------------  -----------------------------------------------\n  1      rw        normal      [0.1       0.0161812]            radius of the borehole [m]\n  2      r       lognormal        [7.71   1.0056]                 radius of influence [m]\n  3      Tu       uniform        [ 63070. 115600.]      transmissivity of upper aquifer [m^2/year]\n  4      Hu       uniform          [ 990. 1100.]         potentiometric head of upper aquifer [m]\n  5      Tl       uniform          [ 63.1 116. ]        transmissivity of lower aquifer [m^2/year]\n  6      Hl       uniform           [700. 820.]          potentiometric head of lower aquifer [m]\n  7      L        uniform          [1120. 1680.]                length of the borehole [m]\n  8      Kw       uniform         [ 9985. 12045.]     hydraulic conductivity of the borehole [m/year]\n\nCopulas         : Independence\n```\n\nA sample of input values can be generated from the input model:\n\n```python-repl\n\u003e\u003e\u003e xx = my_testfun.prob_input.get_sample(10)\narray([[8.40623544e-02, 2.43926544e+03, 8.12290909e+04, 1.06612711e+03,\n        7.24216436e+01, 7.78916695e+02, 1.13125867e+03, 1.02170796e+04],\n       [1.27235295e-01, 3.28026293e+03, 6.36463631e+04, 1.05132831e+03,\n        6.81653728e+01, 8.17868370e+02, 1.16603931e+03, 1.09370944e+04],\n       [8.72711602e-02, 7.22496512e+02, 9.18506063e+04, 1.06436843e+03,\n        6.44306474e+01, 7.74700231e+02, 1.46266808e+03, 1.12531788e+04],\n       [1.22301709e-01, 2.29922122e+02, 8.00390345e+04, 1.05290108e+03,\n        1.10852262e+02, 7.94709283e+02, 1.28026313e+03, 1.01879077e+04],\n...\n```\n\n...and used to evaluate the test function:\n\n```python-repl\n\u003e\u003e\u003e yy = my_testfun(xx)\narray([ 57.32635774, 110.12229548,  53.10585812,  96.15822154,\n        58.51714875,  89.40068404,  52.61710076,  61.47419171,\n        64.18005235,  79.00454634])\n```\n\n## Installation\n\nYou can obtain UQTestFuns directly from PyPI using `pip`:\n\n```bash\n$ pip install uqtestfuns\n```\n\nAlternatively, you can also install the latest version from the source:\n\n```bash\npip install git+https://github.com/damar-wicaksono/uqtestfuns.git\n```\n\n\u003e **NOTE**: UQTestFuns is currently work in progress,\n\u003e therefore interfaces are subject to change.\n\nIt's a good idea to install the package in an isolated virtual environment.\n\n## Getting help\n\n\u003c!--Getting help--\u003e\nFor a getting-started guide on UQTestFuns,\nplease refer to the [Documentation](https://uqtestfuns.readthedocs.io/en/latest/).\nThe documentation also includes details on each of the available test functions.\n\nFor any other questions related to the package,\npost your questions on the GitHub Issue page.\n\n## Package development and contribution\n\n\u003c!--Package Development--\u003e\nUQTestFuns is under ongoing development;\nany contribution to the code (for example, a new test function)\nand the documentation (including new reference results) are welcomed!\n\nPlease consider the [Contribution Guidelines](CONTRIBUTING.MD) first,\nbefore making a pull request. \n\n## Citing UQTestFuns\n\nIf you use this package in your research or projects, please consider citing\nboth the associated paper and the Zenodo archive (for the specific version\nused).\n\n### Citing the paper (JOSS)\n\nThe citation of the paper associated with this package is:\n\n```bibtex\n@article{Wicaksono2023,\n  author    = {Wicaksono, Damar and Hecht, Michael},\n  title     = {{UQTestFuns}: A {Python3} library of uncertainty quantification ({UQ}) test functions},\n  journal   = {Journal of Open Source Software},\n  year      = {2023},\n  volume    = {8},\n  number    = {90},\n  doi       = {10.21105/joss.05671},\n}\n```\n\n### Citing a specific version (Zenodo)\n\nTo ensure reproducibility, cite the exact version of the package you used.\nEach release is archived on Zenodo with a unique DOI; find and use the DOI\nfor the version you used at [Zenodo].\n\nThe citation for the current public version is:\n\n```bibtex\n@software{UQTestFuns_0_6_0,\n  author       = {Wicaksono, Damar and Hecht, Michael},\n  title        = {{UQTestFuns: A Python3 Library of Uncertainty Quantification (UQ) Test Functions}},\n  month        = jan,\n  year         = 2025,\n  publisher    = {Zenodo},\n  version      = {v0.6.0},\n  doi          = {10.5281/zenodo.14710452},\n  url          = {https://doi.org/10.5281/zenodo.14710452}\n}\n```\n\n## Credits and contributors\n\n\u003c!--Credits and contributors--\u003e\nThis work was partly funded\nby the [Center for Advanced Systems Understanding (CASUS)](https://www.casus.science/)\nwhich is financed by Germany's Federal Ministry of Education and Research (BMBF)\nand by the Saxony Ministry for Science, Culture and Tourism (SMWK)\nwith tax funds on the basis of the budget approved\nby the Saxony State Parliament.\n\nUQTestFuns is currently maintained by:\n\n- Damar Wicaksono ([HZDR/CASUS](https://www.casus.science/))\n\nunder the Mathematical Foundations of Complex System Science Group\nled by Michael Hecht ([HZDR/CASUS](https://www.casus.science/)) at CASUS.\n\n## License\n\n\u003c!--License--\u003e\nUQTestFuns is released under the [MIT License](LICENSE).\n\n[Zenodo]: https://zenodo.org/search?q=parent.id%3A7701903\u0026f=allversions%3Atrue\u0026l=list\u0026p=1\u0026s=10\u0026sort=version\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdamar-wicaksono%2Fuqtestfuns","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdamar-wicaksono%2Fuqtestfuns","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdamar-wicaksono%2Fuqtestfuns/lists"}