{"id":18678341,"url":"https://github.com/vitalibo/pairwise","last_synced_at":"2025-04-12T02:41:11.954Z","repository":{"id":101159627,"uuid":"72138312","full_name":"vitalibo/Pairwise","owner":"vitalibo","description":"Pairwise test case generator in Java","archived":false,"fork":false,"pushed_at":"2020-05-15T22:17:32.000Z","size":19,"stargazers_count":9,"open_issues_count":1,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-25T22:21:19.606Z","etag":null,"topics":["pairwise"],"latest_commit_sha":null,"homepage":"","language":"Java","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/vitalibo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2016-10-27T18:50:57.000Z","updated_at":"2024-01-28T10:58:33.000Z","dependencies_parsed_at":null,"dependency_job_id":"f993cf2b-4d92-4559-8205-63677c6adb62","html_url":"https://github.com/vitalibo/Pairwise","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vitalibo%2FPairwise","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vitalibo%2FPairwise/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vitalibo%2FPairwise/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vitalibo%2FPairwise/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vitalibo","download_url":"https://codeload.github.com/vitalibo/Pairwise/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248507468,"owners_count":21115607,"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","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"],"created_at":"2024-11-07T09:37:17.799Z","updated_at":"2025-04-12T02:41:11.949Z","avatar_url":"https://github.com/vitalibo.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pairwise\n\n[![Build Status](https://travis-ci.org/vitalibo/Pairwise.svg?branch=master)](https://travis-ci.org/vitalibo/Pairwise)\n\nPairwise is open-source library for the generating minimal set of test combinations. The project is implemented In-Parameter-Order (IPO) a strategy for generate test cases.\n\n## Installation\n\n```bash\nmvn clean install\n```\n\nNow you can use library in your projects, include in `pom.xml` the following dependency\n\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003eua.edu.lp.asu\u003c/groupId\u003e\n    \u003cartifactId\u003epairwise\u003c/artifactId\u003e\n    \u003cversion\u003e0.3.2-SNAPSHOT\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n## Usage\n\nExample using generating test cases\n\n```java\nPairwise pairwise = new Pairwise.Builder()\n    .withParameters(Arrays.asList(\n        new Parameter\u003c\u003e(\"Platform\", Platform.x86, Platform.ia64, Platform.amd64),\n        new Parameter\u003c\u003e(\"CPUs\", \"Single\", \"Dual\", \"Quad\"),\n        new Parameter\u003c\u003e(\"RAM\", \"128MB\", \"1GB\", \"4GB\", \"64GB\"),\n        new Parameter\u003c\u003e(\"HDD\", Type.SCSI, Type.IDE),\n        new Parameter\u003c\u003e(\"Operating system\", new NT4(), new Win2K(), new WinXP(), new Win2K3()),\n        new Parameter\u003c\u003e(\"Internet Explorer\", 4.0, 5.0, 5.5, 6.0),\n        new Parameter\u003c\u003e(\"Application\", new SQLServer(), new Exchange(), new Office())))\n    .build();\n\nfor (Case o : pairwise) {\n    // TODO: write your code here\n}\n```\n\nThis is output of generating test cases. Each of the following lines represents one generated test case.\n\n```log\nNo. | Platform | CPUs   | RAM   | HDD  | Operating system | Internet Explorer | Application\n----+----------+--------+-------+------+------------------+-------------------+-------------\n  0 | amd64    | Quad   | 128MB | IDE  | NT4@5910e440     | 4.0               | SQLServer\n  1 | x86      | Single | 1GB   | SCSI | NT4@5910e440     | 5.0               | Office\n... | ...      | ...    | ...   | ...  | ...              | ...               | ...\n 17 | ia64     | Dual   | 4GB   | SCSI | WinXP@533ddba    | 5.5               | Exchange\n```\n\nAlso, you can use pairwise testing with TestNG as @DataProvider\n\n```java\n@DataProvider\npublic Object[][] source() {\n    return new Pairwise.Builder()\n        .withParameter(new Parameter\u003c\u003e(\"Type\", \"Primary\", \"Logical\", \"Single\", \"Span\", \"Stripe\"))\n        .withParameter(new Parameter\u003c\u003e(\"Size\", 10, 100, 500, 1000, 5000, 10000, 40000))\n        .withParameter(new Parameter\u003c\u003e(\"File system\", Fs.FAT, Fs.FAT32, Fs.NTFS))\n        .withParameter(new Parameter\u003c\u003e(\"Cluster size\", 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536))\n        .withParameter(new Parameter\u003c\u003e(\"Compression\", true, false))\n        .build()\n        .toTestNG();\n}\n\n@Test(dataProvider = \"source\")\npublic void test(String type, Integer size, Fs fs, Integer cluster, Boolean compression) {\n    // TODO: write your code here\n}\n```\n\nor running parameterized test in JUnit 4\n\n```java\n@Parameterized.Parameters\npublic static Collection\u003cObject[]\u003e source() {\n    return new Pairwise.Builder()\n        .withParameter(new Parameter\u003c\u003e(\"Type\", Type.CD, Type.DVD))\n        .withParameter(new Parameter\u003c\u003e(\"Recording Speed\", 2, 4, 8, 16, 24, 36, 52))\n        .withParameter(new Parameter\u003c\u003e(\"File System\", Fs.ISO, Fs.UDF, Fs.HFS, Fs.ISO9660))\n        .withParameter(new Parameter\u003c\u003e(\"Capacity\", new Capacity(\"700Mb\"), new Capacity(\"4.7Gb\")))\n        .build()\n        .toJUnit();\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvitalibo%2Fpairwise","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvitalibo%2Fpairwise","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvitalibo%2Fpairwise/lists"}