Skip to content

Commit

Permalink
test: block sampled datalake
Browse files Browse the repository at this point in the history
  • Loading branch information
rkdud007 committed Mar 21, 2024
1 parent 08a177c commit e2f0dea
Showing 1 changed file with 85 additions and 16 deletions.
101 changes: 85 additions & 16 deletions crates/core/src/datalake/block_sampled.rs
Original file line number Diff line number Diff line change
Expand Up @@ -225,78 +225,147 @@ mod tests {

#[test]
fn test_block_datalake_for_header() {
let blocksample_datalake = "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009eb0f600000000000000000000000000000000000000000000000000000000009eb100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000002010f000000000000000000000000000000000000000000000000000000000000";
let encoded_block_sample_datalake = "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009eb0f600000000000000000000000000000000000000000000000000000000009eb100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000002010f000000000000000000000000000000000000000000000000000000000000";
let decoded_datalake =
BlockSampledDatalake::decode(blocksample_datalake.to_string()).unwrap();
BlockSampledDatalake::decode(encoded_block_sample_datalake.to_string()).unwrap();
let block_datalake =
BlockSampledDatalake::new(10399990, 10400000, "header.base_fee_per_gas".to_string(), 1);
assert_eq!(
decoded_datalake.encode().unwrap(),
block_datalake.encode().unwrap()
);

assert_eq!(decoded_datalake.encode().unwrap(), blocksample_datalake);
assert_eq!(
decoded_datalake.encode().unwrap(),
encoded_block_sample_datalake
);

assert_eq!(
block_datalake.commit(),
"0x26365cf5692cc38bca06023b8b62ceb0f6bd959a57e3c453be213d1b71d73732".to_string()
);

assert_eq!(block_datalake.get_property_type(), 1);
}

#[test]
fn test_block_datalake_for_header_massive() {
let blocksample_datalake = "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009d2a6000000000000000000000000000000000000000000000000000000000009eb100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000002010f000000000000000000000000000000000000000000000000000000000000";
let encoded_block_sample_datalake = "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009d2a6000000000000000000000000000000000000000000000000000000000009eb100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000002010f000000000000000000000000000000000000000000000000000000000000";
let decoded_datalake: BlockSampledDatalake =
BlockSampledDatalake::decode(blocksample_datalake.to_string()).unwrap();
BlockSampledDatalake::decode(encoded_block_sample_datalake.to_string()).unwrap();
let block_datalake =
BlockSampledDatalake::new(10300000, 10400000, "header.base_fee_per_gas".to_string(), 1);

assert_eq!(
decoded_datalake.encode().unwrap(),
block_datalake.encode().unwrap()
);

assert_eq!(decoded_datalake.encode().unwrap(), blocksample_datalake);
assert_eq!(
decoded_datalake.encode().unwrap(),
encoded_block_sample_datalake
);

assert_eq!(
block_datalake.commit(),
"0xc21f3b3a49c5bed8b7624d0efc050a2a481f06f627d04212bf1d745d0aa5c6f1".to_string()
);

assert_eq!(block_datalake.get_property_type(), 1);
}

#[test]
fn test_block_datalake_for_account() {
let blocksample_datalake = "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009eb0f600000000000000000000000000000000000000000000000000000000009eb100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000016027b2f05ce9ae365c3dbf30657e2dc6449989e83d60000000000000000000000";
let encoded_block_sample_datalake = "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009eb0f600000000000000000000000000000000000000000000000000000000009eb100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000016027b2f05ce9ae365c3dbf30657e2dc6449989e83d60000000000000000000000";
let decoded_datalake =
BlockSampledDatalake::decode(blocksample_datalake.to_string()).unwrap();
BlockSampledDatalake::decode(encoded_block_sample_datalake.to_string()).unwrap();
let block_datalake = BlockSampledDatalake::new(
10399990,
10400000,
"account.0x7b2f05ce9ae365c3dbf30657e2dc6449989e83d6.nonce".to_string(),
1,
);
assert_eq!(decoded_datalake, block_datalake);
assert_eq!(decoded_datalake.encode().unwrap(), blocksample_datalake);
assert_eq!(
decoded_datalake.encode().unwrap(),
encoded_block_sample_datalake
);

assert_eq!(
block_datalake.commit(),
"0x79b0d86f9b08c78f527666d4d39d01349530ced0a3d37f4c63e7108814a670b7".to_string()
);

assert_eq!(block_datalake.get_property_type(), 2);
}

#[test]
fn test_block_datalake_for_account_2() {
let blocksample_datalake = "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004b902400000000000000000000000000000000000000000000000000000000004b9027000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000016020a4de450feb156a2a51ed159b2fb99da26e5f3a30000000000000000000000";
let encoded_block_sample_datalake = "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004b902400000000000000000000000000000000000000000000000000000000004b9027000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000016020a4de450feb156a2a51ed159b2fb99da26e5f3a30000000000000000000000";
let decoded_datalake =
BlockSampledDatalake::decode(blocksample_datalake.to_string()).unwrap();
BlockSampledDatalake::decode(encoded_block_sample_datalake.to_string()).unwrap();
let block_datalake = BlockSampledDatalake::new(
4952100,
4952103,
"account.0x0a4de450feb156a2a51ed159b2fb99da26e5f3a3.nonce".to_string(),
1,
);
let serialized = block_datalake.encode().unwrap();
assert_eq!(serialized, blocksample_datalake);
assert_eq!(serialized, encoded_block_sample_datalake);
assert_eq!(decoded_datalake, block_datalake);
assert_eq!(decoded_datalake.encode().unwrap(), blocksample_datalake);
assert_eq!(
decoded_datalake.encode().unwrap(),
encoded_block_sample_datalake
);

assert_eq!(
block_datalake.commit(),
"0x6db54c04174bd625449785ca58efd313e016b807d0a17add522d74e0e27c3b08".to_string()
);

assert_eq!(block_datalake.get_property_type(), 2);
}

#[test]
fn test_block_datalake_for_storage() {
let blocksample_datalake = "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009eb0f600000000000000000000000000000000000000000000000000000000009eb100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000035037b2f05ce9ae365c3dbf30657e2dc6449989e83d600000000000000000000000000000000000000000000000000000000000000ff0000000000000000000000";
let encoded_block_sample_datalake = "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009eb0f600000000000000000000000000000000000000000000000000000000009eb100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000035037b2f05ce9ae365c3dbf30657e2dc6449989e83d600000000000000000000000000000000000000000000000000000000000000ff0000000000000000000000";
let decoded_datalake =
BlockSampledDatalake::decode(blocksample_datalake.to_string()).unwrap();
BlockSampledDatalake::decode(encoded_block_sample_datalake.to_string()).unwrap();
let block_datalake = BlockSampledDatalake::new(
10399990,
10400000,
"storage.0x7b2f05ce9ae365c3dbf30657e2dc6449989e83d6.0x00000000000000000000000000000000000000000000000000000000000000ff".to_string(),
1,
);
assert_eq!(decoded_datalake, block_datalake);
assert_eq!(decoded_datalake.encode().unwrap(), blocksample_datalake);
assert_eq!(
decoded_datalake.encode().unwrap(),
encoded_block_sample_datalake
);

assert_eq!(
block_datalake.commit(),
"0x147dc75fd577a75dca31c0c5181539a1078c48759e379685b827f8c0e3f0b6ef".to_string()
);

assert_eq!(block_datalake.get_property_type(), 3);
}

#[test]
fn test_sampled_property() {
let target = "header.base_fee_per_gas";
let serialized = serialize_sampled_property(target).unwrap();
let property = deserialize_sampled_property(&serialized).unwrap();
assert_eq!(property, target);

let target = "account.0x7b2f05ce9ae365c3dbf30657e2dc6449989e83d6.nonce";
let serialized = serialize_sampled_property(target).unwrap();
let property = deserialize_sampled_property(&serialized).unwrap();
assert_eq!(property, target);

let target = "storage.0x7b2f05ce9ae365c3dbf30657e2dc6449989e83d6.0x00000000000000000000000000000000000000000000000000000000000000ff";
let serialized = serialize_sampled_property(target).unwrap();
let property = deserialize_sampled_property(&serialized).unwrap();
assert_eq!(property, target);
}
}

0 comments on commit e2f0dea

Please sign in to comment.