mirror of
				https://github.com/sharkdp/bat.git
				synced 2025-10-30 22:54:07 +00:00 
			
		
		
		
	Add Groovy syntax test.
This commit is contained in:
		
				
					committed by
					
						 David Peter
						David Peter
					
				
			
			
				
	
			
			
			
						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" | ||||
		Reference in New Issue
	
	Block a user