mirror of
https://github.com/Quad4-Software/Reticulum-Go
synced 2026-08-29 23:48:44 -04:00
62 lines
1.4 KiB
Go
62 lines
1.4 KiB
Go
// SPDX-License-Identifier: Apache-2.0
|
|
// Copyright (c) 2024-2026 Quad4.io
|
|
|
|
package rnsgit
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
type mockBatchLink struct {
|
|
rtt float64
|
|
}
|
|
|
|
func (m mockBatchLink) GetRTT() float64 { return m.rtt }
|
|
|
|
type mockBatchTransport struct {
|
|
bitrate int64
|
|
}
|
|
|
|
func (m mockBatchTransport) SlowestOnlineBitrate() int64 { return m.bitrate }
|
|
|
|
func TestDynamicRefBatchRTT(t *testing.T) {
|
|
base := 25
|
|
slow := dynamicRefBatch(base, mockBatchLink{rtt: 3.0}, nil)
|
|
if slow != 12 {
|
|
t.Fatalf("slow RTT batch = %d, want 12", slow)
|
|
}
|
|
fast := dynamicRefBatch(base, mockBatchLink{rtt: 0.1}, nil)
|
|
if fast != 50 {
|
|
t.Fatalf("fast RTT batch = %d, want 50", fast)
|
|
}
|
|
}
|
|
|
|
func TestDynamicRefBatchBitrate(t *testing.T) {
|
|
base := 16
|
|
low := dynamicRefBatch(base, nil, mockBatchTransport{bitrate: 1200})
|
|
if low != 8 {
|
|
t.Fatalf("low bitrate batch = %d, want 8", low)
|
|
}
|
|
high := dynamicRefBatch(base, nil, mockBatchTransport{bitrate: 20_000_000})
|
|
if high != 32 {
|
|
t.Fatalf("high bitrate batch = %d, want 32", high)
|
|
}
|
|
}
|
|
|
|
func TestDynamicRefBatchCap(t *testing.T) {
|
|
got := dynamicRefBatch(40, mockBatchLink{rtt: 0.05}, mockBatchTransport{bitrate: 50_000_000})
|
|
if got != 64 {
|
|
t.Fatalf("capped batch = %d, want 64", got)
|
|
}
|
|
}
|
|
|
|
func TestParsePermsGetBody(t *testing.T) {
|
|
body := PermsGetResponse("alice: admin\n")
|
|
got, err := ParsePermsGetBody(body)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if got != "alice: admin\n" {
|
|
t.Fatalf("content = %q", got)
|
|
}
|
|
}
|