< Summary

Class:BaseVariable[T]
Assembly:BaseVariable
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/DataStore/Variables/BaseVariable.cs
Covered lines:12
Uncovered lines:0
Coverable lines:12
Total lines:41
Line coverage:100% (12 of 12)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
BaseVariable()0%110100%
BaseVariable(...)0%110100%
Get()0%110100%
Set(...)0%110100%
Equals(...)0%110100%
Set(...)0%440100%
OnChangeListenersCount()0%220100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/DataStore/Variables/BaseVariable.cs

#LineLine coverage
 1using System;
 2using System.Collections.Generic;
 3
 4public delegate void Change<T>(T current, T previous);
 5
 6public delegate void ChangeWithSenderInfo<T>(BaseVariable<T> sender, T current, T previous);
 7
 8public class BaseVariable<T> : IBaseVariable<T>, IEquatable<T>
 9{
 10    protected T value;
 11
 3947212    public BaseVariable() => value = default;
 8859013    public BaseVariable(T defaultValue) => value = defaultValue;
 14
 15    public event Change<T> OnChange;
 16
 32494617    public T Get() => value;
 18
 19    public void Set(T newValue) =>
 13242320        Set(newValue, !Equals(newValue));
 21
 22    public virtual bool Equals(T other) =>
 13241923        EqualityComparer<T>.Default.Equals(value, other);
 24
 25    public event ChangeWithSenderInfo<T> OnChangeWithSenderInfo;
 26
 27    public void Set(T newValue, bool notifyEvent)
 28    {
 13273229        var previous = value;
 13273230        value = newValue;
 31
 13273232        if (notifyEvent)
 33        {
 4350534            OnChange?.Invoke(value, previous);
 4350535            OnChangeWithSenderInfo?.Invoke(this, value, previous);
 36        }
 8924137    }
 38
 39    public int OnChangeListenersCount() =>
 240        OnChange == null ? 0 : OnChange.GetInvocationList().Length;
 41}