< Summary - Combined Code Coverage

Information
Class: NLightning.Domain.Bitcoin.ValueObjects.BitcoinScript
Assembly: NLightning.Domain
File(s): /home/runner/work/nlightning/nlightning/src/NLightning.Domain/Bitcoin/ValueObjects/BitcoinScript.cs
Tag: 36_15743069263
Line coverage
53%
Covered lines: 7
Uncovered lines: 6
Coverable lines: 13
Total lines: 52
Line coverage: 53.8%
Branch coverage
25%
Covered branches: 1
Total branches: 4
Branch coverage: 25%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
get_Empty()100%210%
get_Length()100%11100%
.ctor(...)50%22100%
op_Implicit(...)100%11100%
op_Implicit(...)100%11100%
op_Implicit(...)100%11100%
ToString()100%210%
Equals(...)100%11100%
Equals(...)0%620%
GetHashCode()100%210%
op_Inequality(...)100%210%
op_Equality(...)100%210%

File(s)

/home/runner/work/nlightning/nlightning/src/NLightning.Domain/Bitcoin/ValueObjects/BitcoinScript.cs

#LineLine coverage
 1namespace NLightning.Domain.Bitcoin.ValueObjects;
 2
 3using Domain.Interfaces;
 4using Domain.Utils.Extensions;
 5
 6public readonly struct BitcoinScript : IValueObject, IEquatable<BitcoinScript>
 7{
 8    private readonly byte[] _value;
 9
 010    public static BitcoinScript Empty => new([]);
 11
 1212    public int Length => _value.Length;
 13
 14    public BitcoinScript(byte[] value)
 15    {
 8016        _value = value ?? throw new ArgumentNullException(nameof(value), "BitcoinScript cannot be null.");
 8017    }
 18
 5219    public static implicit operator BitcoinScript(byte[] bytes) => new(bytes);
 6420    public static implicit operator byte[](BitcoinScript script) => script._value;
 821    public static implicit operator ReadOnlyMemory<byte>(BitcoinScript compactPubKey) => compactPubKey._value;
 22
 23    public override string ToString()
 24    {
 025        return Convert.ToHexString(_value).ToLowerInvariant();
 26    }
 27
 28    public bool Equals(BitcoinScript other)
 29    {
 1230        return _value.SequenceEqual(other._value);
 31    }
 32
 33    public override bool Equals(object? obj)
 34    {
 035        return obj is BitcoinScript other && Equals(other);
 36    }
 37
 38    public override int GetHashCode()
 39    {
 040        return _value.GetByteArrayHashCode();
 41    }
 42
 43    public static bool operator !=(BitcoinScript left, BitcoinScript right)
 44    {
 045        return !left.Equals(right);
 46    }
 47
 48    public static bool operator ==(BitcoinScript left, BitcoinScript right)
 49    {
 050        return left.Equals(right);
 51    }
 52}