Use Seed.Mix in speech-policy PickTopic tests after Roll01.
Sequential integer seeds all roll ~0, so NoRude never saw a rude topic under free speech. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -226,7 +226,7 @@ public class TalkCirclesTests
|
|||||||
var picker = Person("a", ["RussianLanguage"]);
|
var picker = Person("a", ["RussianLanguage"]);
|
||||||
for (var i = 0; i < 80; i++)
|
for (var i = 0; i < 80; i++)
|
||||||
{
|
{
|
||||||
var id = TalkCircles.PickTopic(catalog, picker, age: 14, seed: i * 137, speechPolicy: SpeechPolicies.StudyOnly);
|
var id = TalkCircles.PickTopic(catalog, picker, age: 14, seed: Seed.Mix(i, 19, Seed.ApparelSalt), speechPolicy: SpeechPolicies.StudyOnly);
|
||||||
Assert.NotNull(id);
|
Assert.NotNull(id);
|
||||||
Assert.Contains(TopicTags.Study, catalog.Topics[id].Tags, StringComparer.Ordinal);
|
Assert.Contains(TopicTags.Study, catalog.Topics[id].Tags, StringComparer.Ordinal);
|
||||||
}
|
}
|
||||||
@@ -238,15 +238,16 @@ public class TalkCirclesTests
|
|||||||
var (catalog, _, _) = World();
|
var (catalog, _, _) = World();
|
||||||
var picker = Person("a", ["RussianLanguage"]);
|
var picker = Person("a", ["RussianLanguage"]);
|
||||||
var rudeUnderFree = 0;
|
var rudeUnderFree = 0;
|
||||||
for (var i = 0; i < 11_000; i++)
|
for (var i = 0; i < 200; i++)
|
||||||
{
|
{
|
||||||
var freeId = TalkCircles.PickTopic(catalog, picker, age: 14, seed: i, speechPolicy: SpeechPolicies.Free);
|
var seed = Seed.Mix(i, 23, Seed.ApparelSalt);
|
||||||
|
var freeId = TalkCircles.PickTopic(catalog, picker, age: 14, seed: seed, speechPolicy: SpeechPolicies.Free);
|
||||||
if (freeId is not null && catalog.Topics[freeId].Tags.Contains(TopicTags.Rude, StringComparer.Ordinal))
|
if (freeId is not null && catalog.Topics[freeId].Tags.Contains(TopicTags.Rude, StringComparer.Ordinal))
|
||||||
{
|
{
|
||||||
rudeUnderFree++;
|
rudeUnderFree++;
|
||||||
}
|
}
|
||||||
|
|
||||||
var filtered = TalkCircles.PickTopic(catalog, picker, age: 14, seed: i, speechPolicy: SpeechPolicies.NoRude);
|
var filtered = TalkCircles.PickTopic(catalog, picker, age: 14, seed: seed, speechPolicy: SpeechPolicies.NoRude);
|
||||||
Assert.NotNull(filtered);
|
Assert.NotNull(filtered);
|
||||||
Assert.DoesNotContain(TopicTags.Rude, catalog.Topics[filtered].Tags, StringComparer.Ordinal);
|
Assert.DoesNotContain(TopicTags.Rude, catalog.Topics[filtered].Tags, StringComparer.Ordinal);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user