зеркало из https://github.com/SixLabors/Core.git
Update submodule and fix warnings.
This commit is contained in:
Родитель
eff176030f
Коммит
eb82ffdd0c
|
@ -0,0 +1,372 @@
|
||||||
|
###############################################################################
|
||||||
|
# EditorConfig is awesome: http://EditorConfig.org
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Top-most EditorConfig file
|
||||||
|
###############################################################################
|
||||||
|
root = true
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Set default behavior to:
|
||||||
|
# a UTF-8 encoding,
|
||||||
|
# Unix-style line endings,
|
||||||
|
# a newline ending the file,
|
||||||
|
# 4 space indentation, and
|
||||||
|
# trimming of trailing whitespace
|
||||||
|
###############################################################################
|
||||||
|
[*]
|
||||||
|
charset = utf-8
|
||||||
|
end_of_line = lf
|
||||||
|
insert_final_newline = true
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 4
|
||||||
|
trim_trailing_whitespace = true
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Set file behavior to:
|
||||||
|
# 2 space indentation
|
||||||
|
###############################################################################
|
||||||
|
[*.{cmd,config,csproj,json,props,ps1,resx,sh,targets}]
|
||||||
|
indent_size = 2
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Set file behavior to:
|
||||||
|
# Windows-style line endings, and
|
||||||
|
# tabular indentation
|
||||||
|
###############################################################################
|
||||||
|
[*.sln]
|
||||||
|
end_of_line = crlf
|
||||||
|
indent_style = tab
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Set dotnet naming rules to:
|
||||||
|
# suggest async members be pascal case suffixed with Async
|
||||||
|
# suggest const declarations be pascal case
|
||||||
|
# suggest interfaces be pascal case prefixed with I
|
||||||
|
# suggest parameters be camel case
|
||||||
|
# suggest private and internal static fields be camel case
|
||||||
|
# suggest private and internal fields be camel case
|
||||||
|
# suggest public and protected declarations be pascal case
|
||||||
|
# suggest static readonly declarations be pascal case
|
||||||
|
# suggest type parameters be prefixed with T
|
||||||
|
###############################################################################
|
||||||
|
[*.cs]
|
||||||
|
dotnet_naming_rule.async_members_should_be_pascal_case_suffixed_with_async.severity = suggestion
|
||||||
|
dotnet_naming_rule.async_members_should_be_pascal_case_suffixed_with_async.style = pascal_case_suffixed_with_async
|
||||||
|
dotnet_naming_rule.async_members_should_be_pascal_case_suffixed_with_async.symbols = async_members
|
||||||
|
|
||||||
|
dotnet_naming_rule.const_declarations_should_be_pascal_case.severity = suggestion
|
||||||
|
dotnet_naming_rule.const_declarations_should_be_pascal_case.style = pascal_case
|
||||||
|
dotnet_naming_rule.const_declarations_should_be_pascal_case.symbols = const_declarations
|
||||||
|
|
||||||
|
dotnet_naming_rule.interfaces_should_be_pascal_case_prefixed_with_i.severity = suggestion
|
||||||
|
dotnet_naming_rule.interfaces_should_be_pascal_case_prefixed_with_i.style = pascal_case_prefixed_with_i
|
||||||
|
dotnet_naming_rule.interfaces_should_be_pascal_case_prefixed_with_i.symbols = interfaces
|
||||||
|
|
||||||
|
dotnet_naming_rule.parameters_should_be_camel_case.severity = suggestion
|
||||||
|
dotnet_naming_rule.parameters_should_be_camel_case.style = camel_case
|
||||||
|
dotnet_naming_rule.parameters_should_be_camel_case.symbols = parameters
|
||||||
|
|
||||||
|
dotnet_naming_rule.private_and_internal_static_fields_should_be_camel_case.severity = suggestion
|
||||||
|
dotnet_naming_rule.private_and_internal_static_fields_should_be_camel_case.style = camel_case
|
||||||
|
dotnet_naming_rule.private_and_internal_static_fields_should_be_camel_case.symbols = private_and_internal_static_fields
|
||||||
|
|
||||||
|
dotnet_naming_rule.private_and_internal_fields_should_be_camel_case.severity = suggestion
|
||||||
|
dotnet_naming_rule.private_and_internal_fields_should_be_camel_case.style = camel_case
|
||||||
|
dotnet_naming_rule.private_and_internal_fields_should_be_camel_case.symbols = private_and_internal_fields
|
||||||
|
|
||||||
|
dotnet_naming_rule.public_and_protected_declarations_should_be_pascal_case.severity = suggestion
|
||||||
|
dotnet_naming_rule.public_and_protected_declarations_should_be_pascal_case.style = pascal_case
|
||||||
|
dotnet_naming_rule.public_and_protected_declarations_should_be_pascal_case.symbols = public_and_protected_declarations
|
||||||
|
dotnet_naming_symbols.public_and_protected_declarations.applicable_kinds = method, field, event, property
|
||||||
|
|
||||||
|
dotnet_naming_rule.static_readonly_declarations_should_be_pascal_case.severity = suggestion
|
||||||
|
dotnet_naming_rule.static_readonly_declarations_should_be_pascal_case.style = pascal_case
|
||||||
|
dotnet_naming_rule.static_readonly_declarations_should_be_pascal_case.symbols = static_readonly_declarations
|
||||||
|
|
||||||
|
dotnet_naming_rule.type_parameters_should_be_pascal_case_prefixed_with_t.severity = suggestion
|
||||||
|
dotnet_naming_rule.type_parameters_should_be_pascal_case_prefixed_with_t.style = pascal_case_prefixed_with_t
|
||||||
|
dotnet_naming_rule.type_parameters_should_be_pascal_case_prefixed_with_t.symbols = type_parameters
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Set dotnet naming styles to define:
|
||||||
|
# camel case
|
||||||
|
# pascal case
|
||||||
|
# pascal case suffixed with Async
|
||||||
|
# pascal case prefixed with I
|
||||||
|
# pascal case prefixed with T
|
||||||
|
###############################################################################
|
||||||
|
[*.cs]
|
||||||
|
dotnet_naming_style.camel_case.capitalization = camel_case
|
||||||
|
|
||||||
|
dotnet_naming_style.pascal_case.capitalization = pascal_case
|
||||||
|
|
||||||
|
dotnet_naming_style.pascal_case_suffixed_with_async.capitalization = pascal_case
|
||||||
|
dotnet_naming_style.pascal_case_suffixed_with_async.required_suffix = Async
|
||||||
|
|
||||||
|
dotnet_naming_style.pascal_case_prefixed_with_i.capitalization = pascal_case
|
||||||
|
dotnet_naming_style.pascal_case_prefixed_with_i.required_prefix = I
|
||||||
|
|
||||||
|
dotnet_naming_style.pascal_case_prefixed_with_t.capitalization = pascal_case
|
||||||
|
dotnet_naming_style.pascal_case_prefixed_with_t.required_prefix = T
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Set dotnet naming symbols to:
|
||||||
|
# async members
|
||||||
|
# const declarations
|
||||||
|
# interfaces
|
||||||
|
# private and internal fields
|
||||||
|
# private and internal static fields
|
||||||
|
# public and protected declarations
|
||||||
|
# static readonly declarations
|
||||||
|
# type parameters
|
||||||
|
###############################################################################
|
||||||
|
[*.cs]
|
||||||
|
dotnet_naming_symbols.async_members.required_modifiers = async
|
||||||
|
|
||||||
|
dotnet_naming_symbols.const_declarations.required_modifiers = const
|
||||||
|
|
||||||
|
dotnet_naming_symbols.interfaces.applicable_kinds = interface
|
||||||
|
|
||||||
|
dotnet_naming_symbols.parameters.applicable_kinds = parameter
|
||||||
|
|
||||||
|
dotnet_naming_symbols.private_and_internal_fields.applicable_accessibilities = private, internal
|
||||||
|
dotnet_naming_symbols.private_and_internal_fields.applicable_kinds = field
|
||||||
|
|
||||||
|
dotnet_naming_symbols.private_and_internal_static_fields.applicable_accessibilities = private, internal
|
||||||
|
dotnet_naming_symbols.private_and_internal_static_fields.applicable_kinds = field
|
||||||
|
dotnet_naming_symbols.private_and_internal_static_fields.required_modifiers = static
|
||||||
|
|
||||||
|
dotnet_naming_symbols.public_and_protected_declarations.applicable_accessibilities = public, protected
|
||||||
|
|
||||||
|
dotnet_naming_symbols.static_readonly_declarations.required_modifiers = static, readonly
|
||||||
|
|
||||||
|
dotnet_naming_symbols.type_parameters.applicable_kinds = type_parameter
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Set dotnet sort options to:
|
||||||
|
# do not separate import directives into groups, and
|
||||||
|
# sort system directives first
|
||||||
|
###############################################################################
|
||||||
|
[*.cs]
|
||||||
|
dotnet_separate_import_directive_groups = false
|
||||||
|
dotnet_sort_system_directives_first = true
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Set dotnet style options to:
|
||||||
|
# suggest null-coalescing expressions,
|
||||||
|
# suggest collection-initializers,
|
||||||
|
# suggest explicit tuple names,
|
||||||
|
# suggest null-propogation
|
||||||
|
# suggest object-initializers,
|
||||||
|
# generate parentheses in arithmetic binary operators for clarity,
|
||||||
|
# generate parentheses in other binary operators for clarity,
|
||||||
|
# don't generate parentheses in other operators if unnecessary,
|
||||||
|
# generate parentheses in relational binary operators for clarity,
|
||||||
|
# warn when not using predefined-types for locals, parameters, and members,
|
||||||
|
# generate predefined-types of type names for member access,
|
||||||
|
# generate auto properties,
|
||||||
|
# suggest compound assignment,
|
||||||
|
# generate conditional expression over assignment,
|
||||||
|
# generate conditional expression over return,
|
||||||
|
# suggest inferred anonymous types,
|
||||||
|
# suggest inferred tuple names,
|
||||||
|
# suggest 'is null' checks over '== null',
|
||||||
|
# don't generate 'this.' and 'Me.' for events,
|
||||||
|
# warn when not using 'this.' and 'Me.' for fields,
|
||||||
|
# warn when not using 'this.' and 'Me.' for methods,
|
||||||
|
# warn when not using 'this.' and 'Me.' for properties,
|
||||||
|
# suggest readonly fields, and
|
||||||
|
# generate accessibility modifiers for non interface members
|
||||||
|
###############################################################################
|
||||||
|
[*.cs]
|
||||||
|
dotnet_style_coalesce_expression = true:suggestion
|
||||||
|
dotnet_style_collection_initializer = true:suggestion
|
||||||
|
dotnet_style_explicit_tuple_names = true:suggestion
|
||||||
|
dotnet_style_null_propagation = true:suggestion
|
||||||
|
dotnet_style_object_initializer = true:suggestion
|
||||||
|
|
||||||
|
dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:silent
|
||||||
|
dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:silent
|
||||||
|
dotnet_style_parentheses_in_other_operators = never_if_unnecessary:silent
|
||||||
|
dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:silent
|
||||||
|
|
||||||
|
dotnet_style_predefined_type_for_locals_parameters_members = true:warning
|
||||||
|
dotnet_style_predefined_type_for_member_access = true:silent
|
||||||
|
|
||||||
|
dotnet_style_prefer_auto_properties = true:silent
|
||||||
|
dotnet_style_prefer_compound_assignment = true:suggestion
|
||||||
|
dotnet_style_prefer_conditional_expression_over_assignment = true:silent
|
||||||
|
dotnet_style_prefer_conditional_expression_over_return = true:silent
|
||||||
|
dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion
|
||||||
|
dotnet_style_prefer_inferred_tuple_names = true:suggestion
|
||||||
|
dotnet_style_prefer_is_null_check_over_reference_equality_method = true:suggestion
|
||||||
|
|
||||||
|
dotnet_style_qualification_for_event = false:silent
|
||||||
|
dotnet_style_qualification_for_field = true:warning
|
||||||
|
dotnet_style_qualification_for_method = true:warning
|
||||||
|
dotnet_style_qualification_for_property = true:warning
|
||||||
|
|
||||||
|
dotnet_style_readonly_field = true:suggestion
|
||||||
|
dotnet_style_require_accessibility_modifiers = for_non_interface_members:silent
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Set dotnet style options to:
|
||||||
|
# suggest removing all unused parameters
|
||||||
|
###############################################################################
|
||||||
|
[*.cs]
|
||||||
|
dotnet_code_quality_unused_parameters = all:suggestion
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Set csharp indent options to:
|
||||||
|
# indent block contents,
|
||||||
|
# not indent braces,
|
||||||
|
# indent case contents,
|
||||||
|
# not indent case contents when block,
|
||||||
|
# indent labels one less than the current, and
|
||||||
|
# indent switch labels
|
||||||
|
###############################################################################
|
||||||
|
[*.cs]
|
||||||
|
csharp_indent_block_contents = true
|
||||||
|
csharp_indent_braces = false
|
||||||
|
csharp_indent_case_contents = true
|
||||||
|
csharp_indent_case_contents_when_block = false
|
||||||
|
csharp_indent_labels = one_less_than_current
|
||||||
|
csharp_indent_switch_labels = true
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Set csharp new-line options to:
|
||||||
|
# insert a new-line before "catch",
|
||||||
|
# insert a new-line before "else",
|
||||||
|
# insert a new-line before "finally",
|
||||||
|
# insert a new-line before members in anonymous-types,
|
||||||
|
# insert a new-line before members in object-initializers, and
|
||||||
|
# insert a new-line before all open braces
|
||||||
|
###############################################################################
|
||||||
|
[*.cs]
|
||||||
|
csharp_new_line_before_catch = true
|
||||||
|
csharp_new_line_before_else = true
|
||||||
|
csharp_new_line_before_finally = true
|
||||||
|
|
||||||
|
csharp_new_line_before_members_in_anonymous_types = true
|
||||||
|
csharp_new_line_before_members_in_object_initializers = true
|
||||||
|
|
||||||
|
csharp_new_line_before_open_brace = all
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Set csharp preserve options to:
|
||||||
|
# preserve single-line blocks, and
|
||||||
|
# preserve single-line statements
|
||||||
|
###############################################################################
|
||||||
|
[*.cs]
|
||||||
|
csharp_preserve_single_line_blocks = true
|
||||||
|
csharp_preserve_single_line_statements = true
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Set csharp space options to:
|
||||||
|
# remove any space after a cast,
|
||||||
|
# add a space after the colon in an inheritance clause,
|
||||||
|
# add a space after a comma,
|
||||||
|
# remove any space after a dot,
|
||||||
|
# add a space after keywords in control flow statements,
|
||||||
|
# add a space after a semicolon in a "for" statement,
|
||||||
|
# add a space before and after binary operators,
|
||||||
|
# remove space around declaration statements,
|
||||||
|
# add a space before the colon in an inheritance clause,
|
||||||
|
# remove any space before a comma,
|
||||||
|
# remove any space before a dot,
|
||||||
|
# remove any space before an open square-bracket,
|
||||||
|
# remove any space before a semicolon in a "for" statement,
|
||||||
|
# remove any space between empty square-brackets,
|
||||||
|
# remove any space between a method call's empty parameter list parenthesis,
|
||||||
|
# remove any space between a method call's name and its opening parenthesis,
|
||||||
|
# remove any space between a method call's parameter list parenthesis,
|
||||||
|
# remove any space between a method declaration's empty parameter list parenthesis,
|
||||||
|
# remove any space between a method declaration's name and its openening parenthesis,
|
||||||
|
# remove any space between a method declaration's parameter list parenthesis,
|
||||||
|
# remove any space between parentheses, and
|
||||||
|
# remove any space between square brackets
|
||||||
|
###############################################################################
|
||||||
|
[*.cs]
|
||||||
|
csharp_space_after_cast = false
|
||||||
|
csharp_space_after_colon_in_inheritance_clause = true
|
||||||
|
csharp_space_after_comma = true
|
||||||
|
csharp_space_after_dot = false
|
||||||
|
csharp_space_after_keywords_in_control_flow_statements = true
|
||||||
|
csharp_space_after_semicolon_in_for_statement = true
|
||||||
|
|
||||||
|
csharp_space_around_binary_operators = before_and_after
|
||||||
|
csharp_space_around_declaration_statements = do_not_ignore
|
||||||
|
|
||||||
|
csharp_space_before_colon_in_inheritance_clause = true
|
||||||
|
csharp_space_before_comma = false
|
||||||
|
csharp_space_before_dot = false
|
||||||
|
csharp_space_before_open_square_brackets = false
|
||||||
|
csharp_space_before_semicolon_in_for_statement = false
|
||||||
|
|
||||||
|
csharp_space_between_empty_square_brackets = false
|
||||||
|
csharp_space_between_method_call_empty_parameter_list_parentheses = false
|
||||||
|
csharp_space_between_method_call_name_and_opening_parenthesis = false
|
||||||
|
csharp_space_between_method_call_parameter_list_parentheses = false
|
||||||
|
csharp_space_between_method_declaration_empty_parameter_list_parentheses = false
|
||||||
|
csharp_space_between_method_declaration_name_and_open_parenthesis = false
|
||||||
|
csharp_space_between_method_declaration_parameter_list_parentheses = false
|
||||||
|
csharp_space_between_parentheses = false
|
||||||
|
csharp_space_between_square_brackets = false
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Set csharp style options to:
|
||||||
|
# generate braces,
|
||||||
|
# suggest simple default expressions,
|
||||||
|
# generate a preferred modifier order,
|
||||||
|
# suggest conditional delegate calls,
|
||||||
|
# suggest deconstructed variable declarations,
|
||||||
|
# generate expression-bodied accessors,
|
||||||
|
# generate expression-bodied constructors,
|
||||||
|
# generate expression-bodied indexers,
|
||||||
|
# generate expression-bodied lambdas,
|
||||||
|
# generate expression-bodied methods,
|
||||||
|
# generate expression-bodied operators,
|
||||||
|
# generate expression-bodied properties,
|
||||||
|
# suggest inlined variable declarations,
|
||||||
|
# suggest local over anonymous functions,
|
||||||
|
# suggest pattern-matching over "as" with "null" check,
|
||||||
|
# suggest pattern-matching over "is" with "cast" check,
|
||||||
|
# suggest throw expressions,
|
||||||
|
# generate a discard variable for unused value expression statements,
|
||||||
|
# suggest a discard variable for unused assignments,
|
||||||
|
# warn when using var for built-in types,
|
||||||
|
# warn when using var when the type is not apparent, and
|
||||||
|
# warn when not using var when the type is apparent
|
||||||
|
###############################################################################
|
||||||
|
[*.cs]
|
||||||
|
csharp_prefer_braces = true:silent
|
||||||
|
csharp_prefer_simple_default_expression = true:suggestion
|
||||||
|
csharp_preferred_modifier_order = public,private,protected,internal,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,volatile,async:silent
|
||||||
|
|
||||||
|
csharp_style_conditional_delegate_call = true:suggestion
|
||||||
|
csharp_style_deconstructed_variable_declaration = true:suggestion
|
||||||
|
|
||||||
|
csharp_style_expression_bodied_accessors = true:silent
|
||||||
|
csharp_style_expression_bodied_constructors = true:silent
|
||||||
|
csharp_style_expression_bodied_indexers = true:silent
|
||||||
|
csharp_style_expression_bodied_lambdas = true:silent
|
||||||
|
csharp_style_expression_bodied_methods = true:silent
|
||||||
|
csharp_style_expression_bodied_operators = true:silent
|
||||||
|
csharp_style_expression_bodied_properties = true:silent
|
||||||
|
|
||||||
|
csharp_style_inlined_variable_declaration = true:suggestion
|
||||||
|
|
||||||
|
csharp_style_pattern_local_over_anonymous_function = true:suggestion
|
||||||
|
csharp_style_pattern_matching_over_as_with_null_check = true:suggestion
|
||||||
|
csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion
|
||||||
|
|
||||||
|
csharp_style_throw_expression = true:suggestion
|
||||||
|
|
||||||
|
csharp_style_unused_value_expression_statement_preference = discard_variable:silent
|
||||||
|
csharp_style_unused_value_assignment_preference = discard_variable:suggestion
|
||||||
|
|
||||||
|
csharp_style_var_for_built_in_types = false:warning
|
||||||
|
csharp_style_var_elsewhere = false:warning
|
||||||
|
csharp_style_var_when_type_is_apparent = true:warning
|
|
@ -0,0 +1,108 @@
|
||||||
|
###############################################################################
|
||||||
|
# Set default behavior to:
|
||||||
|
# treat as text and
|
||||||
|
# normalize to Unix-style line endings
|
||||||
|
###############################################################################
|
||||||
|
* text eol=lf
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Set explicit file behavior to:
|
||||||
|
# treat as text and
|
||||||
|
# normalize to Unix-style line endings
|
||||||
|
###############################################################################
|
||||||
|
*.asm text eol=lf
|
||||||
|
*.c text eol=lf
|
||||||
|
*.clj text eol=lf
|
||||||
|
*.cmd text eol=lf
|
||||||
|
*.cpp text eol=lf
|
||||||
|
*.css text eol=lf
|
||||||
|
*.cxx text eol=lf
|
||||||
|
*.config text eol=lf
|
||||||
|
*.DotSettings text eol=lf
|
||||||
|
*.erl text eol=lf
|
||||||
|
*.fs text eol=lf
|
||||||
|
*.fsx text eol=lf
|
||||||
|
*.h text eol=lf
|
||||||
|
*.htm text eol=lf
|
||||||
|
*.html text eol=lf
|
||||||
|
*.hs text eol=lf
|
||||||
|
*.hxx text eol=lf
|
||||||
|
*.java text eol=lf
|
||||||
|
*.js text eol=lf
|
||||||
|
*.json text eol=lf
|
||||||
|
*.less text eol=lf
|
||||||
|
*.lisp text eol=lf
|
||||||
|
*.lua text eol=lf
|
||||||
|
*.m text eol=lf
|
||||||
|
*.md text eol=lf
|
||||||
|
*.php text eol=lf
|
||||||
|
*.props text eol=lf
|
||||||
|
*.ps1 text eol=lf
|
||||||
|
*.py text eol=lf
|
||||||
|
*.rb text eol=lf
|
||||||
|
*.resx text eol=lf
|
||||||
|
*.runsettings text eol=lf
|
||||||
|
*.ruleset text eol=lf
|
||||||
|
*.sass text eol=lf
|
||||||
|
*.scss text eol=lf
|
||||||
|
*.sh text eol=lf
|
||||||
|
*.sql text eol=lf
|
||||||
|
*.svg text eol=lf
|
||||||
|
*.targets text eol=lf
|
||||||
|
*.tt text eol=crlf
|
||||||
|
*.ttinclude text eol=crlf
|
||||||
|
*.txt text eol=lf
|
||||||
|
*.vb text eol=lf
|
||||||
|
*.yml text eol=lf
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Set explicit file behavior to:
|
||||||
|
# treat as text
|
||||||
|
# normalize to Unix-style line endings and
|
||||||
|
# diff as csharp
|
||||||
|
###############################################################################
|
||||||
|
*.cs text eol=lf diff=csharp
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Set explicit file behavior to:
|
||||||
|
# treat as text
|
||||||
|
# normalize to Unix-style line endings and
|
||||||
|
# use a union merge when resoling conflicts
|
||||||
|
###############################################################################
|
||||||
|
*.csproj text eol=lf merge=union
|
||||||
|
*.dbproj text eol=lf merge=union
|
||||||
|
*.fsproj text eol=lf merge=union
|
||||||
|
*.ncrunchproject text eol=lf merge=union
|
||||||
|
*.vbproj text eol=lf merge=union
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Set explicit file behavior to:
|
||||||
|
# treat as text
|
||||||
|
# normalize to Windows-style line endings and
|
||||||
|
# use a union merge when resoling conflicts
|
||||||
|
###############################################################################
|
||||||
|
*.sln text eol=crlf merge=union
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Set explicit file behavior to:
|
||||||
|
# treat as binary
|
||||||
|
###############################################################################
|
||||||
|
*.bmp binary
|
||||||
|
*.dll binary
|
||||||
|
*.exe binary
|
||||||
|
*.gif binary
|
||||||
|
*.jpg binary
|
||||||
|
*.png binary
|
||||||
|
*.ttf binary
|
||||||
|
*.snk binary
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Set explicit file behavior to:
|
||||||
|
# diff as plain text
|
||||||
|
###############################################################################
|
||||||
|
*.doc diff=astextplain
|
||||||
|
*.docx diff=astextplain
|
||||||
|
*.dot diff=astextplain
|
||||||
|
*.pdf diff=astextplain
|
||||||
|
*.pptx diff=astextplain
|
||||||
|
*.rtf diff=astextplain
|
|
@ -1 +1 @@
|
||||||
Subproject commit 10fa2a5d9f3e16ff01faa857b6eaf7833a7163ca
|
Subproject commit 9b5a5b70b46bc23b9d8d8645cd691d5bc5a2d84f
|
|
@ -23,7 +23,7 @@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<CodeAnalysisRuleSet>..\SixLabors.ruleset</CodeAnalysisRuleSet>
|
<CodeAnalysisRuleSet>..\..\shared-infrastructure\SixLabors.ruleset</CodeAnalysisRuleSet>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<!-- TODO: Include .NETSTANDARD2.1 when released-->
|
<!-- TODO: Include .NETSTANDARD2.1 when released-->
|
||||||
|
@ -39,9 +39,6 @@
|
||||||
<Compile Include="..\..\shared-infrastructure\**\*.cs" />
|
<Compile Include="..\..\shared-infrastructure\**\*.cs" />
|
||||||
<AdditionalFiles Include="..\..\shared-infrastructure\stylecop.json" />
|
<AdditionalFiles Include="..\..\shared-infrastructure\stylecop.json" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<PropertyGroup>
|
|
||||||
<CodeAnalysisRuleSet>..\..\shared-infrastructure\SixLabors.ruleset</CodeAnalysisRuleSet>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118">
|
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118">
|
||||||
|
|
|
@ -1,6 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<RuleSet Name="Shaper2D" ToolsVersion="14.0">
|
|
||||||
<Rules AnalyzerId="StyleCop.Analyzers" RuleNamespace="StyleCop.Analyzers">
|
|
||||||
<Rule Id="SA1413" Action="None" />
|
|
||||||
</Rules>
|
|
||||||
</RuleSet>
|
|
|
@ -1,10 +1,11 @@
|
||||||
// Copyright (c) Six Labors and contributors.
|
// Copyright (c) Six Labors and contributors.
|
||||||
// Licensed under the Apache License, Version 2.0.
|
// Licensed under the Apache License, Version 2.0.
|
||||||
|
|
||||||
// tell this file to enable debug conditional method calls, i.e. all the debug guard calls
|
// tell this file to enable debug conditional method calls, i.e. all the debug guard calls
|
||||||
#define DEBUG
|
#define DEBUG
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
|
@ -21,12 +22,12 @@ namespace SixLabors.Helpers.Tests
|
||||||
[Fact]
|
[Fact]
|
||||||
public void AllStaticMethodsOnOnDebugGuardHaveDEBUGConditional()
|
public void AllStaticMethodsOnOnDebugGuardHaveDEBUGConditional()
|
||||||
{
|
{
|
||||||
var methods = typeof(DebugGuard).GetTypeInfo().GetMethods()
|
IEnumerable<MethodInfo> methods = typeof(DebugGuard).GetTypeInfo().GetMethods()
|
||||||
.Where(x => x.IsStatic);
|
.Where(x => x.IsStatic);
|
||||||
|
|
||||||
foreach (var m in methods)
|
foreach (MethodInfo m in methods)
|
||||||
{
|
{
|
||||||
var attribs = m.GetCustomAttributes<ConditionalAttribute>();
|
IEnumerable<ConditionalAttribute> attribs = m.GetCustomAttributes<ConditionalAttribute>();
|
||||||
Assert.True(attribs.Select(x => x.ConditionString).Contains("DEBUG"), $"Method '{m.Name}' does not have [Conditional(\"DEBUG\")] set.");
|
Assert.True(attribs.Select(x => x.ConditionString).Contains("DEBUG"), $"Method '{m.Name}' does not have [Conditional(\"DEBUG\")] set.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -41,7 +42,7 @@ namespace SixLabors.Helpers.Tests
|
||||||
[Fact]
|
[Fact]
|
||||||
public void NotNull_WhenNotNull()
|
public void NotNull_WhenNotNull()
|
||||||
{
|
{
|
||||||
Foo foo = new Foo();
|
var foo = new Foo();
|
||||||
Guard.NotNull(foo, nameof(foo));
|
Guard.NotNull(foo, nameof(foo));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -152,10 +153,8 @@ namespace SixLabors.Helpers.Tests
|
||||||
[InlineData(1, 1)]
|
[InlineData(1, 1)]
|
||||||
public void MustBeLessThan_IsGreaterOrEqual_ThrowsNoException(int value, int max)
|
public void MustBeLessThan_IsGreaterOrEqual_ThrowsNoException(int value, int max)
|
||||||
{
|
{
|
||||||
var exception = Assert.Throws<ArgumentOutOfRangeException>(() =>
|
ArgumentOutOfRangeException exception = Assert.Throws<ArgumentOutOfRangeException>(
|
||||||
{
|
() => DebugGuard.MustBeLessThan(value, max, "myParamName"));
|
||||||
DebugGuard.MustBeLessThan(value, max, "myParamName");
|
|
||||||
});
|
|
||||||
|
|
||||||
Assert.Equal("myParamName", exception.ParamName);
|
Assert.Equal("myParamName", exception.ParamName);
|
||||||
Assert.Contains($"Value {value} must be less than {max}.", exception.Message);
|
Assert.Contains($"Value {value} must be less than {max}.", exception.Message);
|
||||||
|
@ -172,10 +171,7 @@ namespace SixLabors.Helpers.Tests
|
||||||
[Fact]
|
[Fact]
|
||||||
public void MustBeLessThanOrEqualTo_IsGreater_ThrowsNoException()
|
public void MustBeLessThanOrEqualTo_IsGreater_ThrowsNoException()
|
||||||
{
|
{
|
||||||
var exception = Assert.Throws<ArgumentOutOfRangeException>(() =>
|
ArgumentOutOfRangeException exception = Assert.Throws<ArgumentOutOfRangeException>(() => DebugGuard.MustBeLessThanOrEqualTo(2, 1, "myParamName"));
|
||||||
{
|
|
||||||
DebugGuard.MustBeLessThanOrEqualTo(2, 1, "myParamName");
|
|
||||||
});
|
|
||||||
|
|
||||||
Assert.Equal("myParamName", exception.ParamName);
|
Assert.Equal("myParamName", exception.ParamName);
|
||||||
Assert.Contains($"Value 2 must be less than or equal to 1.", exception.Message);
|
Assert.Contains($"Value 2 must be less than or equal to 1.", exception.Message);
|
||||||
|
@ -192,10 +188,8 @@ namespace SixLabors.Helpers.Tests
|
||||||
[InlineData(1, 1)]
|
[InlineData(1, 1)]
|
||||||
public void MustBeGreaterThan_IsLessOrEqual_ThrowsNoException(int value, int min)
|
public void MustBeGreaterThan_IsLessOrEqual_ThrowsNoException(int value, int min)
|
||||||
{
|
{
|
||||||
var exception = Assert.Throws<ArgumentOutOfRangeException>(() =>
|
ArgumentOutOfRangeException exception = Assert.Throws<ArgumentOutOfRangeException>(
|
||||||
{
|
() => DebugGuard.MustBeGreaterThan(value, min, "myParamName"));
|
||||||
DebugGuard.MustBeGreaterThan(value, min, "myParamName");
|
|
||||||
});
|
|
||||||
|
|
||||||
Assert.Equal("myParamName", exception.ParamName);
|
Assert.Equal("myParamName", exception.ParamName);
|
||||||
Assert.Contains($"Value {value} must be greater than {min}.", exception.Message);
|
Assert.Contains($"Value {value} must be greater than {min}.", exception.Message);
|
||||||
|
@ -212,10 +206,8 @@ namespace SixLabors.Helpers.Tests
|
||||||
[Fact]
|
[Fact]
|
||||||
public void MustBeGreaterThanOrEqualTo_IsLess_ThrowsNoException()
|
public void MustBeGreaterThanOrEqualTo_IsLess_ThrowsNoException()
|
||||||
{
|
{
|
||||||
var exception = Assert.Throws<ArgumentOutOfRangeException>(() =>
|
ArgumentOutOfRangeException exception = Assert.Throws<ArgumentOutOfRangeException>(
|
||||||
{
|
() => DebugGuard.MustBeGreaterThanOrEqualTo(1, 2, "myParamName"));
|
||||||
DebugGuard.MustBeGreaterThanOrEqualTo(1, 2, "myParamName");
|
|
||||||
});
|
|
||||||
|
|
||||||
Assert.Equal("myParamName", exception.ParamName);
|
Assert.Equal("myParamName", exception.ParamName);
|
||||||
Assert.Contains($"Value 1 must be greater than or equal to 2.", exception.Message);
|
Assert.Contains($"Value 1 must be greater than or equal to 2.", exception.Message);
|
||||||
|
@ -232,10 +224,8 @@ namespace SixLabors.Helpers.Tests
|
||||||
[Fact]
|
[Fact]
|
||||||
public void MustBeSizedAtLeast_Array_LengthIsLess_ThrowsException()
|
public void MustBeSizedAtLeast_Array_LengthIsLess_ThrowsException()
|
||||||
{
|
{
|
||||||
var exception = Assert.Throws<ArgumentException>(() =>
|
ArgumentException exception = Assert.Throws<ArgumentException>(
|
||||||
{
|
() => DebugGuard.MustBeSizedAtLeast<int>(new int[] { 1, 2 }, 3, "myParamName"));
|
||||||
DebugGuard.MustBeSizedAtLeast<int>(new int[] { 1, 2 }, 3, "myParamName");
|
|
||||||
});
|
|
||||||
|
|
||||||
Assert.Equal("myParamName", exception.ParamName);
|
Assert.Equal("myParamName", exception.ParamName);
|
||||||
Assert.Contains($"The size must be at least 3.", exception.Message);
|
Assert.Contains($"The size must be at least 3.", exception.Message);
|
||||||
|
|
|
@ -133,7 +133,7 @@ namespace SixLabors.Helpers.Tests
|
||||||
[InlineData(1, 1)]
|
[InlineData(1, 1)]
|
||||||
public void MustBeLessThan_IsGreaterOrEqual_ThrowsNoException(int value, int max)
|
public void MustBeLessThan_IsGreaterOrEqual_ThrowsNoException(int value, int max)
|
||||||
{
|
{
|
||||||
var exception = Assert.Throws<ArgumentOutOfRangeException>(() =>
|
ArgumentOutOfRangeException exception = Assert.Throws<ArgumentOutOfRangeException>(() =>
|
||||||
{
|
{
|
||||||
Guard.MustBeLessThan(value, max, "myParamName");
|
Guard.MustBeLessThan(value, max, "myParamName");
|
||||||
});
|
});
|
||||||
|
@ -153,7 +153,7 @@ namespace SixLabors.Helpers.Tests
|
||||||
[Fact]
|
[Fact]
|
||||||
public void MustBeLessThanOrEqualTo_IsGreater_ThrowsNoException()
|
public void MustBeLessThanOrEqualTo_IsGreater_ThrowsNoException()
|
||||||
{
|
{
|
||||||
var exception = Assert.Throws<ArgumentOutOfRangeException>(() =>
|
ArgumentOutOfRangeException exception = Assert.Throws<ArgumentOutOfRangeException>(() =>
|
||||||
{
|
{
|
||||||
Guard.MustBeLessThanOrEqualTo(2, 1, "myParamName");
|
Guard.MustBeLessThanOrEqualTo(2, 1, "myParamName");
|
||||||
});
|
});
|
||||||
|
@ -173,7 +173,7 @@ namespace SixLabors.Helpers.Tests
|
||||||
[InlineData(1, 1)]
|
[InlineData(1, 1)]
|
||||||
public void MustBeGreaterThan_IsLessOrEqual_ThrowsNoException(int value, int min)
|
public void MustBeGreaterThan_IsLessOrEqual_ThrowsNoException(int value, int min)
|
||||||
{
|
{
|
||||||
var exception = Assert.Throws<ArgumentOutOfRangeException>(() =>
|
ArgumentOutOfRangeException exception = Assert.Throws<ArgumentOutOfRangeException>(() =>
|
||||||
{
|
{
|
||||||
Guard.MustBeGreaterThan(value, min, "myParamName");
|
Guard.MustBeGreaterThan(value, min, "myParamName");
|
||||||
});
|
});
|
||||||
|
@ -193,7 +193,7 @@ namespace SixLabors.Helpers.Tests
|
||||||
[Fact]
|
[Fact]
|
||||||
public void MustBeGreaterThanOrEqualTo_IsLess_ThrowsNoException()
|
public void MustBeGreaterThanOrEqualTo_IsLess_ThrowsNoException()
|
||||||
{
|
{
|
||||||
var exception = Assert.Throws<ArgumentOutOfRangeException>(() =>
|
ArgumentOutOfRangeException exception = Assert.Throws<ArgumentOutOfRangeException>(() =>
|
||||||
{
|
{
|
||||||
Guard.MustBeGreaterThanOrEqualTo(1, 2, "myParamName");
|
Guard.MustBeGreaterThanOrEqualTo(1, 2, "myParamName");
|
||||||
});
|
});
|
||||||
|
@ -216,7 +216,7 @@ namespace SixLabors.Helpers.Tests
|
||||||
[InlineData(4, 1, 3)]
|
[InlineData(4, 1, 3)]
|
||||||
public void MustBeBetweenOrEqualTo_IsLessOrGreater_ThrowsNoException(int value, int min, int max)
|
public void MustBeBetweenOrEqualTo_IsLessOrGreater_ThrowsNoException(int value, int min, int max)
|
||||||
{
|
{
|
||||||
var exception = Assert.Throws<ArgumentOutOfRangeException>(() =>
|
ArgumentOutOfRangeException exception = Assert.Throws<ArgumentOutOfRangeException>(() =>
|
||||||
{
|
{
|
||||||
Guard.MustBeBetweenOrEqualTo(value, min, max, "myParamName");
|
Guard.MustBeBetweenOrEqualTo(value, min, max, "myParamName");
|
||||||
});
|
});
|
||||||
|
@ -236,7 +236,7 @@ namespace SixLabors.Helpers.Tests
|
||||||
[Fact]
|
[Fact]
|
||||||
public void MustBeSizedAtLeast_Array_LengthIsLess_ThrowsException()
|
public void MustBeSizedAtLeast_Array_LengthIsLess_ThrowsException()
|
||||||
{
|
{
|
||||||
var exception = Assert.Throws<ArgumentException>(() =>
|
ArgumentException exception = Assert.Throws<ArgumentException>(() =>
|
||||||
{
|
{
|
||||||
Guard.MustBeSizedAtLeast<int>(new int[] { 1, 2 }, 3, "myParamName");
|
Guard.MustBeSizedAtLeast<int>(new int[] { 1, 2 }, 3, "myParamName");
|
||||||
});
|
});
|
||||||
|
|
|
@ -66,7 +66,7 @@ namespace SixLabors.Memory.Tests
|
||||||
[Fact]
|
[Fact]
|
||||||
public void When_PoolSelectorThresholdInBytes_IsGreaterThan_MaxPooledBufferSizeInBytes_ExceptionIsThrown()
|
public void When_PoolSelectorThresholdInBytes_IsGreaterThan_MaxPooledBufferSizeInBytes_ExceptionIsThrown()
|
||||||
{
|
{
|
||||||
Assert.ThrowsAny<Exception>(() => { new ArrayPoolMemoryAllocator(100, 200); });
|
Assert.ThrowsAny<Exception>(() => new ArrayPoolMemoryAllocator(100, 200));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -169,13 +169,13 @@ namespace SixLabors.Memory.Tests
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
int arrayLengthThreshold = PoolSelectorThresholdInBytes / sizeof(int);
|
const int ArrayLengthThreshold = PoolSelectorThresholdInBytes / sizeof(int);
|
||||||
|
|
||||||
IMemoryOwner<int> small = this.MemoryAllocator.Allocate<int>(arrayLengthThreshold - 1);
|
IMemoryOwner<int> small = this.MemoryAllocator.Allocate<int>(ArrayLengthThreshold - 1);
|
||||||
ref int ptr2Small = ref small.GetReference();
|
ref int ptr2Small = ref small.GetReference();
|
||||||
small.Dispose();
|
small.Dispose();
|
||||||
|
|
||||||
IMemoryOwner<int> large = this.MemoryAllocator.Allocate<int>(arrayLengthThreshold + 1);
|
IMemoryOwner<int> large = this.MemoryAllocator.Allocate<int>(ArrayLengthThreshold + 1);
|
||||||
|
|
||||||
Assert.False(Unsafe.AreSame(ref ptr2Small, ref large.GetReference()));
|
Assert.False(Unsafe.AreSame(ref ptr2Small, ref large.GetReference()));
|
||||||
}
|
}
|
||||||
|
@ -227,7 +227,7 @@ namespace SixLabors.Memory.Tests
|
||||||
[StructLayout(LayoutKind.Sequential)]
|
[StructLayout(LayoutKind.Sequential)]
|
||||||
private struct Rgba32
|
private struct Rgba32
|
||||||
{
|
{
|
||||||
private uint dummy;
|
private readonly uint dummy;
|
||||||
}
|
}
|
||||||
|
|
||||||
private const int SizeOfLargeStruct = MaxPooledBufferSizeInBytes / 5;
|
private const int SizeOfLargeStruct = MaxPooledBufferSizeInBytes / 5;
|
||||||
|
@ -242,7 +242,7 @@ namespace SixLabors.Memory.Tests
|
||||||
[InlineData((int.MaxValue / SizeOfLargeStruct) + 1)]
|
[InlineData((int.MaxValue / SizeOfLargeStruct) + 1)]
|
||||||
public void AllocateIncorrectAmount_ThrowsCorrect_ArgumentOutOfRangeException(int length)
|
public void AllocateIncorrectAmount_ThrowsCorrect_ArgumentOutOfRangeException(int length)
|
||||||
{
|
{
|
||||||
var ex = Assert.Throws<ArgumentOutOfRangeException>(() => this.MemoryAllocator.Allocate<LargeStruct>(length));
|
ArgumentOutOfRangeException ex = Assert.Throws<ArgumentOutOfRangeException>(() => this.MemoryAllocator.Allocate<LargeStruct>(length));
|
||||||
Assert.Equal("length", ex.ParamName);
|
Assert.Equal("length", ex.ParamName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -250,8 +250,8 @@ namespace SixLabors.Memory.Tests
|
||||||
[InlineData(-1)]
|
[InlineData(-1)]
|
||||||
public void AllocateManagedByteBuffer_IncorrectAmount_ThrowsCorrect_ArgumentOutOfRangeException(int length)
|
public void AllocateManagedByteBuffer_IncorrectAmount_ThrowsCorrect_ArgumentOutOfRangeException(int length)
|
||||||
{
|
{
|
||||||
var ex = Assert.Throws<ArgumentOutOfRangeException>(() => this.MemoryAllocator.AllocateManagedByteBuffer(length));
|
ArgumentOutOfRangeException ex = Assert.Throws<ArgumentOutOfRangeException>(() => this.MemoryAllocator.AllocateManagedByteBuffer(length));
|
||||||
Assert.Equal("length", ex.ParamName);
|
Assert.Equal("length", ex.ParamName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,7 +23,7 @@ namespace SixLabors.Memory.Tests
|
||||||
[InlineData(-1)]
|
[InlineData(-1)]
|
||||||
public void Allocate_IncorrectAmount_ThrowsCorrect_ArgumentOutOfRangeException(int length)
|
public void Allocate_IncorrectAmount_ThrowsCorrect_ArgumentOutOfRangeException(int length)
|
||||||
{
|
{
|
||||||
var ex = Assert.Throws<ArgumentOutOfRangeException>(() => this.MemoryAllocator.Allocate<BigStruct>(length));
|
ArgumentOutOfRangeException ex = Assert.Throws<ArgumentOutOfRangeException>(() => this.MemoryAllocator.Allocate<BigStruct>(length));
|
||||||
Assert.Equal("length", ex.ParamName);
|
Assert.Equal("length", ex.ParamName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -31,7 +31,7 @@ namespace SixLabors.Memory.Tests
|
||||||
[InlineData(-1)]
|
[InlineData(-1)]
|
||||||
public void AllocateManagedByteBuffer_IncorrectAmount_ThrowsCorrect_ArgumentOutOfRangeException(int length)
|
public void AllocateManagedByteBuffer_IncorrectAmount_ThrowsCorrect_ArgumentOutOfRangeException(int length)
|
||||||
{
|
{
|
||||||
var ex = Assert.Throws<ArgumentOutOfRangeException>(() => this.MemoryAllocator.AllocateManagedByteBuffer(length));
|
ArgumentOutOfRangeException ex = Assert.Throws<ArgumentOutOfRangeException>(() => this.MemoryAllocator.AllocateManagedByteBuffer(length));
|
||||||
Assert.Equal("length", ex.ParamName);
|
Assert.Equal("length", ex.ParamName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -173,11 +173,19 @@ namespace SixLabors.Primitives.Tests
|
||||||
|
|
||||||
unchecked
|
unchecked
|
||||||
{
|
{
|
||||||
rCeiling = new Rectangle((int)Math.Ceiling(x), (int)Math.Ceiling(y),
|
rCeiling = new Rectangle(
|
||||||
(int)Math.Ceiling(width), (int)Math.Ceiling(height));
|
(int)Math.Ceiling(x),
|
||||||
|
(int)Math.Ceiling(y),
|
||||||
|
(int)Math.Ceiling(width),
|
||||||
|
(int)Math.Ceiling(height));
|
||||||
|
|
||||||
rTruncate = new Rectangle((int)x, (int)y, (int)width, (int)height);
|
rTruncate = new Rectangle((int)x, (int)y, (int)width, (int)height);
|
||||||
rRound = new Rectangle((int)Math.Round(x), (int)Math.Round(y),
|
|
||||||
(int)Math.Round(width), (int)Math.Round(height));
|
rRound = new Rectangle(
|
||||||
|
(int)Math.Round(x),
|
||||||
|
(int)Math.Round(y),
|
||||||
|
(int)Math.Round(width),
|
||||||
|
(int)Math.Round(height));
|
||||||
}
|
}
|
||||||
|
|
||||||
Assert.Equal(rCeiling, Rectangle.Ceiling(rect));
|
Assert.Equal(rCeiling, Rectangle.Ceiling(rect));
|
||||||
|
@ -315,7 +323,7 @@ namespace SixLabors.Primitives.Tests
|
||||||
[InlineData(0, 0, 0, 0)]
|
[InlineData(0, 0, 0, 0)]
|
||||||
public void DeconstructTest(int x, int y, int width, int height)
|
public void DeconstructTest(int x, int y, int width, int height)
|
||||||
{
|
{
|
||||||
Rectangle r = new Rectangle(x, y, width, height);
|
var r = new Rectangle(x, y, width, height);
|
||||||
|
|
||||||
(int dx, int dy, int dw, int dh) = r;
|
(int dx, int dy, int dw, int dh) = r;
|
||||||
|
|
||||||
|
@ -325,4 +333,4 @@ namespace SixLabors.Primitives.Tests
|
||||||
Assert.Equal(height, dh);
|
Assert.Equal(height, dh);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<CodeAnalysisRuleSet>..\SixLabors.ruleset</CodeAnalysisRuleSet>
|
<CodeAnalysisRuleSet>..\..\shared-infrastructure\SixLabors.Tests.ruleset</CodeAnalysisRuleSet>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
Загрузка…
Ссылка в новой задаче