| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- package main
- import (
- "fmt"
- "log"
- "mermaid-go/pkg/parser"
- "mermaid-go/pkg/renderer"
- )
- func main() {
- fmt.Println("Testing Enhanced Class Diagram Features:")
- // Test 1: Interface types
- testInterface()
- fmt.Println()
- // Test 2: Abstract classes
- testAbstractClass()
- fmt.Println()
- // Test 3: Method parameters and return types
- testMethodsAndParameters()
- fmt.Println()
- }
- func testInterface() {
- fmt.Println("--- Testing Interface ---")
- input := `classDiagram
- class Shape {
- <<interface>>
- +area() double
- +perimeter() double
- }
- Shape <|.. Circle
- Shape <|.. Rectangle`
- mermaidParser := parser.NewMermaidParser()
- diagram, err := mermaidParser.Parse(input)
- if err != nil {
- log.Printf("Failed to parse class diagram: %v", err)
- return
- }
- mermaidRenderer := renderer.NewMermaidRenderer()
- output, err := mermaidRenderer.Render(diagram)
- if err != nil {
- log.Printf("Failed to render class diagram: %v", err)
- return
- }
- fmt.Printf("Input:\n%s\n", input)
- fmt.Printf("Parsed and rendered:\n%s", output)
- }
- func testAbstractClass() {
- fmt.Println("--- Testing Abstract Class ---")
- input := `classDiagram
- class Animal {
- <<abstract>>
- +name String
- +age int
- +makeSound()* void
- +move() void
- }`
- mermaidParser := parser.NewMermaidParser()
- diagram, err := mermaidParser.Parse(input)
- if err != nil {
- log.Printf("Failed to parse class diagram: %v", err)
- return
- }
- mermaidRenderer := renderer.NewMermaidRenderer()
- output, err := mermaidRenderer.Render(diagram)
- if err != nil {
- log.Printf("Failed to render class diagram: %v", err)
- return
- }
- fmt.Printf("Input:\n%s\n", input)
- fmt.Printf("Parsed and rendered:\n%s", output)
- }
- func testMethodsAndParameters() {
- fmt.Println("--- Testing Methods with Parameters ---")
- input := `classDiagram
- class Calculator {
- +add(a int, b int) int
- +subtract(a int, b int) int
- +multiply(a int, b int) int
- +divide(a int, b int) float
- -validateInput(value int) bool
- }`
- mermaidParser := parser.NewMermaidParser()
- diagram, err := mermaidParser.Parse(input)
- if err != nil {
- log.Printf("Failed to parse class diagram: %v", err)
- return
- }
- mermaidRenderer := renderer.NewMermaidRenderer()
- output, err := mermaidRenderer.Render(diagram)
- if err != nil {
- log.Printf("Failed to render class diagram: %v", err)
- return
- }
- fmt.Printf("Input:\n%s\n", input)
- fmt.Printf("Parsed and rendered:\n%s", output)
- }
|