mirror of
https://github.com/sharkdp/bat.git
synced 2025-01-31 10:11:07 +00:00
Add Groovy syntax test.
This commit is contained in:
parent
85ff81f238
commit
e6c3f96931
77
tests/syntax-tests/highlighted/Groovy/test.groovy
Normal file
77
tests/syntax-tests/highlighted/Groovy/test.groovy
Normal file
@ -0,0 +1,77 @@
|
||||
[38;2;248;248;242minterface [0m[3;38;2;102;217;239mDisplay[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
|
||||
[38;2;248;248;242m [0m[3;38;2;102;217;239mString[0m[38;2;248;248;242m [0m[38;2;248;248;242masText[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m
|
||||
[38;2;248;248;242m}[0m
|
||||
|
||||
[38;2;248;248;242mtrait [0m[3;38;2;102;217;239mEntity[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
|
||||
[38;2;248;248;242m [0m[3;38;2;102;217;239mInteger[0m[38;2;248;248;242m id[0m
|
||||
[38;2;248;248;242m}[0m
|
||||
|
||||
[3;38;2;102;217;239mclass[0m[38;2;248;248;242m [0m[38;2;166;226;46mProduct[0m[38;2;248;248;242m [0m[38;2;249;38;114mimplements[0m[38;2;248;248;242m [0m[3;4;38;2;166;226;46mEntity[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;4;38;2;166;226;46mDisplay[0m[38;2;248;248;242m {[0m
|
||||
[38;2;248;248;242m [0m[38;2;249;38;114mpublic[0m[38;2;248;248;242m [0m[3;38;2;102;217;239mString[0m[38;2;248;248;242m name[0m
|
||||
[38;2;248;248;242m [0m[38;2;249;38;114mpublic[0m[38;2;248;248;242m [0m[3;38;2;102;217;239mBoolean[0m[38;2;248;248;242m available[0m
|
||||
[38;2;248;248;242m [0m[38;2;249;38;114mpublic[0m[38;2;248;248;242m [0m[3;38;2;102;217;239mFloat[0m[38;2;248;248;242m price[0m
|
||||
|
||||
[38;2;248;248;242m [0m[38;2;249;38;114mprivate[0m[38;2;248;248;242m [0m[3;38;2;102;217;239mString[0m[38;2;248;248;242m key[0m
|
||||
[38;2;248;248;242m [0m[38;2;249;38;114mprotected[0m[38;2;248;248;242m [0m[3;38;2;102;217;239mString[0m[38;2;248;248;242m data[0m
|
||||
|
||||
[38;2;248;248;242m [0m[38;2;117;113;94m/**[0m
|
||||
[38;2;117;113;94m [0m[38;2;117;113;94m*[0m[38;2;117;113;94m Creates a new product instance.[0m
|
||||
[38;2;117;113;94m [0m[38;2;117;113;94m*[0m[38;2;117;113;94m [0m[38;2;249;38;114m@[0m[38;2;249;38;114mparam[0m[38;2;117;113;94m [0m[3;38;2;253;151;31mid[0m[38;2;117;113;94m Product ID.[0m
|
||||
[38;2;117;113;94m [0m[38;2;117;113;94m*[0m[38;2;117;113;94m [0m[38;2;249;38;114m@[0m[38;2;249;38;114mparam[0m[38;2;117;113;94m [0m[3;38;2;253;151;31mname[0m[38;2;117;113;94m Product name.[0m
|
||||
[38;2;117;113;94m [0m[38;2;117;113;94m*[0m[38;2;117;113;94m [0m[38;2;249;38;114m@[0m[38;2;249;38;114mparam[0m[38;2;117;113;94m [0m[3;38;2;253;151;31mavailable[0m[38;2;117;113;94m Product availability.[0m
|
||||
[38;2;117;113;94m [0m[38;2;117;113;94m*[0m[38;2;117;113;94m [0m[38;2;249;38;114m@[0m[38;2;249;38;114mparam[0m[38;2;117;113;94m [0m[3;38;2;253;151;31mprice[0m[38;2;117;113;94m Product price.[0m
|
||||
[38;2;117;113;94m [0m[38;2;117;113;94m*[0m[38;2;117;113;94m [0m[38;2;249;38;114m@[0m[38;2;249;38;114mparam[0m[38;2;117;113;94m [0m[3;38;2;253;151;31mkey[0m[38;2;117;113;94m Product key.[0m
|
||||
[38;2;117;113;94m [0m[38;2;117;113;94m*[0m[38;2;117;113;94m [0m[38;2;249;38;114m@[0m[38;2;249;38;114mparam[0m[38;2;117;113;94m [0m[3;38;2;253;151;31mdata[0m[38;2;117;113;94m Product internal data.[0m
|
||||
[38;2;117;113;94m [0m[38;2;117;113;94m*/[0m
|
||||
[38;2;248;248;242m [0m[38;2;166;226;46mProduct[0m[38;2;248;248;242m([0m[3;38;2;253;151;31mid[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31mname[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31mavailable[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31mprice[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31mkey[0m[38;2;248;248;242m = "[0m[3;38;2;253;151;31mkey[0m[38;2;248;248;242m"[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31mdata[0m[38;2;248;248;242m = "[0m[3;38;2;102;217;239mint[0m[3;38;2;253;151;31mernal[0m[38;2;248;248;242m"[0m[38;2;248;248;242m)[0m[38;2;248;248;242m {[0m
|
||||
[38;2;248;248;242m [0m[38;2;255;255;255mthis[0m[38;2;248;248;242m.[0m[38;2;248;248;242mid [0m[38;2;249;38;114m=[0m[38;2;248;248;242m id[0m
|
||||
[38;2;248;248;242m [0m[38;2;255;255;255mthis[0m[38;2;248;248;242m.[0m[38;2;248;248;242mname [0m[38;2;249;38;114m=[0m[38;2;248;248;242m name[0m
|
||||
[38;2;248;248;242m [0m[38;2;255;255;255mthis[0m[38;2;248;248;242m.[0m[38;2;248;248;242mavailable [0m[38;2;249;38;114m=[0m[38;2;248;248;242m available[0m
|
||||
[38;2;248;248;242m [0m[38;2;255;255;255mthis[0m[38;2;248;248;242m.[0m[38;2;248;248;242mprice [0m[38;2;249;38;114m=[0m[38;2;248;248;242m price[0m
|
||||
[38;2;248;248;242m [0m[38;2;255;255;255mthis[0m[38;2;248;248;242m.[0m[38;2;248;248;242mkey [0m[38;2;249;38;114m=[0m[38;2;248;248;242m key[0m
|
||||
[38;2;248;248;242m [0m[38;2;255;255;255mthis[0m[38;2;248;248;242m.[0m[38;2;248;248;242mdata [0m[38;2;249;38;114m=[0m[38;2;248;248;242m data[0m
|
||||
[38;2;248;248;242m }[0m
|
||||
|
||||
[38;2;248;248;242m [0m[38;2;117;113;94m/**[0m[38;2;117;113;94m@[0m
|
||||
[38;2;117;113;94m * Returns product data as text.[0m
|
||||
[38;2;117;113;94m [0m[38;2;117;113;94m*[0m[38;2;117;113;94m [0m[38;2;249;38;114m@[0m[38;2;249;38;114mreturn[0m[38;2;117;113;94m Data string.[0m
|
||||
[38;2;117;113;94m [0m[38;2;117;113;94m*/[0m
|
||||
[38;2;248;248;242m [0m[3;38;2;102;217;239mString[0m[38;2;248;248;242m [0m[38;2;166;226;46masText[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m {[0m
|
||||
[38;2;248;248;242m [0m[38;2;249;38;114mreturn[0m[38;2;248;248;242m [0m[38;2;230;219;116m"""[0m[38;2;230;219;116mID [[0m[38;2;230;219;116m${[0m[38;2;230;219;116mid[0m[38;2;230;219;116m}[0m[38;2;230;219;116m] Name [[0m[38;2;230;219;116m${[0m[38;2;230;219;116mname[0m[38;2;230;219;116m}[0m[38;2;230;219;116m] Available [[0m[38;2;230;219;116m${[0m[38;2;230;219;116mavailable[0m[38;2;230;219;116m}[0m[38;2;230;219;116m] Price [[0m[38;2;230;219;116m${[0m[38;2;230;219;116mprice[0m[38;2;230;219;116m}[0m[38;2;230;219;116m][0m[38;2;230;219;116m"""[0m
|
||||
[38;2;248;248;242m }[0m
|
||||
[38;2;248;248;242m}[0m
|
||||
|
||||
[38;2;117;113;94m/*[0m[38;2;117;113;94m Creates a new product instance [0m[38;2;117;113;94m*/[0m
|
||||
[3;38;2;102;217;239mdef[0m[38;2;248;248;242m product [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;249;38;114mnew[0m[38;2;248;248;242m [0m[3;38;2;102;217;239mProduct[0m[38;2;248;248;242m([0m[38;2;190;132;255m1[0m[38;2;248;248;242m, [0m[38;2;230;219;116m"[0m[38;2;230;219;116mT-Shirt[0m[38;2;230;219;116m"[0m[38;2;248;248;242m, [0m[38;2;190;132;255mtrue[0m[38;2;248;248;242m, [0m[38;2;190;132;255m15.00[0m[38;2;248;248;242m)[0m
|
||||
|
||||
[38;2;102;217;239mprintln[0m[38;2;248;248;242m(product[0m[38;2;248;248;242m.[0m[38;2;248;248;242masText[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m
|
||||
|
||||
[38;2;248;248;242mproduct[0m[38;2;248;248;242m.[0m[38;2;248;248;242mavailable [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;190;132;255mfalse[0m
|
||||
[38;2;248;248;242mproduct[0m[38;2;248;248;242m.[0m[38;2;248;248;242mprice [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;190;132;255m0.0[0m
|
||||
|
||||
[38;2;117;113;94m//[0m[38;2;117;113;94m Check values[0m
|
||||
[38;2;249;38;114massert[0m[38;2;248;248;242m product[0m[38;2;248;248;242m.[0m[38;2;248;248;242masText[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m==[0m[38;2;248;248;242m [0m[38;2;230;219;116m"[0m[38;2;230;219;116mID [1] Name [T-Shirt] Available [false] Price [0.0][0m[38;2;230;219;116m"[0m
|
||||
|
||||
[3;38;2;102;217;239mdef[0m[38;2;248;248;242m [0m[38;2;166;226;46mfactorial[0m[38;2;248;248;242m([0m[3;38;2;102;217;239mInteger[0m[38;2;248;248;242m [0m[3;38;2;253;151;31mvalue[0m[38;2;248;248;242m)[0m[38;2;248;248;242m {[0m
|
||||
[38;2;248;248;242m [0m[38;2;249;38;114mif[0m[38;2;248;248;242m (value [0m[38;2;249;38;114m<=[0m[38;2;248;248;242m [0m[38;2;190;132;255m1[0m[38;2;248;248;242m) [0m[38;2;248;248;242m{[0m
|
||||
[38;2;248;248;242m [0m[38;2;249;38;114mreturn[0m[38;2;248;248;242m [0m[38;2;190;132;255m1[0m
|
||||
[38;2;248;248;242m [0m[38;2;248;248;242m}[0m[38;2;248;248;242m [0m[38;2;249;38;114melse[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
|
||||
[38;2;248;248;242m [0m[38;2;249;38;114mreturn[0m[38;2;248;248;242m value [0m[38;2;249;38;114m*[0m[38;2;248;248;242m [0m[38;2;248;248;242mfactorial[0m[38;2;248;248;242m([0m[38;2;248;248;242mvalue [0m[38;2;249;38;114m-[0m[38;2;248;248;242m [0m[38;2;190;132;255m1[0m[38;2;248;248;242m)[0m
|
||||
[38;2;248;248;242m [0m[38;2;248;248;242m}[0m
|
||||
[38;2;248;248;242m}[0m
|
||||
|
||||
[38;2;249;38;114massert[0m[38;2;248;248;242m [0m[38;2;248;248;242mfactorial[0m[38;2;248;248;242m([0m[38;2;190;132;255m5[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m==[0m[38;2;248;248;242m [0m[38;2;190;132;255m120[0m
|
||||
|
||||
[38;2;249;38;114mstatic[0m[38;2;248;248;242m [0m[3;38;2;102;217;239mString[0m[38;2;248;248;242m [0m[38;2;166;226;46mjoin[0m[38;2;248;248;242m([0m[3;38;2;102;217;239mList<String>[0m[38;2;248;248;242m [0m[3;38;2;253;151;31mlist[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;102;217;239mString[0m[38;2;248;248;242m [0m[3;38;2;253;151;31mseparator[0m[38;2;248;248;242m)[0m[38;2;248;248;242m {[0m
|
||||
[38;2;248;248;242m [0m[3;38;2;102;217;239mString[0m[38;2;248;248;242m data [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;230;219;116m"[0m[38;2;230;219;116m"[0m
|
||||
|
||||
[38;2;248;248;242m list[0m[38;2;248;248;242m.[0m[38;2;248;248;242meach [0m[38;2;248;248;242m{[0m[38;2;248;248;242m item [0m[38;2;249;38;114m->[0m
|
||||
[38;2;248;248;242m data [0m[38;2;249;38;114m+[0m[38;2;249;38;114m=[0m[38;2;248;248;242m item [0m[38;2;249;38;114m+[0m[38;2;248;248;242m separator[0m
|
||||
[38;2;248;248;242m [0m[38;2;248;248;242m}[0m
|
||||
|
||||
[38;2;248;248;242m data [0m[38;2;249;38;114m=[0m[38;2;248;248;242m data[0m[38;2;248;248;242m.[0m[38;2;248;248;242msubstring[0m[38;2;248;248;242m([0m[38;2;190;132;255m0[0m[38;2;248;248;242m,[0m[38;2;248;248;242m data[0m[38;2;248;248;242m.[0m[38;2;248;248;242mlength[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m-[0m[38;2;248;248;242m [0m[38;2;190;132;255m1[0m[38;2;248;248;242m)[0m
|
||||
|
||||
[38;2;248;248;242m [0m[38;2;249;38;114mreturn[0m[38;2;248;248;242m data[0m
|
||||
[38;2;248;248;242m}[0m
|
||||
|
||||
[38;2;249;38;114massert[0m[38;2;248;248;242m [0m[38;2;248;248;242mjoin[0m[38;2;248;248;242m([0m[38;2;248;248;242m[[0m[38;2;230;219;116m"[0m[38;2;230;219;116mg[0m[38;2;230;219;116m"[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;230;219;116m"[0m[38;2;230;219;116mr[0m[38;2;230;219;116m"[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;230;219;116m"[0m[38;2;230;219;116mo[0m[38;2;230;219;116m"[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;230;219;116m"[0m[38;2;230;219;116mo[0m[38;2;230;219;116m"[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;230;219;116m"[0m[38;2;230;219;116mv[0m[38;2;230;219;116m"[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;230;219;116m"[0m[38;2;230;219;116my[0m[38;2;230;219;116m"[0m[38;2;248;248;242m][0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;230;219;116m"[0m[38;2;230;219;116m [0m[38;2;230;219;116m"[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m==[0m[38;2;248;248;242m [0m[38;2;230;219;116m"[0m[38;2;230;219;116mg r o o v y[0m[38;2;230;219;116m"[0m
|
77
tests/syntax-tests/source/Groovy/test.groovy
Normal file
77
tests/syntax-tests/source/Groovy/test.groovy
Normal file
@ -0,0 +1,77 @@
|
||||
interface Display {
|
||||
String asText()
|
||||
}
|
||||
|
||||
trait Entity {
|
||||
Integer id
|
||||
}
|
||||
|
||||
class Product implements Entity, Display {
|
||||
public String name
|
||||
public Boolean available
|
||||
public Float price
|
||||
|
||||
private String key
|
||||
protected String data
|
||||
|
||||
/**
|
||||
* Creates a new product instance.
|
||||
* @param id Product ID.
|
||||
* @param name Product name.
|
||||
* @param available Product availability.
|
||||
* @param price Product price.
|
||||
* @param key Product key.
|
||||
* @param data Product internal data.
|
||||
*/
|
||||
Product(id, name, available, price, key = "key", data = "internal") {
|
||||
this.id = id
|
||||
this.name = name
|
||||
this.available = available
|
||||
this.price = price
|
||||
this.key = key
|
||||
this.data = data
|
||||
}
|
||||
|
||||
/**@
|
||||
* Returns product data as text.
|
||||
* @return Data string.
|
||||
*/
|
||||
String asText() {
|
||||
return """ID [${id}] Name [${name}] Available [${available}] Price [${price}]"""
|
||||
}
|
||||
}
|
||||
|
||||
/* Creates a new product instance */
|
||||
def product = new Product(1, "T-Shirt", true, 15.00)
|
||||
|
||||
println(product.asText())
|
||||
|
||||
product.available = false
|
||||
product.price = 0.0
|
||||
|
||||
// Check values
|
||||
assert product.asText() == "ID [1] Name [T-Shirt] Available [false] Price [0.0]"
|
||||
|
||||
def factorial(Integer value) {
|
||||
if (value <= 1) {
|
||||
return 1
|
||||
} else {
|
||||
return value * factorial(value - 1)
|
||||
}
|
||||
}
|
||||
|
||||
assert factorial(5) == 120
|
||||
|
||||
static String join(List<String> list, String separator) {
|
||||
String data = ""
|
||||
|
||||
list.each { item ->
|
||||
data += item + separator
|
||||
}
|
||||
|
||||
data = data.substring(0, data.length() - 1)
|
||||
|
||||
return data
|
||||
}
|
||||
|
||||
assert join(["g", "r", "o", "o", "v", "y"], " ") == "g r o o v y"
|
Loading…
x
Reference in New Issue
Block a user