#[test]
fn test_estimate_complexity() {
let analyzer = SimpleDeepContext;
let py_code = r#"
if x > 0:
for i in range(10):
if i % 2 == 0:
print(i)
elif x < 0:
print("negative")
"#;
let complexity = analyzer.estimate_complexity(py_code, "py");
assert_eq!(complexity, 6);
let js_code = r#"
if (x > 0 && y < 10) {
for (let i = 0; i < 10; i++) {
if (i % 2 === 0 || i === 5) {
console.log(i);
}
}
}
"#;
let complexity = analyzer.estimate_complexity(js_code, "js");
assert_eq!(complexity, 6); }
#[test]
fn test_estimate_complexity_go() {
let analyzer = SimpleDeepContext;
let go_code = r#"
func main() {
if x > 0 {
for i := 0; i < 10; i++ {
if i%2 == 0 {
fmt.Println(i)
}
}
}
}
"#;
let complexity = analyzer.estimate_complexity(go_code, "go");
assert!(complexity >= 4); }
#[test]
fn test_estimate_complexity_java() {
let analyzer = SimpleDeepContext;
let java_code = r#"
public void process() {
if (x > 0) {
for (int i = 0; i < 10; i++) {
switch (state) {
case 1: break;
case 2: break;
}
}
}
}
"#;
let complexity = analyzer.estimate_complexity(java_code, "java");
assert!(complexity >= 4);
}
#[test]
fn test_estimate_complexity_ruby() {
let analyzer = SimpleDeepContext;
let ruby_code = r#"
def process
if x > 0
(0..10).each do |i|
if i % 2 == 0
puts i
end
end
end
end
"#;
let complexity = analyzer.estimate_complexity(ruby_code, "rb");
assert!(complexity >= 1); }
#[test]
fn test_estimate_complexity_kotlin() {
let analyzer = SimpleDeepContext;
let kt_code = r#"
fun process() {
if (x > 0) {
for (i in 0..10) {
when (i) {
1 -> println("one")
else -> println("other")
}
}
}
}
"#;
let complexity = analyzer.estimate_complexity(kt_code, "kt");
assert!(complexity >= 1); }
#[test]
fn test_estimate_complexity_swift() {
let analyzer = SimpleDeepContext;
let swift_code = r#"
func process() {
if x > 0 {
for i in 0..<10 {
guard i % 2 == 0 else { continue }
print(i)
}
}
}
"#;
let complexity = analyzer.estimate_complexity(swift_code, "swift");
assert!(complexity >= 1); }
#[test]
fn test_estimate_complexity_bash() {
let analyzer = SimpleDeepContext;
let bash_code = r#"
process() {
if [[ $x -gt 0 ]]; then
for i in {1..10}; do
if [[ $((i % 2)) -eq 0 ]]; then
echo $i
fi
done
fi
}
"#;
let complexity = analyzer.estimate_complexity(bash_code, "sh");
assert!(complexity >= 1); }
#[test]
fn test_estimate_complexity_cpp() {
let analyzer = SimpleDeepContext;
let cpp_code = r#"
void process() {
if (x > 0) {
for (int i = 0; i < 10; i++) {
try {
doSomething();
} catch (...) {
handleError();
}
}
}
}
"#;
let complexity = analyzer.estimate_complexity(cpp_code, "cpp");
assert!(complexity >= 4);
}
#[test]
fn test_estimate_complexity_unknown_language() {
let analyzer = SimpleDeepContext;
let code = "some random code with if and while";
let complexity = analyzer.estimate_complexity(code, "unknown_lang");
assert_eq!(complexity, 1);
}
#[test]
fn test_estimate_complexity_empty_code() {
let analyzer = SimpleDeepContext;
let code = "";
let complexity = analyzer.estimate_complexity(code, "py");
assert_eq!(complexity, 1);
}