validateModelSimilarityParams()

in hugegraph-hubble/hubble-fe/src/stores/GraphManagementStore/dataAnalyzeStore/algorithmAnalyzerStore.ts [712:840]


  validateModelSimilarityParams<T extends keyof ModelSimilarityParams>(key: T) {
    const value = this.modelSimilarityParams[key];

    switch (key) {
      case 'source':
        if (isEmpty(value)) {
          this.validateModelSimilartiyParamsErrorMessage[key] = i18next.t(
            'data-analyze.algorithm-forms.model-similarity.validations.no-empty'
          );

          return;
        }

        break;
      case 'least_neighbor':
        if (isEmpty(value)) {
          this.validateModelSimilartiyParamsErrorMessage[key] = i18next.t(
            'data-analyze.algorithm-forms.model-similarity.validations.no-empty'
          );

          return;
        }

        if (!isInt(value as string, { min: 1 })) {
          this.validateModelSimilartiyParamsErrorMessage[key] = i18next.t(
            'data-analyze.algorithm-forms.model-similarity.validations.postive-integer-only'
          );

          return;
        }

        break;
      case 'similarity':
        if (isEmpty(value)) {
          this.validateModelSimilartiyParamsErrorMessage[key] = i18next.t(
            'data-analyze.algorithm-forms.model-similarity.validations.no-empty'
          );

          return;
        }

        if (
          Object.is(Number(value), NaN) ||
          Number(value) > 1 ||
          Number(value) <= 0
        ) {
          this.validateModelSimilartiyParamsErrorMessage[key] = i18next.t(
            'data-analyze.algorithm-forms.model-similarity.validations.similarity'
          );

          return;
        }

        break;
      case 'max_similar':
        if (value !== '' && !isInt(value as string, { min: 0 })) {
          this.validateModelSimilartiyParamsErrorMessage[key] = i18next.t(
            'data-analyze.algorithm-forms.model-similarity.validations.integer-only'
          );

          return;
        }

        break;
      case 'least_similar':
        if (value !== '' && !isInt(value as string, { min: 1 })) {
          this.validateModelSimilartiyParamsErrorMessage[key] = i18next.t(
            'data-analyze.algorithm-forms.model-similarity.validations.postive-integer-only'
          );

          return;
        }

        break;
      case 'least_property_number':
        if (
          !isEmpty(this.modelSimilarityParams.property_filter) &&
          isEmpty(value)
        ) {
          this.validateModelSimilartiyParamsErrorMessage[key] = i18next.t(
            'data-analyze.algorithm-forms.model-similarity.validations.no-empty'
          );

          return;
        }

        if (value !== '' && !isInt(value as string, { min: 2 })) {
          this.validateModelSimilartiyParamsErrorMessage[key] = i18next.t(
            'data-analyze.algorithm-forms.model-similarity.validations.integer-gt-1'
          );

          return;
        }

        break;
      case 'max_degree':
        if (!isGtNegativeOneButZero(value as string)) {
          this.validateModelSimilartiyParamsErrorMessage[key] = i18next.t(
            'data-analyze.algorithm-forms.model-similarity.validations.positive-integer-or-negative-one-only'
          );

          return;
        }

        break;
      case 'capacity':
        if (!isGtNegativeOneButZero(value as string)) {
          this.validateModelSimilartiyParamsErrorMessage[key] = i18next.t(
            'data-analyze.algorithm-forms.model-similarity.validations.positive-integer-or-negative-one-only'
          );

          return;
        }

        break;
      case 'limit':
        if (!isGtNegativeOneButZero(value as string)) {
          this.validateModelSimilartiyParamsErrorMessage[key] = i18next.t(
            'data-analyze.algorithm-forms.model-similarity.validations.positive-integer-or-negative-one-only'
          );

          return;
        }

        break;
    }

    this.validateModelSimilartiyParamsErrorMessage[key] = '';
  }