The window is now a summary table of mults, Qs and totals per band over a sortable spot grid with Call, Freq, Mode, Dir, Mlt, SN, TS, Spotter, Grid, Sun, Pts and a preferred-spotter column. Columns can be hidden, headers sorted, and the list stops re-sorting for six seconds under the mouse. Adds the Mults / Mults & Qs button, a Bands & Modes filter, delete and blacklist from the right-click menu, Alt+A stepping, and QSY to the top spot after logging. Spot gains Snr and IsSkimmer, Bandmap gains Remaining, and AvailableStation carries the path to the station. The menu item no longer has apostrophes. SO2R, SO2V and the other missing pieces are listed in docs/unfinished.md. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
29 lines
734 B
C#
29 lines
734 B
C#
using Nonemm.Core;
|
|
|
|
namespace Nonemm.Spotting.Tests;
|
|
|
|
public class SpotSnrTests
|
|
{
|
|
private static Spot Commented(string comment, string spotter = "OK1TEST") =>
|
|
new(Callsign.Parse("DL1ABC"), Frequency.FromKilohertz(14_025), DateTime.UtcNow, SpotSource.Cluster, spotter, comment);
|
|
|
|
[Fact]
|
|
public void ASkimmerCommentGivesTheDecibels()
|
|
{
|
|
Assert.Equal(24, Commented("CW 24 dB 28 WPM CQ").Snr);
|
|
}
|
|
|
|
[Fact]
|
|
public void ACommentWithNoDecibelsHasNoSnr()
|
|
{
|
|
Assert.Null(Commented("up 2").Snr);
|
|
}
|
|
|
|
[Fact]
|
|
public void ASpotterEndingInHashIsASkimmer()
|
|
{
|
|
Assert.True(Commented("", "DL1ABC-#").IsSkimmer);
|
|
Assert.False(Commented("", "DL1ABC").IsSkimmer);
|
|
}
|
|
}
|