107 right: self.top.clone(), |
107 right: self.top.clone(), |
108 bottom: self.right.clone(), |
108 bottom: self.right.clone(), |
109 left: self.bottom.clone(), |
109 left: self.bottom.clone(), |
110 } |
110 } |
111 } |
111 } |
|
112 |
|
113 pub fn right_edge(&self) -> &Edge<I> { |
|
114 &self.right |
|
115 } |
|
116 |
|
117 pub fn bottom_edge(&self) -> &Edge<I> { |
|
118 &self.bottom |
|
119 } |
|
120 |
|
121 pub fn left_edge(&self) -> &Edge<I> { |
|
122 &self.left |
|
123 } |
|
124 |
|
125 pub fn top_edge(&self) -> &Edge<I> { |
|
126 &self.top |
|
127 } |
112 } |
128 } |
113 |
129 |
114 #[cfg(test)] |
130 #[cfg(test)] |
115 mod tests {} |
131 mod tests { |
|
132 use super::*; |
|
133 |
|
134 #[test] |
|
135 fn test_edge_new() { |
|
136 let edge = Edge::new(1, true); |
|
137 assert_eq!(edge.id, 1); |
|
138 assert_eq!(edge.symmetrical, true); |
|
139 assert_eq!(edge.reverse, false); |
|
140 } |
|
141 |
|
142 #[test] |
|
143 fn test_edge_reversed() { |
|
144 let edge = Edge::new(1, true); |
|
145 let reversed = edge.reversed(); |
|
146 assert_eq!(reversed.id, edge.id); |
|
147 assert_eq!(reversed.symmetrical, edge.symmetrical); |
|
148 assert_eq!(reversed.reverse, false); |
|
149 |
|
150 let edge = Edge::new(1, false); |
|
151 let reversed = edge.reversed(); |
|
152 assert_eq!(reversed.id, edge.id); |
|
153 assert_eq!(reversed.symmetrical, edge.symmetrical); |
|
154 assert_eq!(reversed.reverse, true); |
|
155 } |
|
156 |
|
157 #[test] |
|
158 fn test_edge_equality() { |
|
159 let edge1 = Edge::new(1, true); |
|
160 let edge2 = Edge::new(1, true); |
|
161 assert_eq!(edge1, edge2); |
|
162 |
|
163 let edge1 = Edge::new(1, false); |
|
164 let edge2 = Edge::new(1, false); |
|
165 assert_eq!(edge1, edge2); |
|
166 |
|
167 let edge1 = Edge::new(1, false); |
|
168 let edge2 = Edge::new(2, false); |
|
169 assert_ne!(edge1, edge2); |
|
170 } |
|
171 |
|
172 #[test] |
|
173 fn test_edge_equality_with_reverse() { |
|
174 let edge1 = Edge::new(1, true); |
|
175 let edge2 = edge1.reversed(); |
|
176 assert_eq!(edge1, edge2); |
|
177 |
|
178 let edge1 = Edge::new(1, false); |
|
179 let edge2 = edge1.reversed(); |
|
180 assert_ne!(edge1, edge2); |
|
181 |
|
182 let edge1 = Edge::new(1, true); |
|
183 let edge2 = edge1.reversed().reversed(); |
|
184 assert_eq!(edge1, edge2); |
|
185 } |
|
186 } |