• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

MeltyPlayer / MeltyTool / 17574188774

09 Sep 2025 06:45AM UTC coverage: 39.98% (-2.3%) from 42.309%
17574188774

push

github

MeltyPlayer
Okay, hopefully fixed the models now???

5774 of 16361 branches covered (35.29%)

Branch coverage included in aggregate %.

2 of 2 new or added lines in 1 file covered. (100.0%)

935 existing lines in 47 files now uncovered.

24391 of 59090 relevant lines covered (41.28%)

74782.62 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

91.8
/FinModelUtility/Fin/Fin/src/animation/keyframes/StairStepKeyframes.cs
1
using System;
2
using System.Collections.Generic;
3

4
using fin.animation.interpolation;
5

6
using schema.readOnly;
7

8
namespace fin.animation.keyframes;
9

10
[GenerateReadOnly]
11
public partial interface IStairStepKeyframes<T>
12
    : IKeyframes<Keyframe<T>>, IConfiguredInterpolatable<T>;
13

14
public class StairStepKeyframes<T>(
3,965✔
15
    ISharedInterpolationConfig sharedConfig,
3,965✔
16
    IndividualInterpolationConfig<T>? individualConfig = null)
3,965✔
17
    : IStairStepKeyframes<T> {
18
  private readonly List<Keyframe<T>> impl_
3,965✔
19
      = new(individualConfig?.InitialCapacity ?? 0);
3,965✔
20

21
  public ISharedInterpolationConfig SharedConfig => sharedConfig;
×
22
  public IndividualInterpolationConfig<T> IndividualConfig
23
    => individualConfig ?? IndividualInterpolationConfig<T>.DEFAULT;
62✔
24

25
  public IReadOnlyList<Keyframe<T>> Definitions => this.impl_;
8✔
UNCOV
26
  public bool HasAnyData => this.Definitions.Count > 0;
×
27

28
  public void Add(Keyframe<T> keyframe) => this.impl_.AddKeyframe(keyframe);
214✔
29

30
  public bool TryGetAtFrame(float frame, out T value) {
50✔
31
    if (this.impl_.TryGetPrecedingKeyframe(frame,
50✔
32
                                           sharedConfig,
50✔
33
                                           this.IndividualConfig,
50✔
34
                                           out var keyframe,
50✔
35
                                           out _,
50✔
36
                                           out _)) {
92✔
37
      value = keyframe.ValueOut;
42✔
38
      return true;
42✔
39
    }
40

41
    if (this.IndividualConfig.DefaultValue?.Try(out value) ?? false) {
13✔
42
      return true;
5✔
43
    }
44

45
    value = default!;
3✔
46
    return false;
3✔
47
  }
50✔
48

49
  public void GetAllFrames(Span<T> dst) {
4✔
50
    T defaultValue = default!;
4✔
51
    this.IndividualConfig.DefaultValue?.Try(out defaultValue);
4!
52
    if (sharedConfig.Looping) {
6✔
53
      defaultValue = this.impl_[^1].ValueOut;
2✔
54
    }
2✔
55

56
    dst.Fill(defaultValue);
4✔
57
    if (this.impl_.Count == 0) {
4!
UNCOV
58
      return;
×
59
    }
60

61
    var f = dst.Length - 1;
4✔
62
    for (var k = this.impl_.Count - 1; k >= 0; --k) {
50✔
63
      var keyframe = this.impl_[k];
14✔
64
      while (f >= keyframe.Frame) {
70✔
65
        dst[f--] = keyframe.ValueOut;
28✔
66
      }
28✔
67
    }
14✔
68
  }
4✔
69
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc