You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: stats_test.go
    path of file: ./repos/Xray-core/app/stats
    
    the code of the file until where you have to start completion: package stats_test

import (
	"context"
	"testing"
	"time"

	. "github.com/xtls/xray-core/app/stats"
	"github.com/xtls/xray-core/common"
	"github.com/xtls/xray-core/features/stats"
)

func TestInterface(t *testing.T) {
	_ = (stats.Manager)(new(Manager))
}

func TestStatsChannelRunnable(t *testing.T) {
	raw, err := common.CreateObject(context.Background(), &Config{})
	common.Must(err)

	m := raw.(stats.Manager)

	ch1, err := m.RegisterChannel("test.channel.1")
	c1 := ch1.(*Channel)
	common.Must(err)

	if c1.Running() {
		t.Fatalf("unexpected running channel: test.channel.%d", 1)
	}

	common.Must(m.Start())

	if !c1.Running() {
		t.Fatalf("unexpe
    
func TestStatsChannelRunnable(t *testing.T) {
	raw, err := common.CreateObject(context.Background(), &Config{})
	common.Must(err)

	m := raw.(stats.Manager)

	ch1, err := m.RegisterChannel("test.channel.1")
	c1 := ch1.(*Channel)
	common.Must(err)

	if c1.Running() {
		t.Fatalf("unexpected running channel: test.channel.%d", 1)
	}

	common.Must(m.Start())

	if !c1.Running() {
		t.Fatalf("unexpected non-running channel: test.channel.%d", 1)
	}

	ch2, err := m.RegisterChannel("test.channel.2")
	c2 := ch2.(*Channel)
	common.Must(err)

	if !c2.Running() {
		t.Fatalf("unexpected non-running channel: test.channel.%d", 2)
	}

	s1, err := c1.Subscribe()
	common.Must(err)
	common.Must(c1.Close())

	if c1.Running() {
		t.Fatalf("unexpected running channel: test.channel.%d", 1)
	}

	select { // Check all subscribers in closed channel are closed
	case _, ok := <-s1:
		if ok {
			t.Fatalf("unexpected non-closed subscriber in channel: test.channel.%d", 1)
		}
	case <-time.After(500 * time.Millisecond):
		t.Fatalf("unexpected non-closed subscriber in channel: test.channel.%d", 1)
	}

	if len(c1.Subscribers()) != 0 { // Check subscribers in closed channel are emptied
		t.Fatalf("unexpected non-empty subscribers in channel: test.channel.%d", 1)
	}

	common.Must(m.Close())

	if c2.Running() {
		t.Fatalf("unexpected running channel: test.channel.%d", 2)
	}

	ch3, err := m.RegisterChannel("test.channel.3")
	c3 := ch3.(*Channel)
	common.Must(err)

	if c3.Running() {
		t.Fatalf("unexpected running channel: test.channel.%d", 3)
	}

	common.Must(c3.Start())
	common.Must(m.UnregisterChannel("test.channel.3"))

	if c3.Running() { // Test that unregistering will close the channel.
		t.Fatalf("unexpected running channel: test.channel.%d", 3)
	}
}