В Rust макрос assert_eq!используется для проверки равенства двух значений. Если значения не равны, произойдет паника и отобразится сообщение об ошибке. Вот несколько методов, которые можно использовать с макросом assert_eq!, а также примеры кода:
-
Сравнение примитивных типов:
let actual = 42; let expected = 42; assert_eq!(actual, expected);В этом примере макрос
assert_eq!используется для сравнения двух целых чисел (фактическогоиожидаемого) и обеспечения их равенства. -
Сравнение чисел с плавающей запятой:
let actual = 3.14; let expected = 3.14159; let epsilon = 0.01; assert_eq!(actual, expected, epsilon);При сравнении чисел с плавающей запятой важно учитывать небольшие различия из-за особенностей арифметики с плавающей запятой. Параметр
epsilonиспользуется для указания приемлемой разницы между двумя значениями. -
Сравнение строк:
let actual = "Hello"; let expected = String::from("Hello"); assert_eq!(actual, expected.as_str());В этом примере макрос
assert_eq!используется для сравнения фрагмента строки (актуальный) со строкой (ожидаемый). Методas_str()используется для преобразованияStringв фрагмент строки для сравнения. -
Сравнение пользовательских типов:
struct Person { name: String, age: u32, } let actual = Person { name: String::from("Alice"), age: 30, }; let expected = Person { name: String::from("Alice"), age: 30, }; assert_eq!(actual.name, expected.name); assert_eq!(actual.age, expected.age);Здесь макрос
assert_eq!используется для сравнения отдельных полей двух структурPerson.