コード例 #1
0
ファイル: tests.c プロジェクト: 13XeNuS37/bitcoin
void test_num_negate(void) {
    secp256k1_num_t n1;
    secp256k1_num_t n2;
    random_num_order_test(&n1); /* n1 = R */
    random_num_negate(&n1);
    secp256k1_num_copy(&n2, &n1); /* n2 = R */
    secp256k1_num_sub(&n1, &n2, &n1); /* n1 = n2-n1 = 0 */
    CHECK(secp256k1_num_is_zero(&n1));
    secp256k1_num_copy(&n1, &n2); /* n1 = R */
    secp256k1_num_negate(&n1); /* n1 = -R */
    CHECK(!secp256k1_num_is_zero(&n1));
    secp256k1_num_add(&n1, &n2, &n1); /* n1 = n2+n1 = 0 */
    CHECK(secp256k1_num_is_zero(&n1));
    secp256k1_num_copy(&n1, &n2); /* n1 = R */
    secp256k1_num_negate(&n1); /* n1 = -R */
    CHECK(secp256k1_num_is_neg(&n1) != secp256k1_num_is_neg(&n2));
    secp256k1_num_negate(&n1); /* n1 = R */
    CHECK(secp256k1_num_eq(&n1, &n2));
}
コード例 #2
0
ファイル: tests.c プロジェクト: kimziv/curvebench
void test_num_negate() {
    secp256k1_num_t n1;
    secp256k1_num_t n2;
    secp256k1_num_init(&n1);
    secp256k1_num_init(&n2);
    random_num_order_test(&n1); // n1 = R
    random_num_negate(&n1);
    secp256k1_num_copy(&n2, &n1); // n2 = R
    secp256k1_num_sub(&n1, &n2, &n1); // n1 = n2-n1 = 0
    assert(secp256k1_num_is_zero(&n1));
    secp256k1_num_copy(&n1, &n2); // n1 = R
    secp256k1_num_negate(&n1); // n1 = -R
    assert(!secp256k1_num_is_zero(&n1));
    secp256k1_num_add(&n1, &n2, &n1); // n1 = n2+n1 = 0
    assert(secp256k1_num_is_zero(&n1));
    secp256k1_num_copy(&n1, &n2); // n1 = R
    secp256k1_num_negate(&n1); // n1 = -R
    assert(secp256k1_num_is_neg(&n1) != secp256k1_num_is_neg(&n2));
    secp256k1_num_negate(&n1); // n1 = R
    assert(secp256k1_num_cmp(&n1, &n2) == 0);
    assert(secp256k1_num_is_neg(&n1) == secp256k1_num_is_neg(&n2));
    secp256k1_num_free(&n2);
    secp256k1_num_free(&n1);
}