Bỏ qua

Simple Type Generators

Simple Type Generators in DATAMIMIC are essential for generating fundamental data types like strings, numbers, and other basic data types. These generators are highly configurable, allowing you to specify patterns, ranges, and formats to produce realistic test data.

AcademicTitleGenerator

Generates academic titles.

Properties:

  • dataset: Either a region name or the two-letter-ISO-code of a country. Supported dataset: US, DE, FR, CN, IT
  • quota: The quota of generated title. (default: 0.5)

1
<key name="academic_title" generator="AcademicTitleGenerator"/>
or
1
<key name="academic_title" generator="AcademicTitleGenerator(dataset='US', quota='1')"/>

Sample Output:

1
2
3
4
5
6
Bachelor
Master
PhD
Assistant Prof.
Prof.
Dipl.-Ing.

BirthdateGenerator

Generate a random date of birth.

Properties:

  • min_age: Minimum age value. (default: 1)
  • max_age: Maximum age value. (default: 100)

1
<key name="birth_date" generator="BirthdateGenerator"/>
or
1
<key name="birth_date" generator="BirthdateGenerator(min_age=10, max_age=100)"/>

Sample Output:

1
2
3
4
5
datetime.datetime(1969, 1, 7, 14, 58, 48)
datetime.datetime(1975, 11, 27, 0, 28, 40)
datetime.datetime(1988, 7, 16, 15, 21, 43)
datetime.datetime(2021, 9, 11, 9, 13, 8)
datetime.datetime(1981, 1, 26, 0, 15, 23)

With outDateFormat:

1
<key name="birth_date" generator="BirthdateGenerator" outDateFormat="%Y-%m-%d %H:%M:%S"/>

Sample Output:

1
2
3
4
5
2014-05-22 13:39:19
2017-09-18 19:45:48
2018-07-25 03:14:36
2014-03-16 18:28:02
2019-05-12 13:15:05

BooleanGenerator

Generates boolean values.

1
<key name="is_active" generator="BooleanGenerator"/>

Sample Output:

1
2
3
4
5
True
False
True
False
False

CNPJGenerator

Generates Brazilian company identification numbers (CNPJ).

1
<key name="cnpj" generator="CNPJGenerator"/>

Sample Output:

1
2
3
4
5
02.167.943/0001-39
04.823.916/0001-00
49.620.758/0001-11
80.462.379/0001-90
96.201.384/0001-80

CPFGenerator

Generates Brazilian individual taxpayer registry identification (CPF).

1
<key name="cpf" generator="CPFGenerator"/>
Sample Output:
1
2
3
4
5
815.094.237-88
936.745.820-74
863.097.524-56
243.105.697-06
472.018.693-96

CompanyNameGenerator

Generates company names.

1
<key name="company_name" generator="CompanyNameGenerator"/>

Sample Output:

1
2
3
4
5
MindForge
FreeFlash
ObjectBot
TradeBit
NanoServe

DateTimeGenerator

Generates date and time values.

Properties:

  • min: Minimum date value. (optional)
  • max: Maximum date value. (optional)
  • input_format: date format. (default: %Y-%m-%d %H:%M:%S)
1
<key name="created_at" generator="DateTimeGenerator(min='2020-01-01', max='2023-12-31', input_format='%Y-%m-%d')"/>

Sample Output:

1
2
3
4
5
datetime.datetime(2023, 3, 17, 22, 49, 52)
datetime.datetime(2020, 12, 20, 19, 9, 14)
datetime.datetime(2020, 2, 14, 14, 9, 5)
datetime.datetime(2023, 9, 23, 23, 42, 55)
datetime.datetime(2022, 11, 30, 11, 15, 1)

With outDateFormat:

1
2
3
<key name="created_at" 
     generator="DateTimeGenerator(min='2020-01-01', max='2023-12-31', input_format='%Y-%m-%d')" 
     outDateFormat="%Y-%m-%dT%H:%M:%S"/>

Sample Output:

1
2
3
4
5
2020-02-15T10:30:00
2021-06-10T14:45:00
2022-09-25T09:00:00
2023-03-05T16:20:00
2023-11-30T23:59:59

DomainGenerator

Generates domain names.

1
<key name="domain" generator="DomainGenerator"/>

Sample Output:

1
2
3
4
5
microsoft.de
gmail.com
dyio.org
hotmail.com
realshop.de

EANGenerator

Generates International Article Numbers (EAN).

1
<key name="ean" generator="EANGenerator"/>

Sample Output:

1
2
3
4
5
8704362649090
0290992539262
2036261933274
5154345840724
7662824922147

EmailAddressGenerator

Generates email addresses.

1
<key name="email" generator="EmailAddressGenerator"/>

Sample Output:

FamilyNameGenerator

Generates family names.

1
<key name="last_name" generator="FamilyNameGenerator"/>

Sample Output:

1
2
3
4
5
Jones
Stephens
Garcia
Pittman
Mckee

GivenNameGenerator

Generates given names.

1
<key name="first_name" generator="GivenNameGenerator"/>

Sample Output:

1
2
3
4
5
Carlos
Zachary
Richard
Gail
Thomas

IncrementGenerator

Generates numbers starting with one and incrementing the number on each subsequent call.

Properties:

  • start: Begin value. (default: 1)
  • end: Maximum value. (default: 9223372036854775807)
  • 1
    <key name="incremental_id" generator="IncrementGenerator"/>
    

Sample Output:

1
2
3
4
5
1
2
3
4
5

1
<key name="id" generator="IncrementGenerator(start=10, end=20)"/>

Sample Output:

1
2
3
4
5
10
11
12
13
14

IntegerGenerator

Generates integer values.

Properties:

  • min: Minimum integer value. (default: 0)
  • max: Maximum integer value. (default: 10)
1
<key name="quantity" generator="IntegerGenerator(min=1, max=100)"/>

Sample Output:

1
2
3
4
5
9
49
62
19
41

PhoneNumberGenerator

Generates phone numbers.

1
<key name="phone_number" generator="PhoneNumberGenerator"/>

Sample Output:

1
2
3
4
5
+1-423-1295849
+1-941-0407764
+1-603-4732447
+1-715-9870003
+1-706-3489021

SectorGenerator

Generates business sectors.

1
<key name="sector" generator="SectorGenerator"/>

Sample Output:

1
2
3
4
5
Leasing
Systems Integration
Solutions
Consulting & Engineering
Technik

SSNGenerator

Generates Social Security Numbers (SSN).

1
<key name="ssn" generator="SSNGenerator"/>

Sample Output:

1
2
3
4
5
376-57-5744
181-63-4946
714-18-5932
184-62-1179
184-98-0128

StringGenerator

Generates strings based on length characteristics. This is the typical component for generating code numbers.

Properties:

  • min_len: Minimum string length. (default: 1)
  • max_len: Maximum string length. (default: 10)
1
<key name="random_string" generator="StringGenerator(min_len=10,max_len=20)"/>

Sample Output:

1
2
3
4
5
XLgifeSBpGOBBQKzbwx
eWiNZhtiWvqeGeYflN
wVttiKmBISjR
wHtqRtAHaQEUbii
fwWGfdEJkZzZXwoF

FloatGenerator

Generates decimal number.

Properties:

  • min: Minimum value. (default: 1)
  • max: Maximum value. (default: 10)
  • granularity: level of fractional part. (default: 0.1)
1
<key name="number" generator="FloatGenerator(min=10, max=20, granularity=0.0003)"/>

Sample Output:

1
2
3
4
5
10.4925
13.8852
10.6365
17.5926
19.7271

UUIDGenerator

Generates universally unique identifiers (UUID).

1
<key name="uuid" generator="UUIDGenerator"/>

Sample Output:

1
2
3
4
5
aca6a349-6409-4ba4-b303-f018e6ecb0f0
f5d95e77-6fd5-4f7c-9bca-c67ce8be2431
621ca7d8-df2d-44dd-82a3-768689b9df91
5aabcaeb-921d-4d0e-9b58-06e674176f00
e839ef13-fd4c-4633-98a2-7b7ec4c31c0b

Example Usage of Simple Type Generators

Consider the following example of a DATAMIMIC model using these simple type generators:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
<setup>
    <!-- Generate a dataset with various simple types -->
        <generate name="simple_types_dataset" count="100" target="ConsoleExporter">
        <key name="academic_title" generator="AcademicTitleGenerator"/>
        <key name="is_active" generator="BooleanGenerator"/>
        <key name="cnpj" generator="CNPJGenerator"/>
        <key name="cpf" generator="CPFGenerator"/>
        <key name="company_name" generator="CompanyNameGenerator"/>
        <key name="created_at" generator="DateTimeGenerator(min='2010-08-01', max='2020-08-31', input_format='%Y-%m-%d')"/>
        <key name="domain" generator="DomainGenerator"/>
        <key name="ean" generator="EANGenerator"/>
        <key name="email" generator="EmailAddressGenerator"/>
        <key name="last_name" generator="FamilyNameGenerator"/>
        <key name="first_name" generator="GivenNameGenerator"/>
        <key name="incremental_id" generator="IncrementGenerator"/>
        <key name="phone_number" generator="PhoneNumberGenerator"/>
        <key name="sector" generator="SectorGenerator"/>
        <key name="ssn" generator="SSNGenerator"/>
        <key name="random_string" generator="StringGenerator(max_len=20)"/>
        <key name="uuid" generator="UUIDGenerator"/>
    </generate>
</setup>

In this example:

  • <AcademicTitleGenerator> generates academic titles.
  • <BooleanGenerator> generates boolean values.
  • <CNPJGenerator> generates Brazilian company identification numbers.
  • <CPFGenerator> generates Brazilian individual taxpayer registry identification.
  • <CompanyNameGenerator> generates company names.
  • <DateTimeGenerator> generates date and time values within a specified range.
  • <DomainGenerator> generates domain names.
  • <EANGenerator> generates International Article Numbers.
  • <EmailAddressGenerator> generates email addresses.
  • <FamilyNameGenerator> generates family names.
  • <GivenNameGenerator> generates given names.
  • <IncrementGenerator> generates incrementing IDs.
  • <IntegerGenerator> generates integer values within a specified range.
  • <PhoneNumberGenerator> generates phone numbers.
  • <SectorGenerator> generates business sectors.
  • <SSNGenerator> generates Social Security Numbers.
  • <StringGenerator> generates random strings based on specified characteristics.
  • <UUIDGenerator> generates universally unique identifiers.

By utilizing these simple type generators, you can create diverse and realistic datasets for comprehensive testing scenarios in DATAMIMIC.