Here's an implementation of GetClosestFibonacciNumbers in C#:

```
public static Tuple<long, long> GetClosestFibonacciNumbers(double number)
{
    long prevFib = 0, currFib = 1;
    while (currFib < number)
    {
        long nextFib = prevFib + currFib;
        prevFib = currFib;
        currFib = nextFib;
    }
    return Tuple.Create(prevFib, currFib);
}
```

This function uses a loop to iterate through the Fibonacci sequence until it finds two consecutive numbers that are greater than or equal to the input number. It then returns a tuple containing these two numbers.

Here are two example tests using xunit and shouldly:

```
public class FibonacciTests
{
    [Fact]
    public void TestClosestFibonacciNumbers1()
    {
        // Arrange
        double number = 17.5;

        // Act
        var result = GetClosestFibonacciNumbers(number);

        // Assert
        result.Item1.ShouldBe(13);
        result.Item2.ShouldBe(21);
    }

    [Fact]
    public void TestClosestFibonacciNumbers2()
    {
        // Arrange
        double number = 7;

        // Act
        var result = GetClosestFibonacciNumbers(number);

        // Assert
        result.Item1.ShouldBe(5);
        result.Item2.ShouldBe(8);
    }
}
```

The first test checks that GetClosestFibonacciNumbers(17.5) returns the tuple (13, 21), since 13 is the closest Fibonacci number less than 17.5 and 21 is the next Fibonacci number after 13. The second test checks that GetClosestFibonacciNumbers(7) returns the tuple (5, 8).
spam fails_task lang_mismatch pii not_appropriate hate_speech sexual_content quality toxicity humor helpfulness creativity violence