anchor.diff:          #{<<"file_id">> => ObjectId}
       end,
   
  -    validate_value_test_base(
  -        #atm_data_spec{type = atm_file_type, value_constraints = ValueConstraints},
  -
  -        lists:map(fun(Guid) -> BuildFileObjectFun(Guid) end, FilesWithAllowedType),
  -
  -        lists:flatten([
  +    atm_value_validation_test_base(#atm_value_validation_testcase{
  +        data_spec = #atm_data_spec{
  +            type = atm_file_type,
  +            value_constraints = ValueConstraints
  +        },
  +        valid_values = lists:map(BuildFileObjectFun, FilesWithAllowedType),
  +        invalid_values_with_exp_errors = lists:flatten([
               lists:map(fun(Value) ->
                   {Value, ?ERROR_ATM_DATA_TYPE_UNVERIFIED(Value, atm_file_type)} end,
                   [5.5, <<"NaN">>, [5], #{<<"file_id">> => 5}]
  
positive.code:                 #{<<"host">> => <<"host">>, <<"accessToken">> => 5}
              ]
          )
      ).
  
  
  atm_range_value_validation_test(_Config) ->
      validate_value_test_base(
          #atm_data_spec{type = atm_range_type},
          [
              #{<<"end">> => 10},
              #{<<"start">> => 1, <<"end">> => 10},
              #{<<"start">> => -5, <<"end">> => 10, <<"step">> => 2},
  
negative.code:                 BuildTSMeasurement(<<"awesome">>)
              ])
          ])
      }).
  
  
  %% @private
  atm_value_validation_test_base(#atm_value_validation_testcase{
      data_spec = AtmDataSpec,
      valid_values = ValidValues,
      invalid_values_with_exp_errors = InvalidValuesAndExpErrors
  }) ->
      AtmWorkflowExecutionAuth = create_workflow_execution_auth(),
  
      lists:foreach(fun(ValidValue) ->
  