feat(home): AI 캐릭터 추천 점수 정책을 변경한다

This commit is contained in:
2026-07-10 03:20:11 +09:00
parent a11ef3c4d1
commit 9288b44d5e
3 changed files with 40 additions and 18 deletions
@@ -27,10 +27,20 @@ class RecommendationScorePolicyTest {
fun shouldApplyAiCharacterNewBoostByCreatedDays() {
val now = LocalDateTime.of(2026, 5, 30, 12, 0)
assertEquals(1.5, policy.calculateAiCharacterNewBoost(now.minusDays(10), now), 0.0001)
assertEquals(1.3, policy.calculateAiCharacterNewBoost(now.minusDays(20), now), 0.0001)
assertEquals(1.2, policy.calculateAiCharacterNewBoost(now.minusDays(30), now), 0.0001)
assertEquals(1.15, RecommendationScoreSpec.AI_NEW_BOOST_10_DAYS, 0.0001)
assertEquals(1.10, RecommendationScoreSpec.AI_NEW_BOOST_20_DAYS, 0.0001)
assertEquals(1.05, RecommendationScoreSpec.AI_NEW_BOOST_30_DAYS, 0.0001)
assertEquals(1.15, policy.calculateAiCharacterNewBoost(now, now), 0.0001)
assertEquals(1.15, policy.calculateAiCharacterNewBoost(now.minusDays(10), now), 0.0001)
assertEquals(1.10, policy.calculateAiCharacterNewBoost(now.minusDays(11), now), 0.0001)
assertEquals(1.10, policy.calculateAiCharacterNewBoost(now.minusDays(20), now), 0.0001)
assertEquals(1.05, policy.calculateAiCharacterNewBoost(now.minusDays(21), now), 0.0001)
assertEquals(1.05, policy.calculateAiCharacterNewBoost(now.minusDays(30), now), 0.0001)
assertEquals(1.0, policy.calculateAiCharacterNewBoost(now.minusDays(31), now), 0.0001)
assertEquals(1.5, policy.calculateCreatorNewBoost(now.minusDays(10), now), 0.0001)
assertEquals(1.3, policy.calculateCreatorNewBoost(now.minusDays(20), now), 0.0001)
assertEquals(1.2, policy.calculateCreatorNewBoost(now.minusDays(30), now), 0.0001)
}
@Test
@@ -51,18 +61,18 @@ class RecommendationScorePolicyTest {
}
@Test
@DisplayName("AI 채팅 추천 점수는 이번 스프린트에서 팔로우 증가량을 제외한다")
@DisplayName("AI 채팅 추천 점수는 AI 발화 수, 활성 사용자 수, 팔로우 증가량 가중치와 신규 부스트를 적용한다")
fun shouldCalculateAiChatScore() {
assertEquals(0.45, RecommendationScoreSpec.AI_RECENT_CHAT_WEIGHT, 0.0001)
assertEquals(0.35, RecommendationScoreSpec.AI_RECENT_ACTIVE_USER_WEIGHT, 0.0001)
assertEquals(0.45, RecommendationScoreSpec.AI_CHAT_WEIGHT, 0.0001)
assertEquals(0.35, RecommendationScoreSpec.AI_ACTIVE_USER_WEIGHT, 0.0001)
assertEquals(0.20, RecommendationScoreSpec.AI_FOLLOW_INCREASE_WEIGHT, 0.0001)
val score = policy.calculateAiChatScore(
recentChatCount = 100,
recentActiveUserCount = 20,
newBoost = 1.3
)
assertEquals(67.6, score, 0.0001)
assertEquals(0.0, policy.calculateAiChatScore(0, 0, 0, 1.0), 0.0001)
assertEquals(4.5, policy.calculateAiChatScore(10, 0, 0, 1.0), 0.0001)
assertEquals(3.5, policy.calculateAiChatScore(0, 10, 0, 1.0), 0.0001)
assertEquals(2.0, policy.calculateAiChatScore(0, 0, 10, 1.0), 0.0001)
assertEquals(10.0, policy.calculateAiChatScore(10, 10, 10, 1.0), 0.0001)
assertEquals(11.5, policy.calculateAiChatScore(10, 10, 10, 1.15), 0.0001)
}
@Test