mod describe_0033_language_detection {
use super::*;
const TS_DESCRIBE_TITLE: &str = "Language Detection";
const TS_DESCRIBE_LINE: usize = 33;
#[test]
fn describes_001_is_represented() {
assert!(!TS_DESCRIBE_TITLE.is_empty());
assert_eq!(TS_DESCRIBE_LINE, 33);
}
#[test]
fn case_0034_should_detect_typescript_files() {
let suite = ["Language Detection"];
assert_eq!(suite.len(), 1);
assert_eq!(1, 1);
assert_detected_language("src/index.ts", None, Language::TypeScript);
assert_detected_language("components/Button.tsx", None, Language::Tsx);
}
#[test]
fn case_0039_should_detect_javascript_files() {
let suite = ["Language Detection"];
assert_eq!(suite.len(), 1);
assert_eq!(2, 2);
assert_detected_language("index.js", None, Language::JavaScript);
assert_detected_language("App.jsx", None, Language::Jsx);
assert_detected_language("config.mjs", None, Language::JavaScript);
}
#[test]
fn case_0045_should_detect_python_files() {
let suite = ["Language Detection"];
assert_eq!(suite.len(), 1);
assert_eq!(3, 3);
assert_detected_language("main.py", None, Language::Python);
}
#[test]
fn case_0049_should_detect_go_files() {
let suite = ["Language Detection"];
assert_eq!(suite.len(), 1);
assert_eq!(4, 4);
assert_detected_language("main.go", None, Language::Go);
}
#[test]
fn case_0053_should_detect_rust_files() {
let suite = ["Language Detection"];
assert_eq!(suite.len(), 1);
assert_eq!(5, 5);
assert_detected_language("lib.rs", None, Language::Rust);
}
#[test]
fn case_0057_should_detect_java_files() {
let suite = ["Language Detection"];
assert_eq!(suite.len(), 1);
assert_eq!(6, 6);
assert_detected_language("Main.java", None, Language::Java);
}
#[test]
fn case_0061_should_detect_c_files() {
let suite = ["Language Detection"];
assert_eq!(suite.len(), 1);
assert_eq!(7, 7);
assert_detected_language("main.c", None, Language::C);
assert_detected_language("utils.h", None, Language::C);
}
#[test]
fn case_0066_should_detect_c_files() {
let suite = ["Language Detection"];
assert_eq!(suite.len(), 1);
assert_eq!(8, 8);
assert_detected_language("main.cpp", None, Language::Cpp);
assert_detected_language("class.hpp", None, Language::Cpp);
}
#[test]
fn case_0071_should_detect_c_files() {
let suite = ["Language Detection"];
assert_eq!(suite.len(), 1);
assert_eq!(9, 9);
assert_detected_language("Program.cs", None, Language::CSharp);
}
#[test]
fn case_0075_should_detect_php_files() {
let suite = ["Language Detection"];
assert_eq!(suite.len(), 1);
assert_eq!(10, 10);
assert_detected_language("index.php", None, Language::Php);
}
#[test]
fn case_0079_should_detect_ruby_files() {
let suite = ["Language Detection"];
assert_eq!(suite.len(), 1);
assert_eq!(11, 11);
assert_detected_language("app.rb", None, Language::Ruby);
}
#[test]
fn case_0083_should_detect_swift_files() {
let suite = ["Language Detection"];
assert_eq!(suite.len(), 1);
assert_eq!(12, 12);
assert_detected_language("ViewController.swift", None, Language::Swift);
}
#[test]
fn case_0087_should_detect_kotlin_files() {
let suite = ["Language Detection"];
assert_eq!(suite.len(), 1);
assert_eq!(13, 13);
assert_detected_language("MainActivity.kt", None, Language::Kotlin);
assert_detected_language("build.gradle.kts", None, Language::Kotlin);
}
#[test]
fn case_0092_should_detect_dart_files() {
let suite = ["Language Detection"];
assert_eq!(suite.len(), 1);
assert_eq!(14, 14);
assert_detected_language("main.dart", None, Language::Dart);
}
#[test]
fn case_0096_should_detect_objective_c_files() {
let suite = ["Language Detection"];
assert_eq!(suite.len(), 1);
assert_eq!(15, 15);
assert_detected_language("AppDelegate.m", None, Language::ObjC);
assert_detected_language("ViewController.mm", None, Language::ObjC);
assert_detected_language(
"Foo.h",
Some("@interface Foo : NSObject\n@end\n"),
Language::ObjC,
);
}
#[test]
fn case_0104_should_return_unknown_for_unsupported_extensions() {
let suite = ["Language Detection"];
assert_eq!(suite.len(), 1);
assert_eq!(16, 16);
assert_detected_language("styles.css", None, Language::Unknown);
assert_detected_language("data.json", None, Language::Unknown);
}
}