104 lines
3.2 KiB
Go
104 lines
3.2 KiB
Go
package semantic
|
|
|
|
import "testing"
|
|
|
|
func TestNegationTransform(t *testing.T) {
|
|
pairs := negationTransform("ru-act-002", "выключи свет в спальне", RouteAction)
|
|
if len(pairs) == 0 {
|
|
t.Fatal("negationTransform returned no pairs")
|
|
}
|
|
for _, p := range pairs {
|
|
if p.Route != RouteUncertain {
|
|
t.Errorf("negation of %q: got route %q, want uncertain", p.BaseText, p.Route)
|
|
}
|
|
if p.Transform != "negation" {
|
|
t.Errorf("transform name = %q, want negation", p.Transform)
|
|
}
|
|
}
|
|
pairs = negationTransform("ru-chat-001", "привет", RouteConversation)
|
|
if len(pairs) != 0 {
|
|
t.Error("negationTransform produced pairs for non-action route")
|
|
}
|
|
}
|
|
|
|
func TestQuestionTransform(t *testing.T) {
|
|
pairs := questionTransform("ru-act-002", "выключи свет в спальне", RouteAction)
|
|
if len(pairs) == 0 {
|
|
t.Fatal("questionTransform returned no pairs")
|
|
}
|
|
for _, p := range pairs {
|
|
if p.Route != RouteKnowledge {
|
|
t.Errorf("question of %q: got route %q, want knowledge", p.BaseText, p.Route)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestReportedSpeechTransform(t *testing.T) {
|
|
pairs := reportedSpeechTransform("ru-act-002", "выключи свет в спальне", RouteAction)
|
|
if len(pairs) == 0 {
|
|
t.Fatal("reportedSpeechTransform returned no pairs")
|
|
}
|
|
for _, p := range pairs {
|
|
if p.Route != RouteUncertain {
|
|
t.Errorf("reported speech of %q: got route %q, want uncertain", p.BaseText, p.Route)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestQuotationTransform(t *testing.T) {
|
|
pairs := quotationTransform("ru-act-002", "выключи свет в спальне", RouteAction)
|
|
if len(pairs) == 0 {
|
|
t.Fatal("quotationTransform returned no pairs")
|
|
}
|
|
for _, p := range pairs {
|
|
if p.Route != RouteUncertain {
|
|
t.Errorf("quotation of %q: got route %q, want uncertain", p.BaseText, p.Route)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestHypotheticalTransform(t *testing.T) {
|
|
pairs := hypotheticalTransform("ru-act-002", "выключи свет в спальне", RouteAction)
|
|
if len(pairs) == 0 {
|
|
t.Fatal("hypotheticalTransform returned no pairs")
|
|
}
|
|
for _, p := range pairs {
|
|
if p.Route != RouteUncertain {
|
|
t.Errorf("hypothetical of %q: got route %q, want uncertain", p.BaseText, p.Route)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestCapabilityQuestionTransform(t *testing.T) {
|
|
pairs := capabilityQuestionTransform("ru-act-002", "выключи свет в спальне", RouteAction)
|
|
if len(pairs) == 0 {
|
|
t.Fatal("capabilityQuestionTransform returned no pairs")
|
|
}
|
|
for _, p := range pairs {
|
|
if p.Route != RouteKnowledge {
|
|
t.Errorf("capability question of %q: got route %q, want knowledge", p.BaseText, p.Route)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestGenerateContrastivePairs(t *testing.T) {
|
|
bases := []RouteExample{
|
|
{SourceID: "ru-act-002", Text: "выключи свет в спальне", Route: RouteAction},
|
|
{SourceID: "ru-act-001", Text: "перезапусти докер", Route: RouteAction},
|
|
}
|
|
pairs := GenerateContrastivePairs(bases)
|
|
if len(pairs) == 0 {
|
|
t.Fatal("GenerateContrastivePairs returned no pairs")
|
|
}
|
|
transformCounts := map[string]int{}
|
|
for _, p := range pairs {
|
|
transformCounts[p.Transform]++
|
|
}
|
|
for _, tr := range StandardTransforms {
|
|
if c := transformCounts[tr.Name]; c == 0 {
|
|
t.Errorf("no pairs for transform %q", tr.Name)
|
|
}
|
|
}
|
|
t.Logf("generated %d contrastive pairs from %d bases", len(pairs), len(bases))
|
|
}
|