git.delta.rocks / unique-network / refs/commits / ca9fba1ceb64

difftreelog

source

pallets/proxy-rmrk-equip/src/benchmarking.rs3.2 KiBsourcehistory
1use sp_std::vec;23use frame_benchmarking::{benchmarks, account};4use frame_system::RawOrigin;5use frame_support::{6	traits::{Currency, Get},7	BoundedVec,8};910use up_data_structs::*;1112use super::*;1314const SEED: u32 = 1;1516fn create_data<S: Get<u32>>() -> BoundedVec<u8, S> {17	vec![b'A'; S::get() as usize].try_into().expect("size == S")18}1920fn create_u32_array<S: Get<u32>>() -> BoundedVec<u32, S> {21	vec![0; S::get() as usize].try_into().expect("size == S")22}2324fn create_max_part(id: RmrkSlotId) -> RmrkPartType {25	RmrkPartType::SlotPart(RmrkSlotPart {26		id,27		equippable: RmrkEquippableList::Custom(create_u32_array()),28		src: create_data(),29		z: 1,30	})31}3233fn create_parts_array<S: Get<u32>>(num: u32) -> BoundedVec<RmrkPartType, S> {34	let mut parts: BoundedVec<RmrkPartType, S> = vec![].try_into().expect("0 <= S");3536	for i in 0..num {37		parts.try_push(create_max_part(i)).expect("num <= S");38	}3940	parts41}4243fn create_max_theme_property() -> RmrkThemeProperty {44	RmrkThemeProperty {45		key: create_data(),46		value: create_data(),47	}48}4950fn create_theme_properties_array<S: Get<u32>>(num: u32) -> BoundedVec<RmrkThemeProperty, S> {51	vec![create_max_theme_property(); num as usize]52		.try_into()53		.expect("num <= S")54}5556fn create_max_theme(name: RmrkString, props_num: u32) -> RmrkBoundedTheme {57	RmrkBoundedTheme {58		name,59		properties: create_theme_properties_array(props_num),60		inherit: false,61	}62}6364benchmarks! {65	create_base {66		let b in 0..RmrkPartsLimit::get();6768		let caller = account("caller", 0, SEED);69		<T as pallet_common::Config>::Currency::deposit_creating(&caller, T::CollectionCreationPrice::get());7071		let base_type = create_data();72		let symbol = create_data();73		let parts = create_parts_array(b);74	}: _(RawOrigin::Signed(caller), base_type, symbol, parts)7576	theme_add {77		let b in 0..MaxPropertiesPerTheme::get();7879		let caller = account("caller", 0, SEED);80		<T as pallet_common::Config>::Currency::deposit_creating(&caller, T::CollectionCreationPrice::get());8182		let base_type = create_data();83		let symbol = create_data();84		let parts = create_parts_array(0);8586		<Pallet<T>>::create_base(RawOrigin::Signed(caller.clone()).into(), base_type, symbol, parts)?;87		let base_id = 1;888990		let default_theme_name = b"default".to_vec().try_into().expect("default is a valid name; qed");91		let default_theme = create_max_theme(default_theme_name, 0);9293		<Pallet<T>>::theme_add(RawOrigin::Signed(caller.clone()).into(), base_id, default_theme)?;9495		let theme = create_max_theme(create_data(), b);96	}: _(RawOrigin::Signed(caller), base_id, theme)9798	equippable {99		let caller = account("caller", 0, SEED);100		<T as pallet_common::Config>::Currency::deposit_creating(&caller, T::CollectionCreationPrice::get());101102		let base_id = 1;103		let slot_id = 42;104105		let base_type = create_data();106		let symbol = create_data();107		let parts = vec! {108			RmrkPartType::SlotPart(RmrkSlotPart {109				id: slot_id,110				equippable: RmrkEquippableList::All,111				src: create_data(),112				z: 1,113			})114		}.try_into().expect("1 <= RmrkPartsLimit");115116		<Pallet<T>>::create_base(RawOrigin::Signed(caller.clone()).into(), base_type, symbol, parts)?;117118		let equippables = RmrkEquippableList::Custom(create_u32_array());119	}: _(RawOrigin::Signed(caller), base_id, slot_id, equippables)120}