<commit_before>/**
 * This is a description of a model
 * @tsoaModel
 * @example
 * {
 *   "boolArray": [true, false],
 *   "boolValue": true,
 *   "dateValue": "2018-06-25T15:45:00Z",
 *   "id": 2,
 *   "modelValue": {
 *     "id": 3,
 *     "email": "test(at)example.com"
 *   },
 *   "modelsArray": [],
 *   "numberArray": [1, 2, 3],
 *   "numberValue": 1,
 *   "optionalString": "optional string",
 *   "strLiteralArr": ["Foo", "Bar"],
 *   "strLiteralVal": "Foo",
 *   "stringArray": ["string one", "string two"],
 *   "stringValue": "a string"
 * }
 */
export interface TestModel extends Model {
  and: TypeAliasModel1 & TypeAliasModel2;
  /**
   * This is a description of this model property, numberValue
   */
  numberValue: number;
  numberArray: number[];
  /**
   * @format password
   */
  stringValue: string;
  stringArray: string[];
  /**
   * @default true
   */
  boolValue: boolean;
  boolArray: boolean[];
  object: object;
  objectArray: object[];
  enumValue?: EnumIndexValue;
  enumArray?: EnumIndexValue[];
  enumNumberValue?: EnumNumberValue;
  enumNumberArray?: EnumNumberValue[];
  enumStringValue?: EnumStringValue;
  enumStringArray?: EnumStringValue[];
  modelValue: TestSubModel;
  modelsArray: TestSubModel[];
  strLiteralVal: StrLiteral;
  strLiteralArr: StrLiteral[];
  unionPrimetiveType?: 'String' | 1 | 20.0 | true | false;
  dateValue?: Date;
  optionalString?: string;
  anyType?: any;
  // modelsObjectDirect?: {[key: string]: TestSubModel2;};
  modelsObjectIndirect?: TestSubModelContainer;
  modelsObjectIndirectNS?: TestSubModelContainerNamespace.TestSubModelContainer;
  modelsObjectIndirectNS2?: TestSubModelContainerNamespace.InnerNamespace.TestSubModelContainer2;
  modelsObjectIndirectNS_Alias?: TestSubModelContainerNamespace_TestSubModelContainer;
  modelsObjectIndirectNS2_Alias?: TestSubModelContainerNamespace_InnerNamespace_TestSubModelContainer2;

  modelsArrayIndirect?: TestSubArrayModelContainer;
  modelsEnumIndirect?: TestSubEnumModelContainer;
  or: TypeAliasModel1 | TypeAliasModel2;
  referenceAnd: TypeAliasModelCase1;
  typeAliasCase1?: TypeAliasModelCase1;
  TypeAliasCase2?: TypeAliasModelCase2;
  genericMultiNested?: GenericRequest<GenericRequest<TypeAliasModel1>>;
  // tslint:disable-next-line: array-type
  genericNestedArrayKeyword1?: GenericRequest<Array<TypeAliasModel1>>;
  genericNestedArrayCharacter1?: GenericRequest<TypeAliasModel1[]>;
  // tslint:disable-next-line: array-type
  genericNestedArrayKeyword2?: GenericRequest<Array<TypeAliasModel2>>;
  genericNestedArrayCharacter2?: GenericRequest<TypeAliasModel2[]>;
  mixedUnion?: string | TypeAliasModel1;

  objLiteral: {
    name: string;
    nested?: {
      bool: boolean;
      optional?: number;
      allNestedOptional: {
        one?: string;
        two?: string;
      };
      additionals?: {
        [name: string]: TypeAliasModel1;
      };
    };
  };
}

export interface TypeAliasModel1 {
  value1: string;
}

export interface TypeAliasModel2 {
  value2: string;
}

export class TypeAliasModel3 {
  public value3: string;
}

export type TypeAliasModelCase1 = TypeAliasModel1 & TypeAliasModel2;

export type TypeAliasModelCase2 = TypeAliasModelCase1 & TypeAliasModel3;

/**
 * EnumIndexValue.
 */
export enum EnumIndexValue {
  VALUE_1,
  VALUE_2,
}

/**
 * EnumNumberValue.
 */
export enum EnumNumberValue {
  VALUE_0 = 0,
  VALUE_1 = 2,
  VALUE_2 = 5,
}

/**
 * EnumStringValue.
 */
export enum EnumStringValue {
  EMPTY = '' as any,
  VALUE_1 = 'VALUE_1' as any,
  VALUE_2 = 'VALUE_2' as any,
}

// shortened from StringLiteral to make the tslint enforced<commit_msg>Add Test for generating a Numeric String Enum<commit_after>/**
 * This is a description of a model
 * @tsoaModel
 * @example
 * {
 *   "boolArray": [true, false],
 *   "boolValue": true,
 *   "dateValue": "2018-06-25T15:45:00Z",
 *   "id": 2,
 *   "modelValue": {
 *     "id": 3,
 *     "email": "test(at)example.com"
 *   },
 *   "modelsArray": [],
 *   "numberArray": [1, 2, 3],
 *   "numberValue": 1,
 *   "optionalString": "optional string",
 *   "strLiteralArr": ["Foo", "Bar"],
 *   "strLiteralVal": "Foo",
 *   "stringArray": ["string one", "string two"],
 *   "stringValue": "a string"
 * }
 */
export interface TestModel extends Model {
  and: TypeAliasModel1 & TypeAliasModel2;
  /**
   * This is a description of this model property, numberValue
   */
  numberValue: number;
  numberArray: number[];
  /**
   * @format password
   */
  stringValue: string;
  stringArray: string[];
  /**
   * @default true
   */
  boolValue: boolean;
  boolArray: boolean[];
  object: object;
  objectArray: object[];
  enumValue?: EnumIndexValue;
  enumArray?: EnumIndexValue[];
  enumNumberValue?: EnumNumberValue;
  enumStringNumberValue?: EnumStringNumberValue;
  enumStringNumberArray?: EnumStringNumberValue[];
  enumNumberArray?: EnumNumberValue[];
  enumStringValue?: EnumStringValue;
  enumStringArray?: EnumStringValue[];
  modelValue: TestSubModel;
  modelsArray: TestSubModel[];
  strLiteralVal: StrLiteral;
  strLiteralArr: StrLiteral[];
  unionPrimetiveType?: 'String' | 1 | 20.0 | true | false;
  dateValue?: Date;
  optionalString?: string;
  anyType?: any;
  // modelsObjectDirect?: {[key: string]: TestSubModel2;};
  modelsObjectIndirect?: TestSubModelContainer;
  modelsObjectIndirectNS?: TestSubModelContainerNamespace.TestSubModelContainer;
  modelsObjectIndirectNS2?: TestSubModelContainerNamespace.InnerNamespace.TestSubModelContainer2;
  modelsObjectIndirectNS_Alias?: TestSubModelContainerNamespace_TestSubModelContainer;
  modelsObjectIndirectNS2_Alias?: TestSubModelContainerNamespace_InnerNamespace_TestSubModelContainer2;

  modelsArrayIndirect?: TestSubArrayModelContainer;
  modelsEnumIndirect?: TestSubEnumModelContainer;
  or: TypeAliasModel1 | TypeAliasModel2;
  referenceAnd: TypeAliasModelCase1;
  typeAliasCase1?: TypeAliasModelCase1;
  TypeAliasCase2?: TypeAliasModelCase2;
  genericMultiNested?: GenericRequest<GenericRequest<TypeAliasModel1>>;
  // tslint:disable-next-line: array-type
  genericNestedArrayKeyword1?: GenericRequest<Array<TypeAliasModel1>>;
  genericNestedArrayCharacter1?: GenericRequest<TypeAliasModel1[]>;
  // tslint:disable-next-line: array-type
  genericNestedArrayKeyword2?: GenericRequest<Array<TypeAliasModel2>>;
  genericNestedArrayCharacter2?: GenericRequest<TypeAliasModel2[]>;
  mixedUnion?: string | TypeAliasModel1;

  objLiteral: {
    name: string;
    nested?: {
      bool: boolean;
      optional?: number;
      allNestedOptional: {
        one?: string;
        two?: string;
      };
      additionals?: {
        [name: string]: TypeAliasModel1;
      };
    };
  };
}

export interface TypeAliasModel1 {
  value1: string;
}

export interface TypeAliasModel2 {
  value2: string;
}

export class TypeAliasModel3 {
  public value3: string;
}

export type TypeAliasModelCase1 = TypeAliasModel1 & TypeAliasModel2;

export type TypeAliasModelCase2 = TypeAliasModelCase1 & TypeAliasModel3;

/**
 * EnumIndexValue.
 */
export enum EnumIndexValue {
  VALUE_1,
  VALUE_2,
}

/**
 * EnumNumberValue.
 */
export enum EnumNumberValue {
  VALUE_0 = 0,
  VALUE_1 = 2,
  VALUE_2 = 5,
}

/**
 * EnumStringNumberValue.
 */
export enum EnumStringNumberValue {
  VALUE_1 = '2', VALUE_2 = '5',
}

/**
 * EnumStringValue.
 */
export enum EnumStringValue {
  EMPTY = '' as any,
  VALUE_1 = 'VALUE_1' as any,
  VALUE_2 = 'VALUE_2' as any,
}

// shortened from StringLiteral to make the tslint enforced
{'fraction_non_alphanumeric': 0.12143526576516267, 'fraction_numerical': 0.02008300977373142, 'mean_word_length': 4.570469798657718, 'pattern_counts': {'":': 30, '<': 19, '<?xml version=': 0, '>': 19, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5420874', 'n_tokens_mistral': 2407, 'n_tokens_neox': 2362, 'n_words': 502}