Config-Model
view release on metacpan or search on metacpan
t/warped_id.t view on Meta::CPAN
use ExtUtils::testlib;
use Test::More;
use Test::Differences;
use Test::Memory::Cycle;
use Config::Model;
use Config::Model::Tester::Setup qw/init_test/;
use strict;
use warnings;
my ($model, $trace) = init_test();
$model->create_config_class(
name => 'Slave',
element => [
[qw/X Y Z/] => {
type => 'leaf',
value_type => 'enum',
choice => [qw/Av Bv Cv/],
}
]
);
$model->create_config_class(
name => 'Master',
'element' => [
macro => {
type => 'leaf',
value_type => 'enum',
choice => [qw/A B C/],
},
version => {
type => 'leaf',
value_type => 'integer',
default => 1
},
warped_hash => {
type => 'hash',
index_type => 'integer',
max_nb => 3,
warp => {
follow => '- macro',
rules => {
A => { max_nb => 1 },
B => { max_nb => 2 } }
},
cargo => {
type => 'node',
config_class_name => 'Slave'
}
},
'multi_warp' => {
type => 'hash',
index_type => 'integer',
min => 0,
max => 3,
default_keys => [ 0 .. 3 ],
warp => {
follow => [ '- version', '- macro' ],
'rules' => [
[ '2', 'C' ] => { max => 7, default_keys => [ 0 .. 7 ] },
[ '2', 'A' ] => { max_index => 7, default_keys => [ 0 .. 7 ] } ]
},
( run in 0.780 second using v1.01-cache-2.11-cpan-6aa56a78535 )