



"""simple docstring"""




import os

from ...utils import logging
from .utils import DataProcessor, InputExample


lowerCamelCase__			=   logging.get_logger(__name__)







class 					_UpperCamelCase		( A__):






    def __init__(self						,      lowerCamelCase__						,      lowerCamelCase__=None   ):


      """simple docstring"""
      A__											=							language
      A__											=							train_language






    def  A    (self						,      lowerCamelCase__   ):


      """simple docstring"""
      A__											=							self.language if self.train_language is None else self.train_language
      A__											=							self._read_tsv(os.path.join(_lowerCAmelCase						,      F"""XNLI-MT-1.0/multinli/multinli.train.{lg}.tsv"""   )   )
      A__											=							[]
      for i, line in enumerate(_lowerCAmelCase   ):
        if i == 0:
          continue
        A__											=							F"""train-{i}"""
        A__											=							line[0]
        A__											=							line[1]
        A__											=							"""contradiction""" if line[2] == """contradictory""" else line[2]
        if not isinstance(_lowerCAmelCase						,      _lowerCAmelCase   ):
          raise ValueError(F"""Training input {text_a} is not a string"""   )
        if not isinstance(_lowerCAmelCase						,      _lowerCAmelCase   ):
          raise ValueError(F"""Training input {text_b} is not a string"""   )
        if not isinstance(_lowerCAmelCase						,      _lowerCAmelCase   ):
          raise ValueError(F"""Training label {label} is not a string"""   )
        examples.append(InputExample(guid=_lowerCAmelCase						,      text_a=_lowerCAmelCase						,      text_b=_lowerCAmelCase						,      label=_lowerCAmelCase   )   )
      return examples






    def  A    (self						,      lowerCamelCase__   ):


      """simple docstring"""
      A__											=							self._read_tsv(os.path.join(_lowerCAmelCase						,      """XNLI-1.0/xnli.test.tsv"""   )   )
      A__											=							[]
      for i, line in enumerate(_lowerCAmelCase   ):
        if i == 0:
          continue
        A__											=							line[0]
        if language != self.language:
          continue
        A__											=							F"""test-{i}"""
        A__											=							line[6]
        A__											=							line[7]
        A__											=							line[1]
        if not isinstance(_lowerCAmelCase						,      _lowerCAmelCase   ):
          raise ValueError(F"""Training input {text_a} is not a string"""   )
        if not isinstance(_lowerCAmelCase						,      _lowerCAmelCase   ):
          raise ValueError(F"""Training input {text_b} is not a string"""   )
        if not isinstance(_lowerCAmelCase						,      _lowerCAmelCase   ):
          raise ValueError(F"""Training label {label} is not a string"""   )
        examples.append(InputExample(guid=_lowerCAmelCase						,      text_a=_lowerCAmelCase						,      text_b=_lowerCAmelCase						,      label=_lowerCAmelCase   )   )
      return examples






    def  A    (self   ):


      """simple docstring"""
      return ["contradiction", "entailment", "neutral"]
lowerCamelCase__			=   {
    'xnli': XnliProcessor,
}

lowerCamelCase__			=   {
    'xnli': 'classification',
}

lowerCamelCase__			=   {
    'xnli': 3,
}












"""simple docstring"""




def 						_SCREAMING_SNAKE_CASE							( UpperCamelCase     :	int		,				UpperCamelCase     :	int = 1000    ):
  if (not isinstance(UpperCamelCase		,				UpperCamelCase    )) or (digit_position <= 0):
    raise ValueError("""Digit position must be a positive integer"""    )
  elif (not isinstance(UpperCamelCase		,				UpperCamelCase    )) or (precision < 0):
    raise ValueError("""Precision must be a nonnegative integer"""    )

  # compute an approximation of (16 ** (n - 1)) * pi whose fractional part is mostly
  # accurate
  A__											=							(
      4 * _subsum(UpperCamelCase		,				1		,				UpperCamelCase    )
      - 2 * _subsum(UpperCamelCase		,				4		,				UpperCamelCase    )
      - _subsum(UpperCamelCase		,				5		,				UpperCamelCase    )
      - _subsum(UpperCamelCase		,				6		,				UpperCamelCase    )
  )

  # return the first hex digit of the fractional part of the result
  return hex(int((sum_result % 1) * 16    )    )[2:]






def 						_SCREAMING_SNAKE_CASE							( UpperCamelCase     :	int		,				UpperCamelCase     :	int		,				UpperCamelCase     :	int    ):
  A__											=							0.0
  for sum_index in range(digit_pos_to_extract + precision    ):
    A__											=							8 * sum_index + denominator_addend
    if sum_index < digit_pos_to_extract:
      # if the exponential term is an integer and we mod it by the denominator
      # before dividing, only the integer part of the sum will change;
      # the fractional part will not
      A__											=							pow(
          16		,				digit_pos_to_extract - 1 - sum_index		,				UpperCamelCase    )
    else:
      A__											=							pow(16		,				digit_pos_to_extract - 1 - sum_index    )
    total += exponential_term / denominator
  return total


if __name__ == "__main__":
      import doctest

      doctest.testmod()




