| @@ -43,7 +43,8 @@ final class MDPuqi { | |||||||
|     public const QI_REWARD_DESCRIPTION_LENGTH_GOOD = 3; |     public const QI_REWARD_DESCRIPTION_LENGTH_GOOD = 3; | ||||||
|     private const QI_REWARD_DESCRIPTION_LENGTH_GREAT = 6; |     private const QI_REWARD_DESCRIPTION_LENGTH_GREAT = 6; | ||||||
|     private const QI_REWARD_EVENTS_MULTIPLIER = 5; |     private const QI_REWARD_EVENTS_MULTIPLIER = 5; | ||||||
|     private const QI_REWARD_TAGS_MULTIPLIER = 3; |     public const QI_REWARD_TAGS_MULTIPLIER = 3; | ||||||
|  |     public const QI_REWARD_TAGS_MULTIPLIER_ABOVE_THRESHOLD = 1; | ||||||
|     private const QI_REWARD_LITERATURE_MULTIPLIER = 2; |     private const QI_REWARD_LITERATURE_MULTIPLIER = 2; | ||||||
|     private const QI_REWARD_HYPERLINKS_MULTIPLIER = 2; |     private const QI_REWARD_HYPERLINKS_MULTIPLIER = 2; | ||||||
|     private const QI_REWARD_DOCUMENTS_MULTIPLIER = 1; |     private const QI_REWARD_DOCUMENTS_MULTIPLIER = 1; | ||||||
| @@ -80,11 +81,11 @@ final class MDPuqi { | |||||||
|     private const QI_PENALTY_NO_IMAGE = -10; |     private const QI_PENALTY_NO_IMAGE = -10; | ||||||
|     private const QI_PENALTY_NO_COLLECTION = -10; |     private const QI_PENALTY_NO_COLLECTION = -10; | ||||||
|     private const QI_PENALTY_MULTIPLIER_EVENT_PART_DOUBLE_LINKED_AS_RELATED = -10; |     private const QI_PENALTY_MULTIPLIER_EVENT_PART_DOUBLE_LINKED_AS_RELATED = -10; | ||||||
|     private const QI_PENALTY_NO_EVENTS = -15; |     public const QI_PENALTY_NO_EVENTS = -15; | ||||||
|     private const QI_PENALTY_NO_TAG = -15; |     public const QI_PENALTY_NO_TAG = -15; | ||||||
|     private const QI_PENALTY_ONLY_ONE_TAG = -10; |     public const QI_PENALTY_ONLY_ONE_TAG = -10; | ||||||
|     private const QI_PENALTY_ONLY_TWO_TAG = -5; |     public const QI_PENALTY_ONLY_TWO_TAG = -5; | ||||||
|     private const QI_PENALTY_TOO_MANY_TAGS = -3; // Per tag of more than 10 tags
 |     public const QI_PENALTY_TOO_MANY_TAGS = -3; // Per tag of more than 10 tags
 | ||||||
| 
 | 
 | ||||||
|     private const QI_PENALTY_IMAGE_FILE_MISSING = -5; |     private const QI_PENALTY_IMAGE_FILE_MISSING = -5; | ||||||
|     private const QI_PENALTY_IMAGE_TOO_SMALL = -5; |     private const QI_PENALTY_IMAGE_TOO_SMALL = -5; | ||||||
| @@ -445,9 +446,9 @@ final class MDPuqi { | |||||||
|             $value = self::QI_REWARD_TAGS_MULTIPLIER * $anzahl_swoergebnis; |             $value = self::QI_REWARD_TAGS_MULTIPLIER * $anzahl_swoergebnis; | ||||||
|         } |         } | ||||||
|         else { |         else { | ||||||
|             $msg = $this->_tlLoader->tl("quality", "quality", "too_many__tags"); |             $msg = $this->_tlLoader->tl("quality", "quality", "tree_nine__tags"); | ||||||
|             $status = MDPuqiMessageStatus::warning; |             $status = MDPuqiMessageStatus::praise; | ||||||
|             $value = self::QI_PENALTY_TOO_MANY_TAGS * ($anzahl_swoergebnis - 10); |             $value = self::QI_REWARD_TAGS_MULTIPLIER * self::THRESHOLD_TAGS_TOO_MANY + ($anzahl_swoergebnis - self::THRESHOLD_TAGS_TOO_MANY) * self::QI_REWARD_TAGS_MULTIPLIER_ABOVE_THRESHOLD; | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         $this->_messages[] = new MDPuqiMessage( |         $this->_messages[] = new MDPuqiMessage( | ||||||
|   | |||||||
| @@ -82,4 +82,41 @@ final class MDPuqiTest extends TestCase { | |||||||
|         self::assertEquals($positive, $score > 0, "Expected score to be positive or negative, got the oppite result. Score is: " . $score); |         self::assertEquals($positive, $score > 0, "Expected score to be positive or negative, got the oppite result. Score is: " . $score); | ||||||
| 
 | 
 | ||||||
|     } |     } | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * Data provider for tag. | ||||||
|  |      * 0: Input number of tags. | ||||||
|  |      * 1: Expected score. | ||||||
|  |      * | ||||||
|  |      * @return Generator<array{0: int, 1: int}> | ||||||
|  |      */ | ||||||
|  |     public static function tagNoAndScoreProvider():Generator { | ||||||
|  | 
 | ||||||
|  |         yield 'No tags' => [0, 0 + MDPuqi::QI_PENALTY_NO_TAG]; | ||||||
|  |         yield 'One tag' => [1, 0 + MDPuqi::QI_PENALTY_ONLY_ONE_TAG]; | ||||||
|  |         yield 'Two tag' => [2, 0 + MDPuqi::QI_PENALTY_ONLY_TWO_TAG]; | ||||||
|  |         yield 'Regular number of tags' => [5, 0 + 5 * MDPuqi::QI_REWARD_TAGS_MULTIPLIER]; | ||||||
|  |         yield 'Number of tags above threshold' => [MDPuqi::THRESHOLD_TAGS_TOO_MANY + 1, 0 + MDPuqi::THRESHOLD_TAGS_TOO_MANY * MDPuqi::QI_REWARD_TAGS_MULTIPLIER + 1 * MDPuqi::QI_REWARD_TAGS_MULTIPLIER_ABOVE_THRESHOLD]; | ||||||
|  | 
 | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * Test for tag evaluation. | ||||||
|  |      * | ||||||
|  |      * @param integer $noOfTags      Input number of tags. | ||||||
|  |      * @param integer $expectedScore Expected score. | ||||||
|  |      * | ||||||
|  |      * @return void | ||||||
|  |      */ | ||||||
|  |     #[DataProvider('tagNoAndScoreProvider')]
 | ||||||
|  |     public function testTagEvaluation(int $noOfTags, int $expectedScore):void { | ||||||
|  | 
 | ||||||
|  |         $puqi = new MDPuqi(new MDTlLoader("abc", "en")); | ||||||
|  |         $puqi->checkEvents([], [], [], [], $noOfTags); | ||||||
|  |         $msgs = $puqi->getMessages(); | ||||||
|  | 
 | ||||||
|  |         $score = $puqi->getScore(); | ||||||
|  |         self::assertEquals(MDPuqi::QI_PENALTY_NO_EVENTS + $expectedScore, $score, "Tag eval: Score differs from expected. Messages: " . var_export($puqi->getMessages(), true)); | ||||||
|  | 
 | ||||||
|  |     } | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user