def _test(raster_layer):

            rat = get_rat(self.raster_layer_color, 1)
            model = RATModel(rat)
            tester = QAbstractItemModelTester(
                model, QAbstractItemModelTester.FailureReportingMode.Warning)

            row_count = model.rowCount(QModelIndex())
            value_index = 1 if model.has_color else 0
            value_0 = model.data(model.index(0, value_index, QModelIndex()))
            value_last = model.data(
                model.index(row_count - 1, value_index, QModelIndex()))

            # Insert first
            self.assertTrue(model.insert_row(0))
            self.assertEqual(model.rowCount(QModelIndex()), row_count + 1)
            self.assertNotEqual(
                model.data(model.index(0, value_index, QModelIndex())),
                value_0)
            self.assertEqual(
                model.data(model.index(0, value_index, QModelIndex())), 0)

            self.assertTrue(model.remove_row(0))
            self.assertEqual(model.rowCount(QModelIndex()), row_count)
            self.assertEqual(
                model.data(model.index(0, value_index, QModelIndex())),
                value_0)

            # Insert last
            self.assertTrue(model.insert_row(row_count))
            self.assertEqual(model.rowCount(QModelIndex()), row_count + 1)
            self.assertNotEqual(
                model.data(model.index(row_count, value_index, QModelIndex())),
                value_last)
            self.assertEqual(
                model.data(model.index(row_count, value_index, QModelIndex())),
                0)
            self.assertEqual(
                model.data(
                    model.index(row_count - 1, value_index, QModelIndex())),
                value_last)

            self.assertTrue(model.remove_row(row_count))
            self.assertEqual(model.rowCount(QModelIndex()), row_count)
            self.assertEqual(
                model.data(
                    model.index(row_count - 1, value_index, QModelIndex())),
                value_last)
    def test_edit_color(self):

        rat = get_rat(self.raster_layer_color, 1)
        model = RATModel(rat)
        tester = QAbstractItemModelTester(
            model, QAbstractItemModelTester.FailureReportingMode.Warning)

        index = model.index(0, 0)
        value = QColor(Qt.magenta)
        model.setData(index, value)

        self.assertEqual(model.data(index, Qt.BackgroundColorRole), value)