rust/hg-core/src/testing.rs
changeset 50990 4c5f6e95df84
parent 41241 168041fa6d5f
equal deleted inserted replaced
50989:27e773aa607d 50990:4c5f6e95df84
    39 #[derive(Clone, Debug)]
    39 #[derive(Clone, Debug)]
    40 pub struct SampleGraph;
    40 pub struct SampleGraph;
    41 
    41 
    42 impl Graph for SampleGraph {
    42 impl Graph for SampleGraph {
    43     fn parents(&self, rev: Revision) -> Result<[Revision; 2], GraphError> {
    43     fn parents(&self, rev: Revision) -> Result<[Revision; 2], GraphError> {
    44         match rev {
    44         let null_rev = NULL_REVISION.0;
    45             0 => Ok([NULL_REVISION, NULL_REVISION]),
    45         let res = match rev.0 {
    46             1 => Ok([0, NULL_REVISION]),
    46             0 => Ok([null_rev, null_rev]),
    47             2 => Ok([1, NULL_REVISION]),
    47             1 => Ok([0, null_rev]),
    48             3 => Ok([1, NULL_REVISION]),
    48             2 => Ok([1, null_rev]),
    49             4 => Ok([2, NULL_REVISION]),
    49             3 => Ok([1, null_rev]),
    50             5 => Ok([4, NULL_REVISION]),
    50             4 => Ok([2, null_rev]),
    51             6 => Ok([4, NULL_REVISION]),
    51             5 => Ok([4, null_rev]),
    52             7 => Ok([4, NULL_REVISION]),
    52             6 => Ok([4, null_rev]),
    53             8 => Ok([NULL_REVISION, NULL_REVISION]),
    53             7 => Ok([4, null_rev]),
       
    54             8 => Ok([null_rev, null_rev]),
    54             9 => Ok([6, 7]),
    55             9 => Ok([6, 7]),
    55             10 => Ok([5, NULL_REVISION]),
    56             10 => Ok([5, null_rev]),
    56             11 => Ok([3, 7]),
    57             11 => Ok([3, 7]),
    57             12 => Ok([9, NULL_REVISION]),
    58             12 => Ok([9, null_rev]),
    58             13 => Ok([8, NULL_REVISION]),
    59             13 => Ok([8, null_rev]),
    59             r => Err(GraphError::ParentOutOfRange(r)),
    60             r => Err(GraphError::ParentOutOfRange(Revision(r))),
       
    61         };
       
    62         match res {
       
    63             Ok([a, b]) => Ok([Revision(a), Revision(b)]),
       
    64             Err(e) => Err(e),
    60         }
    65         }
    61     }
    66     }
    62 }
    67 }
    63 
    68 
    64 // A Graph represented by a vector whose indices are revisions
    69 // A Graph represented by a vector whose indices are revisions
    65 // and values are parents of the revisions
    70 // and values are parents of the revisions
    66 pub type VecGraph = Vec<[Revision; 2]>;
    71 pub type VecGraph = Vec<[Revision; 2]>;
    67 
    72 
    68 impl Graph for VecGraph {
    73 impl Graph for VecGraph {
    69     fn parents(&self, rev: Revision) -> Result<[Revision; 2], GraphError> {
    74     fn parents(&self, rev: Revision) -> Result<[Revision; 2], GraphError> {
    70         Ok(self[rev as usize])
    75         Ok(self[rev.0 as usize])
    71     }
    76     }
    72 }
    77 }