pyth-client 0.5.1

pyth price oracle data structures and example usage
Documentation
use {
    pyth_client::{instruction, PriceConf},
    solana_program_test::*,
};

mod common;
use common::test_instr_exec_ok;

fn pc(price: i64, conf: u64, expo: i32) -> PriceConf {
    PriceConf {
        price: price,
        conf: conf,
        expo: expo,
    }
}

#[tokio::test]
async fn test_noop() {
    test_instr_exec_ok(instruction::noop()).await;
}

#[tokio::test]
async fn test_scale_to_exponent_down() {
    test_instr_exec_ok(instruction::scale_to_exponent(pc(1, u64::MAX, -1000), 1000)).await
}

#[tokio::test]
async fn test_scale_to_exponent_up() {
    test_instr_exec_ok(instruction::scale_to_exponent(pc(1, u64::MAX, 1000), -1000)).await
}

#[tokio::test]
async fn test_scale_to_exponent_best_case() {
    test_instr_exec_ok(instruction::scale_to_exponent(pc(1, u64::MAX, 10), 10)).await
}

#[tokio::test]
async fn test_normalize_max_conf() {
    test_instr_exec_ok(instruction::normalize(pc(1, u64::MAX, 0))).await
}

#[tokio::test]
async fn test_normalize_max_price() {
    test_instr_exec_ok(instruction::normalize(pc(i64::MAX, 1, 0))).await
}

#[tokio::test]
async fn test_normalize_min_price() {
    test_instr_exec_ok(instruction::normalize(pc(i64::MIN, 1, 0))).await
}

#[tokio::test]
async fn test_normalize_best_case() {
    test_instr_exec_ok(instruction::normalize(pc(1, 1, 0))).await
}

#[tokio::test]
async fn test_div_max_price() {
    test_instr_exec_ok(instruction::divide(
        pc(i64::MAX, 1, 0),
        pc(1, 1, 0)
    )).await;
}

#[tokio::test]
async fn test_div_max_price_2() {
    test_instr_exec_ok(instruction::divide(
        pc(i64::MAX, 1, 0),
        pc(i64::MAX, 1, 0)
    )).await;
}

#[tokio::test]
async fn test_mul_max_price() {
    test_instr_exec_ok(instruction::multiply(
        pc(i64::MAX, 1, 2),
        pc(123, 1, 2),
    )).await;
}

#[tokio::test]
async fn test_mul_max_price_2() {
    test_instr_exec_ok(instruction::multiply(
        pc(i64::MAX, 1, 2),
        pc(i64::MAX, 1, 2),
    )).await;
}