1 function ok = test_data_tree
5 tpart_map1 = [0 5 7 10];
6 tpart_map2 = [0 2 7 10];
8 tpart_init1 = arrayfun(@(x) DataTree.DummyLeafNode(x), [1 2 3],
'UniformOutput',
false);
9 tpart_init2 = arrayfun(@(x) DataTree.DummyLeafNode(x), [4 5 6],
'UniformOutput',
false);
11 tpart1 = DataTree.TpartNode(tpart_map1, tpart_init1, 1);
12 tpart2 = DataTree.TpartNode(tpart_map2, tpart_init2, 1);
14 %% first IdMapDataNode
15 idmap = {
'id1',
'id2'};
16 initvalues = {tpart1, tpart2};
18 idnode1 = DataTree.IdMapNode(idmap, initvalues);
20 %% second IdMapDataNode (note the nesting of idmaps)
21 idmap2 = {idmap,
'id3'};
23 idnode2 = DataTree.DummyLeafNode(7);
25 idnode3 = DataTree.IdMapNode(idmap2, {idnode1, idnode2});
30 ok = ok & (
get(idnode3,[idnode3.get_index('id2', [], 3),1]) == 5);
31 ok = ok & (
get(idnode3,[idnode3.get_index('id1', [], 3),1]) == 1);
32 ok = ok & (
get(idnode3,[idnode3.get_index('id2', [], 6.999),1]) == 5);
33 ok = ok & (
get(idnode3,[idnode3.get_index('id2', [], 7),1]) == 6);
34 ok = ok & (
get(idnode3,[idnode3.get_index('id2', [], 10),1]) == 6);
35 ok = ok & (
get(idnode3,[idnode3.get_index('id2', [], 9),1]) == 6);
37 %% test the MergedTreeCreatorIf
38 % here e.g. detailed data containers could be used
for initialization
39 merger1 = DataTree.DummyMerger({
'id1'});
40 mergedtree1 = merger1.merge(idnode2, idnode1);
41 ok = ok & (isequal(
get(mergedtree1,[mergedtree1.get_index(
'id1',[],3),1]),
'7+1'));
42 ok = ok & (isequal(
get(mergedtree1,[mergedtree1.get_index(
'id2',[],3),1]),
'7+1'));
43 merger2 = DataTree.DummyMerger({
'id1',
'id2'});
44 mergedtree2 = merger2.merge(idnode2, idnode1);
45 ok = ok & (isequal(
get(mergedtree2,[mergedtree2.get_index(
'id1',[],3),1]),
'7+1'));
46 ok = ok & (isequal(
get(mergedtree2,[mergedtree2.get_index(
'id2',[],3),1]),
'7+5'));
49 % construct(mdatatree, filter);
53 %% Two applications
for MergedTreeCreator:
54 % - combine (1) ei ops with rb and (2) compute rb overlaps
55 % 1. merge at RBEIDetailedData.gen_reduced_data for each
id in ei part
56 % using "
id regions, tpart_regions, mu_part_regions".
57 % 1.1. in new nodes link to reduced_data of ei and rb
58 % 1.2. compute merged data from detailed_data from ei and rb
60 % 2. merge at TPartDetailedData.gen_reduced_data for each right_overlap
61 % using "tpart_regions, mu_part_regions". The
id should always be
63 % 2.1. in new nodes link to reduced_data of left and right intervals
64 % 2.2. compute merged data from detailed_data from left and right rb
66 % So we can and need assume, that indices in reduced_data are the same as in detailed_data