| // Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| import 'duplicate_code_finder_experiment.dart'; |
| |
| void main() { |
| exactlySameLine(); |
| sameLineDifferentIndentation(); |
| } |
| |
| Uri testUri = Uri.parse("test://uri.dart"); |
| |
| void exactlySameLine() { |
| // Can find exactly the same lines. |
| List<Duplicate> result = findDuplicates({ |
| testUri: """ |
| if (whatever()) { |
| Foo f = new Foo(); |
| f.partA(); |
| f.partB(); |
| f.partC(); |
| } else { |
| print("Else case"); |
| Foo f = new Foo(); |
| f.partA(); |
| f.partB(); |
| f.partC(); |
| } |
| """, |
| }); |
| if (result.length != 1) throw "Didn't find exactly 1 result; got $result"; |
| String s = result.single.toString(); |
| if (!s.contains("Foo f = new Foo ( ) ;") || |
| !s.contains("f . partA ( ) ;") || |
| !s.contains("f . partB ( ) ;") || |
| !s.contains("f . partC ( ) ;")) { |
| throw "Didn't contain expected, was $s"; |
| } |
| } |
| |
| void sameLineDifferentIndentation() { |
| // Can find exactly the same lines. |
| List<Duplicate> result = findDuplicates({ |
| testUri: """ |
| if (whatever()) { |
| Foo f = new Foo(); |
| f.partA(); |
| f.partB(); |
| f.partC(); |
| } else { |
| if (something()) { |
| print("Else case with something"); |
| } else { |
| Foo f = new Foo(); |
| f.partA(); |
| f.partB(); |
| f.partC(); |
| } |
| } |
| """, |
| }); |
| if (result.length != 1) throw "Didn't find exactly 1 result; got $result"; |
| String s = result.single.toString(); |
| if (!s.contains("Foo f = new Foo ( ) ;") || |
| !s.contains("f . partA ( ) ;") || |
| !s.contains("f . partB ( ) ;") || |
| !s.contains("f . partC ( ) ;")) { |
| throw "Didn't contain expected, was $s"; |
| } |
| } |