Преобразование модульного теста C# в метод

Мне дали код, написанный как модульный тест для xunit. Мне нужно использовать этот код в своем приложении для генерации CRC-16. Как я могу получить код ниже, чтобы вернуть то, что мне нужно?

    [Fact]
    public void ComputesCrc16FromTelegramOf8000()
    {
        var calculator = new CRC16();

        var test = StringToByteArray("8000");
        var result = calculator.ComputeHash(test, 0, test.Length);
        Assert.Equal((ushort) 0xC061, BitConverter.ToUInt16(result, 0));
    }

person dynamicuser    schedule 04.04.2014    source источник
comment
Вы спрашиваете нас, как вычислить хэш CRC-16? То есть как реализовать метод CRC16.ComputeHash?   -  person Chris Sinclair    schedule 04.04.2014
comment
в соответствии с моими тестами знаний, чтобы убедиться, что ваша функциональность не нарушена. Не генерировать код из него.   -  person SpiderCode    schedule 04.04.2014
comment
Я думаю, что OP нужен пример использования CRC16, и ему дали модульный тест - он не знает, как изменить модульный тест на вспомогательный метод.   -  person Starscream1984    schedule 04.04.2014
comment
Старскрим1984, это точно. Я просто пробую ваше предложение.   -  person dynamicuser    schedule 04.04.2014


Ответы (1)


Вы можете просто добавить некоторые данные и вернуть результат:

public Byte[] ComputeCrc16(string input) 
{
    var calculator = new CRC16();
    var bytes = StringToByteArray(input);

    return calculator.ComputeHash(bytes, 0, bytes.Length);
}
person Starscream1984    schedule 04.04.2014
comment
А точнее return calculator.ComputeHash(bytes, 0, bytes.Length) - person James; 04.04.2014
comment
Удалите =, также вам нужно установить тип возвращаемого значения byte[] - person James; 04.04.2014
comment
Это работает для данного вопроса, однако вывод CRC неверен. Я сделал еще один пост здесь для всех, кто заинтересован - stackoverflow.com/questions/22860356/ - person dynamicuser; 04.04.2014