<commit_before># Easing

    'use strict'

    module.exports = (Renderer, Impl, itemUtils) -> class Easing extends itemUtils.DeepObject

## *Easing* Easing::constructor()

        constructor: (ref) ->
            @_type = 'Linear'
            @_steps = 1
            super ref

## *String* Easing::type = `'Linear'`

Supported easing functions:
Linear, InQuad, OutQuad, InOutQuad, InCubic, OutCubic,
InOutCubic, InQuart, OutQuart, InOutQuart, InQuint, OutQuint,
InOutQuint, InSine, OutSine, InOutSine, InExpo, OutExpo,
InOutExpo, InCirc, OutCirc, InOutCirc, InElastic, OutElastic,
InOutElastic, InBack, OutBack, InOutBack, InBounce, OutBounce,
InOutBounce, Steps.

        EASINGS = ['Linear', 'InQuad', 'OutQuad', 'InOutQuad', 'InCubic', 'OutCubic',
            'InOutCubic', 'InQuart', 'OutQuart', 'InOutQuart', 'InQuint', 'OutQuint',
            'InOutQuint', 'InSine', 'OutSine', 'InOutSine', 'InExpo', 'OutExpo',
            'InOutExpo', 'InCirc', 'OutCirc', 'InOutCirc', 'InElastic', 'OutElastic',
            'InOutElastic', 'InBack', 'OutBack', 'InOutBack', 'InBounce', 'OutBounce',
            'InOutBounce', 'Steps']

        EASING_ALIASES = Object.create(null)
        for easing in EASINGS
            EASING_ALIASES[easing] = easing
            EASING_ALIASES[easing.toLowerCase()] = easing

## *Signal* Easing::onTypeChange(*String* oldValue)

        itemUtils.defineProperty
            constructor: @
            name: 'type'
            defaultValue: 'Linear'
            namespace: 'easing'
            implementation: Impl.setPropertyAnimationEasingType
            developmentSetter: (val) ->
                if val
                    assert.isString val
            setter: (_super) -> (val) ->
                unless val
                    val = 'Linear'

                type = EASING_ALIASES[val]
                type ||= EASING_ALIASES[val.toLowerCase()]
                unless type
                    log.warn "Easing type '#{val}' not recognized"
                    type = 'Linear'
                _super.call @, type
                return

## *Integer* Easing::steps = `1`

        itemUtils.defineProperty
            constructor: @
            name: 'steps'
            defaultValue: 1
            namespace: 'easing'
            implementation: Impl.setPropertyAnimationEasingSteps
            developmentSetter: (val) ->
                if val
                    assert.isInteger val
                    assert.operator val, '>', 0
<commit_msg>Fixed missed import in Easing file<commit_after># Easing

    'use strict'

    assert = require 'src/assert'
    log = require 'src/log'

    log = log.scope 'Renderer', 'PropertyAnimation', 'Easing'

    module.exports = (Renderer, Impl, itemUtils) -> class Easing extends itemUtils.DeepObject

## *Easing* Easing::constructor()

        constructor: (ref) ->
            @_type = 'Linear'
            @_steps = 1
            super ref

## *String* Easing::type = `'Linear'`

Supported easing functions:
Linear, InQuad, OutQuad, InOutQuad, InCubic, OutCubic,
InOutCubic, InQuart, OutQuart, InOutQuart, InQuint, OutQuint,
InOutQuint, InSine, OutSine, InOutSine, InExpo, OutExpo,
InOutExpo, InCirc, OutCirc, InOutCirc, InElastic, OutElastic,
InOutElastic, InBack, OutBack, InOutBack, InBounce, OutBounce,
InOutBounce, Steps.

        EASINGS = ['Linear', 'InQuad', 'OutQuad', 'InOutQuad', 'InCubic', 'OutCubic',
            'InOutCubic', 'InQuart', 'OutQuart', 'InOutQuart', 'InQuint', 'OutQuint',
            'InOutQuint', 'InSine', 'OutSine', 'InOutSine', 'InExpo', 'OutExpo',
            'InOutExpo', 'InCirc', 'OutCirc', 'InOutCirc', 'InElastic', 'OutElastic',
            'InOutElastic', 'InBack', 'OutBack', 'InOutBack', 'InBounce', 'OutBounce',
            'InOutBounce', 'Steps']

        EASING_ALIASES = Object.create(null)
        for easing in EASINGS
            EASING_ALIASES[easing] = easing
            EASING_ALIASES[easing.toLowerCase()] = easing

## *Signal* Easing::onTypeChange(*String* oldValue)

        itemUtils.defineProperty
            constructor: @
            name: 'type'
            defaultValue: 'Linear'
            namespace: 'easing'
            implementation: Impl.setPropertyAnimationEasingType
            developmentSetter: (val) ->
                if val
                    assert.isString val
            setter: (_super) -> (val) ->
                unless val
                    val = 'Linear'

                type = EASING_ALIASES[val]
                type ||= EASING_ALIASES[val.toLowerCase()]
                unless type
                    log.warn "Easing type '#{val}' not recognized"
                    type = 'Linear'
                _super.call @, type
                return

## *Integer* Easing::steps = `1`

        itemUtils.defineProperty
            constructor: @
            name: 'steps'
            defaultValue: 1
            namespace: 'easing'
            implementation: Impl.setPropertyAnimationEasingSteps
            developmentSetter: (val) ->
                if val
                    assert.isInteger val
                    assert.operator val, '>', 0

{'fraction_non_alphanumeric': 0.11642899003711663, 'fraction_numerical': 0.0015628052353975385, 'mean_word_length': 2.093655589123867, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 17, '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': '1794400', 'n_tokens_mistral': 1631, 'n_tokens_neox': 1574, 'n_words': 352}