Files
2026-10-16 23:33:13 -07:00

55 lines
6.2 KiB
C#

namespace RadicadeServer.RecNet.Config
{
public static class SplitTestConfigs
{
public const string HardOverrides =
"IOSAppPermissions_2019_10_02=Immediate;GottaGoFastNUX_2020_09_04=Off;RecNetImageCacheRefCount_2020_09_18=On;Curated_Rooms_2020_08_06=On;PlayMenuRRUI_2021_01_11=On;PlayMenuRRUI_HotRoomsCarousel_2021_02_09=On;PlayMenuRRUI_CarouselOrdering_2021_02_09=PlayMenuCarouselOrdering_1;CreationCommands_2021_02_16=Off;RecRoomPlus_DormMirrorButton_2021_03_09=ButtonOn;CurrentContestWinnersCarouselVisibility_2021_04_15=Off;MutualFriends_2021_04_22=On;PlayMenuRRUI_DefaultTab_2021_05_13=Highlight;DefaultNewPlayersToPlayMenu_2021_05_24=On;ShowNewRRPlusIcon_2021_06_01=NewIcon;ParallelNetworkingInitialRoomLoad_2021_06_28=ParallelLoad;ShowNewRRPlusBenefitsPage_2021_06_14=OldPage;WatchStoreHomepageLayout_2021_06_14=OldStoreLayout;NotificationPermissionsExplanationText_2021_06_25=Control;PlayMenuRRUI_TopCreatorsCarousel_2021_09_01=Off;UseSets_2021_08_06=UseSets;RoomSimilarities_2021_10_29=On;ProfileOnClick_2021_04_30=On;RoomRecommendations_2020_05_06=On;FriendImportLogin_2021_09_23=On;RudderStackAnalyticsDestinations_2022_02_10=RudderStackOnly;ObjectModel_EnableForRoom_2022_07_01=Disallowed;PlayMenuCarouselOrdering_2021_11_01=PlayMenuCarouselOrdering_1;PlayMenuBanner_2021_11_01=Off;";
public const string TestsAvailable =
"RoomRecommendations_2020_05_06=On,Off;Curated_Rooms_2020_08_06=Off,On;RecNetImageCacheRefCount_2020_09_18=On,Off;GottaGoFastNUX_2020_09_04=Off,On;Curated_Rooms_Tab_Placement_2020_09_22=First,Second;PlayMenuRRUI_2021_01_11=Off,On;PlayMenuRRUI_HotRoomsCarousel_2021_02_09=Off,On;PlayMenuRRUI_CarouselOrdering_2021_02_09=PlayMenuCarouselOrdering_1,PlayMenuCarouselOrdering_2,PlayMenuCarouselOrdering_3;CreationCommands_2021_02_16=Off,On;RecRoomPlus_DormMirrorButton_2021_03_09=ButtonOn,ButtonOff;CurrentContestWinnersCarouselVisibility_2021_04_15=Off,On;MutualFriends_2021_04_22=Off,On;ProfileOnClick_2021_04_30=Off,On;PlayMenuRRUI_DefaultTab_2021_05_13=Highlight,RRO,Hot;DefaultNewPlayersToPlayMenu_2021_05_24=Off,On;ShowNewRRPlusIcon_2021_06_01=OldIcon,NewIcon;ShowNewRRPlusBenefitsPage_2021_06_14=OldPage,NewPage;WatchStoreHomepageLayout_2021_06_14=OldStoreLayout,NewStoreLayout;NotificationPermissionsExplanationText_2021_06_25=Control,SpecificValueText;ParallelNetworkingInitialRoomLoad_2021_06_28=SequentialLoad,ParallelLoad;UseSets_2021_08_06=IgnoreSets,UseSets;PlayMenuRRUI_TopCreatorsCarousel_2021_09_01=Off,On;FriendImportLogin_2021_09_23=Off,On;Purchase_Campaigns_AB_2021_09_13=Purchase_Campaign_AB_A,Purchase_Campaign_AB_B;Purchase_Campaigns_ABCD_2021_09_13=Purchase_Campaign_ABCD_A,Purchase_Campaign_ABCD_B,Purchase_Campaign_ABCD_C,Purchase_Campaign_ABCD_D;RoomSimilarities_2021_10_29=On,Off;PlayMenuBanner_2021_11_01=Off,On;PlayMenuCarouselOrdering_2021_11_01=PlayMenuCarouselOrdering_1,PlayMenuCarouselOrdering_2,PlayMenuCarouselOrdering_3;RudderStackAnalyticsDestinations_2022_02_10=Disabled,RudderStackOnly,Both;ObjectModel_EnableForRoom_2022_07_01=Disallowed,Allowed;";
public const string SegmentProbabilities =
"{\"RoomRecommendations_2020_05_06\":[{\"SegmentName\":\"On\",\"Probability\":0.25},{\"SegmentName\":\"Off\",\"Probability\":0.75}],\"CurrentContestWinnersCarouselVisibility_2021_04_15\":[{\"SegmentName\":\"Off\",\"Probability\":1.0},{\"SegmentName\":\"On\",\"Probability\":0.0}],\"PlayMenuBanner_2021_11_01\":[{\"SegmentName\":\"Off\",\"Probability\":0.5},{\"SegmentName\":\"On\",\"Probability\":0.5}],\"FriendImportLogin_2021_09_23\":[{\"SegmentName\":\"Off\",\"Probability\":0.5},{\"SegmentName\":\"On\",\"Probability\":0.5}],\"PlayMenuCarouselOrdering_2021_11_01\":[{\"SegmentName\":\"PlayMenuCarouselOrdering_1\",\"Probability\":0.33},{\"SegmentName\":\"PlayMenuCarouselOrdering_2\",\"Probability\":0.33},{\"SegmentName\":\"PlayMenuCarouselOrdering_3\",\"Probability\":0.34}]}";
public static readonly IReadOnlyDictionary<string, IReadOnlyList<string>> Client2023Catalog =
new Dictionary<string, IReadOnlyList<string>>(StringComparer.Ordinal)
{
["Example_Test_2020_06_06"] = new[] { "On", "Off" },
["RoomRecommendations_2020_05_06"] = new[] { "On", "Off" },
["RoomRecommendationsType_2020_08_14"] = new[] { "June22", "Aug14JuniorSpecificModel", "Aug14JuniorAccessibleModelForAll", "Aug14MinVisitors350", "Aug14MinVisitors3500", "Aug14MinVisitors35000" },
["GottaGoFastNUX_2020_09_04"] = new[] { "Off", "On" },
["PlayMenuRRUI_HotRoomsCarousel_2021_02_09"] = new[] { "Off", "On" },
["PlayMenuRRUI_CarouselOrdering_2021_02_09"] = new[] { "PlayMenuCarouselOrdering_1", "PlayMenuCarouselOrdering_2", "PlayMenuCarouselOrdering_3" },
["MutualFriends_2021_04_22"] = new[] { "Off", "On" },
["CurrentContestWinnersCarouselVisibility_2021_04_15"] = new[] { "Off", "On" },
["PlayMenuRRUI_DefaultTab_2021_05_13"] = new[] { "Highlight", "RRO", "Hot" },
["ProfileOnClick_2021_04_30"] = new[] { "Off", "On" },
["DefaultNewPlayersToPlayMenu_2021_05_24"] = new[] { "Off", "On" },
["ParallelNetworkingInitialRoomLoad_2021_06_28"] = new[] { "SequentialLoad", "ParallelLoad" },
["PlayMenuRRUI_TopCreatorsCarousel_2021_09_01"] = new[] { "Off", "On" },
["FriendImportLogin_2021_09_23"] = new[] { "Off", "On" },
["RoomSimilarities_2021_10_29"] = new[] { "On", "Off" },
["PlayMenuBanner_2021_11_01"] = new[] { "Off", "On" },
["PlayMenuCarouselOrdering_2021_11_01"] = new[] { "PlayMenuCarouselOrdering_1", "PlayMenuCarouselOrdering_2", "PlayMenuCarouselOrdering_3" },
["RudderStackAnalyticsDestinations_2022_02_10"] = new[] { "Disabled", "RudderStackOnly", "Both" },
["ObjectModel_EnableForRoom_2022_07_01"] = new[] { "Disallowed", "Allowed" },
};
public static string FilterHardOverridesFor2023Client(string key, string value)
{
if (key != "splitTestHardOverrides" || string.IsNullOrWhiteSpace(value))
return value;
var kept = value.Split(';', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries)
.Select(entry => entry.Split('=', 2))
.Where(pair => pair.Length == 2
&& Client2023Catalog.TryGetValue(pair[0], out var segments)
&& segments.Contains(pair[1], StringComparer.Ordinal))
.Select(pair => pair[0] + "=" + pair[1]);
var keptList = kept.ToList();
return keptList.Count > 0 ? string.Join(";", keptList) + ";" : string.Empty;
}
}
}