<commit_before>import React from 'react';
import Analyzer from 'parser/core/Analyzer';
import SPELLS from 'common/SPELLS';
import SpellLink from 'common/SpellLink';
import ItemDamageDone from 'interface/others/ItemDamageDone';
import StatisticListBoxItem from 'interface/others/StatisticListBoxItem';
import calculateEffectiveDamage from 'parser/core/calculateEffectiveDamage';

/**
 * Increases the damage of your pet's abilities by 30%.
 * Increases the effectiveness of your pet's Predator's Thirst, Endurance Training, and Pathfinding passives by 50%.
 *
 * Example log: https://www.warcraftlogs.com/reports/htGc4Vp8QJ6XTW72#fight=1&type=damage-done&source=13
 */

const ASPECT_MULTIPLIER = 0.3;

class AspectOfTheBeast extends Analyzer {

  damage = 0;

  constructor(...args) {
    super(...args);
    this.active = this.selectedCombatant.hasTalent(SPELLS.ASPECT_OF_THE_BEAST_TALENT.id);
  }

  on_byPlayerPet_damage(event) {
    const spellId = event.ability.guid;
    if (spellId === SPELLS.MELEE.id) {
      return;
    }
    this.damage += calculateEffectiveDamage(event, ASPECT_MULTIPLIER);
  }

  subStatistic() {
    return (
      <StatisticListBoxItem
        title={<SpellLink id={SPELLS.ASPECT_OF_THE_BEAST_TALENT.id} />}
        value={<ItemDamageDone amount={this.damage} />}
      />
    );
  }
}

export default AspectOfTheBeast;<commit_msg> add more filtes to aotb<commit_after>import React from 'react';
import Analyzer from 'parser/core/Analyzer';
import SPELLS from 'common/SPELLS';
import SpellLink from 'common/SpellLink';
import ItemDamageDone from 'interface/others/ItemDamageDone';
import StatisticListBoxItem from 'interface/others/StatisticListBoxItem';
import calculateEffectiveDamage from 'parser/core/calculateEffectiveDamage';

/**
 * Increases the damage of your pet's abilities by 30%.
 * Increases the effectiveness of your pet's Predator's Thirst, Endurance Training, and Pathfinding passives by 50%.
 *
 * Example log: https://www.warcraftlogs.com/reports/htGc4Vp8QJ6XTW72#fight=1&type=damage-done&source=13
 */

const ASPECT_MULTIPLIER = 0.3;

class AspectOfTheBeast extends Analyzer {

  damage = 0;

  constructor(...args) {
    super(...args);
    this.active = this.selectedCombatant.hasTalent(SPELLS.ASPECT_OF_THE_BEAST_TALENT.id);
  }

  on_byPlayerPet_damage(event) {
    const spellId = event.ability.guid;
    if (spellId === SPELLS.MELEE.id || spellId === SPELLS.KILL_COMMAND_PET.id || spellId === SPELLS.STOMP_DAMAGE.id) {
      return;
    }
    this.damage += calculateEffectiveDamage(event, ASPECT_MULTIPLIER);
  }

  subStatistic() {
    return (
      <StatisticListBoxItem
        title={<SpellLink id={SPELLS.ASPECT_OF_THE_BEAST_TALENT.id} />}
        value={<ItemDamageDone amount={this.damage} />}
      />
    );
  }
}

export default AspectOfTheBeast;
{'fraction_non_alphanumeric': 0.11367673179396093, 'fraction_numerical': 0.010657193605683837, 'mean_word_length': 4.394636015325671, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 9, 'https://': 2, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '138852', 'n_tokens_mistral': 1002, 'n_tokens_neox': 964, 'n_words': 186}