class_docstr: Groupwise RankingEstimator tests.
code: def setUp(self):
      super(GroupwiseRankingEstimatorTest, self).setUp()
      self._model_dir = self.get_temp_dir()
      tf.io.gfile.makedirs(self._model_dir)
      model_fn = model.make_groupwise_ranking_fn(
          _group_score_fn,
          group_size=2,
          transform_fn=feature.make_identity_transform_fn(
              ["context", "weight"]
          ),
          ranking_head=head.create_ranking_head(
              loss_fn=losses.make_loss_fn(
                  losses.RankingLossKey.PAIRWISE_HINGE_LOSS,
                  weights_feature_name="weight",
              ),
              optimizer=tf.compat.v1.train.AdagradOptimizer(
                  learning_rate=0.1
              ),
          ),
      )
      self._estimator = tf_estimator.Estimator(
          model_fn, self._model_dir
      )
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import os
  from absl.testing import parameterized
  import tensorflow
  from tensorflow import estimator
  from tensorflow_ranking.python import feature
  from tensorflow_ranking.python import head
  from tensorflow_ranking.python import losses
  from tensorflow_ranking.python import model
label_desc: Use image node_id 1 for calling the GroupwiseRankingEstimatorTest obj's underlying member method code with example usage: obj.setUp() without return types