original_string: protected function num_parts_correct(question_attempt $qa) {
          $a = new stdClass();
          list($a->num, $a->outof) = $qa->get_question()->get_num_parts_right(
                  $qa->get_last_qt_data());
          if (is_null($a->outof)) {
              return '';
          } else {
              return get_string('yougotnright', 'question', $a);
          }
      }
code: protected function num_parts_correct(question_attempt $qa) {
          $a = new stdClass();
          list($a->num, $a->outof) = $qa->get_question()->get_num_parts_right(
                  $qa->get_last_qt_data());
          if (is_null($a->outof)) {
              return '';
          } else {
              return get_string('yougotnright', 'question', $a);
          }
      }
code_tokens: protected function num_parts_correct ( question_attempt $ qa ) { $ a = new stdClass ( ) ; list ( $ a -> num , $ a -> outof ) = $ qa -> get_question ( ) -> get_num_parts_right ( $ qa -> get_last_qt_data ( ) ) ; if ( is_null ( $ a -> outof ) ) { return '' ; } else { return get_string ( 'yougotnright' , 'question' , $ a ) ; } }
docstring: Gereate a brief statement of how many sub-parts of this question the
  student got right.
  @param question_attempt $qa the question attempt to display.
  @return string HTML fragment.
docstring_tokens: Gereate a brief statement of how many sub - parts of this question the student got right .