{"id":18041356,"url":"https://github.com/ligurio/jenny","last_synced_at":"2025-08-13T01:08:57.647Z","repository":{"id":77678271,"uuid":"118936884","full_name":"ligurio/jenny","owner":"ligurio","description":"Tool for generating regression tests","archived":false,"fork":false,"pushed_at":"2023-03-24T13:41:42.000Z","size":262,"stargazers_count":15,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-09T16:55:43.744Z","etag":null,"topics":["pairwise","software-testing","testing"],"latest_commit_sha":null,"homepage":"http://burtleburtle.net/bob/math/jenny.html","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ligurio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-01-25T16:18:20.000Z","updated_at":"2025-04-06T13:55:50.000Z","dependencies_parsed_at":"2025-04-09T16:50:43.547Z","dependency_job_id":"f0d564a2-4e97-4f18-86df-06d37abd8c49","html_url":"https://github.com/ligurio/jenny","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/ligurio/jenny","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ligurio%2Fjenny","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ligurio%2Fjenny/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ligurio%2Fjenny/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ligurio%2Fjenny/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ligurio","download_url":"https://codeload.github.com/ligurio/jenny/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ligurio%2Fjenny/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270161295,"owners_count":24537629,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-12T02:00:09.011Z","response_time":80,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["pairwise","software-testing","testing"],"created_at":"2024-10-30T15:09:14.684Z","updated_at":"2025-08-13T01:08:57.578Z","avatar_url":"https://github.com/ligurio.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"### Jenny\n\n[![Build Status](https://travis-ci.org/ligurio/jenny.svg?branch=master)](https://travis-ci.org/ligurio/jenny)\n\njenny is tool for generating regression tests. Any time exhaustive testing\nlooks painful due to the combinatorial explosion of features interactions to be\ntested, consider using jenny. It will cover most of the interactions with far\nfewer testcases. It can guarantee pairwise testing of all features that can be\nused together, and it can avoid those feature combinations that cannot.\n\n[Learn\nmore](https://csrc.nist.gov/Projects/Automated-Combinatorial-Testing-for-Software)\nabout combinatorial testing.\n\n#### Example\n\nLet's imagine we have a program with three features and various values for each feature:\n\n- Sex (2): ♀️, ♂️\n- Weather (3): 🌧, ☀️, 🌥\n- Mood (3): 🤒, 😧, 😴\n\nJenny can generate combinations:\n\n```sh\n$ ./jenny -n3 2 3 3\n 1a 2a 3a\n 1b 2b 3b\n 1b 2c 3c\n 1a 2b 3c\n 1b 2a 3c\n 1a 2c 3b\n 1b 2b 3a\n 1b 2a 3b\n 1a 2c 3a\n 1a 2a 3b\n 1a 2c 3c\n 1b 2a 3a\n 1a 2b 3b\n 1b 2c 3a\n 1a 2b 3a\n 1b 2b 3c\n 1a 2a 3c\n 1b 2c 3b\n```\n\nwhere 3 is a number of features in combination, 2, 3 and 3 are numbers of\npossible values for the appropriate feature. Total number of possible\nunique combinations is 18.\n\n```sh\n$ cat jenny.sed\n# number the testcases\n=\n\n\n# Dimension 1\ns/ 1a / ♀️ /g\ns/ 1b / ♂️ /g\n\n# Dimension 2\ns/ 2a / 🌧 /g\ns/ 2b / ☀️ /g\ns/ 2c / 🌥 /g\n\n# Dimension 3\ns/ 3a / 🤒 /g\ns/ 3b / 😧 /g\ns/ 3c / 😴 /g\n```\n\n```sh\n$ ./jenny -n3 2 3 3 | sed -f jenny.sed\n1  ♀️ 🌧 🤒\n2  ♂️ ☀️ 😧\n3  ♂️ 🌥 😴\n4  ♀️ ☀️ 😴\n5  ♂️ 🌧 😴\n6  ♀️ 🌥 😧\n7  ♂️ ☀️ 🤒\n8  ♂️ 🌧 😧\n9  ♀️ 🌥 🤒\n10 ♀️ 🌧 😧\n11 ♀️ 🌥 😴\n12 ♂️ 🌧 🤒\n13 ♀️ ☀️ 😧\n14 ♂️ 🌥 🤒\n15 ♀️ ☀️ 🤒\n16 ♂️ ☀️ 😴\n17 ♀️ 🌧 😴\n18 ♂️ 🌥 😧\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fligurio%2Fjenny","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fligurio%2Fjenny","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fligurio%2Fjenny/lists"}