| 18 | using namespace strings; |
| 19 | |
| 20 | struct MatchCostMock |
| 21 | { |
| 22 | uint32_t Cost10(char) const { return 1; } |
| 23 | uint32_t Cost01(char) const { return 1; } |
| 24 | uint32_t Cost11(char, char) const { return 1; } |
| 25 | uint32_t Cost12(char a, char const * pB) const |
| 26 | { |
| 27 | if (a == 'X' && pB[0] == '>' && pB[1] == '<') |
| 28 | return 0; |
| 29 | return 2; |
| 30 | } |
| 31 | uint32_t Cost21(char const * pA, char b) const { return Cost12(b, pA); } |
| 32 | uint32_t Cost22(char const *, char const *) const { return 2; } |
| 33 | uint32_t SwapCost(char, char) const { return 1; } |
| 34 | }; |
| 35 | |
| 36 | uint32_t FullMatchCost(char const * a, char const * b, uint32_t maxCost = 1000) |
| 37 | { |
no outgoing calls