package main

import "testing"

func TestHitungDiskon(t *testing.T) {
	uji := []struct {
		harga      int
		tingkat    string
		diharapkan int
	}{
		{150000, "gold", 30000},
		{150000, "silver", 15000},
		{150000, "bronze", 0},
	}
	for _, u := range uji {
		if got := HitungDiskon(u.harga, u.tingkat); got != u.diharapkan {
			t.Errorf("HitungDiskon(%d, %q) = %d, diharapkan %d", u.harga, u.tingkat, got, u.diharapkan)
		}
	}
}

func TestKategoriPembeli(t *testing.T) {
	if got := KategoriPembeli(2_500_000); got != "gold" {
		t.Errorf("KategoriPembeli(2500000) = %q, diharapkan %q", got, "gold")
	}
	if got := KategoriPembeli(250_000); got != "reguler" {
		t.Errorf("KategoriPembeli(250000) = %q, diharapkan %q", got, "reguler")
	}
}

func TestKuponValid(t *testing.T) {
	uji := []struct {
		kode       string
		diharapkan bool
	}{
		{"HEMAT10", true},
		{"GOSPORT", true},
		{"", false},
		{"EXPIRED", false},
	}
	for _, u := range uji {
		if got := KuponValid(u.kode); got != u.diharapkan {
			t.Errorf("KuponValid(%q) = %v, diharapkan %v", u.kode, got, u.diharapkan)
		}
	}
}
