Run the same check over several input rows.

Case Table

CaseTable.cs
using System;

class Program
{
    static int AddBonus(int value, int bonus)
    {
        return value + bonus;
    }

    static void Main()
    {
        int bonus = ;
        int[] inputs = { 2, 4, 6 };
        int[] expected = { 3, 5, 7 };
        int passed = 0;

        for (int i = 0; i < inputs.Length; i++)
        {
            int actual = AddBonus(inputs[i], bonus);
            bool ok = actual == expected[i];

            if (ok)
            {
                passed++;
            }

            Console.WriteLine($"case={i}, ok={ok}");
        }

        Console.WriteLine($"passed={passed}");
    }
}
using System;

class Program
{
    static int AddBonus(int value, int bonus)
    {
        return value + bonus;
    }

    static void Main()
    {
        int bonus = ;
        int[] inputs = { 2, 4, 6 };
        int[] expected = { 3, 5, 7 };
        int passed = 0;

        for (int i = 0; i < inputs.Length; i++)
        {
            int actual = AddBonus(inputs[i], bonus);
            bool ok = actual == expected[i];

            if (ok)
            {
                passed++;
            }

            Console.WriteLine($"case={i}, ok={ok}");
        }

        Console.WriteLine($"passed={passed}");
    }
}
using System;

class Program
{
    static int AddBonus(int value, int bonus)
    {
        return value + bonus;
    }

    static void Main()
    {
        int bonus = ;
        int[] inputs = { 2, 4, 6 };
        int[] expected = { 3, 5, 7 };
        int passed = 0;

        for (int i = 0; i < inputs.Length; i++)
        {
            int actual = AddBonus(inputs[i], bonus);
            bool ok = actual == expected[i];

            if (ok)
            {
                passed++;
            }

            Console.WriteLine($"case={i}, ok={ok}");
        }

        Console.WriteLine($"passed={passed}");
    }
}
testing Table-driven tests keep repeated examples compact by storing inputs and expected outputs together.