1.1.3 • Published 2 months ago

itptit-test-generator v1.1.3

Weekly downloads
-
License
ISC
Repository
-
Last release
2 months ago

Simple generate test case

Author: @n0xgg04

Version: 1.0.4

Installation:

  • Install by npm
npm i itptit-test-generator ts-node typescript
  • Create typescript config tsconfig.json

  • Config your ts:

{
  "compilerOptions": {
    "target": "ESNext",
    "strictPropertyInitialization": false,                             
    "experimentalDecorators": true,                  
    "emitDecoratorMetadata": true,                   
    "module": "nodenext",                              
    "moduleResolution": "NodeNext",                  
    "resolveJsonModule": true,                       
    "declaration": true,                             
    "esModuleInterop": true,                            
    "forceConsistentCasingInFileNames": true,        
    "skipLibCheck": true
  }
}

See example code: /example

Define a test case structure:

class SubTest extends TestCase {
    @Int(1, 10)
    a: number;

    @Int(1, 10)
    b: number;

    template = `$a $b`;
}

This template will generate input: 2 5 (2 randomize number from 1-10)

Generate I/O files:

createTestCase({
    amount: 10, //Amount of test case 
    inputDir: "input", // Folder to save input files
    outputDir: "output", //Folder to save output files
    template: TestCaseInput, //Class template 
    solutionPath: "solve.cpp", //Solution path
    timeout: 15000, //Timeout (Optional)
    inputFilenameTemplate: "input$i.txt", //Filename template (Optional)
    outputFilenameTemplate: "input$i.txt", //Filename template
}).then(() => {
    console.log("DONE")
});
  • Run generator:
ts-node <path-to-file>

Decorators

@Int(min, max)
n: number; //Make a random number from min to max

// Example:
@Int(1, 100, ["prime"]) //"prime" : Only prime number, "odd"|"even"
n: number;

@Loop("$var") //Repeat generating $var time
@useSubGeneration(SomeSubTemplate) // Using with loop for repeat generate a template
name(){}

@NumberArray("$var") //Array of number, with $var elements
arr: number[];

@Word(minLength, maxLength) //Random words
str: string;

@WordArray(element, minLength, maxLength) // Words array with $element elements
str: string[];

@UseLogic(() => string | number, ["$array","$of","$variable","$if","$u","$need"])
mylogic: string;
1.1.3

2 months ago

1.1.1

3 months ago

1.1.0

3 months ago

1.0.9

3 months ago

1.0.8

3 months ago

1.0.7

3 months ago

1.0.6

3 months ago

1.1.2

3 months ago

1.0.5

3 months ago

1.0.4

3 months ago

1.0.3

3 months ago

1.0.1

3 months ago

1.0.0

3 months ago