package main

import "testing"

// TestRingkasanKonsisten memastikan kedua implementasi setara sebelum
// performanya dibandingkan: benchmark atas kode yang salah tidak berarti.
func TestRingkasanKonsisten(t *testing.T) {
	ts := dataUji(50)
	naif := RingkasanSprintf(ts)
	cepat := RingkasanBuilder(ts)
	if naif != cepat {
		t.Fatalf("hasil kedua implementasi berbeda:\n%q\n%q", naif, cepat)
	}
}

func BenchmarkRingkasanSprintf(b *testing.B) {
	ts := dataUji(200) // setup: tidak ikut diukur oleh for b.Loop()
	b.ReportAllocs()
	for b.Loop() {
		RingkasanSprintf(ts)
	}
}

func BenchmarkRingkasanBuilder(b *testing.B) {
	ts := dataUji(200) // setup: tidak ikut diukur oleh for b.Loop()
	b.ReportAllocs()
	for b.Loop() {
		RingkasanBuilder(ts)
	}
}
