| summaryrefslogtreecommitdiff |
diff options
| author | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2020-11-07 14:14:44 +0100 |
|---|---|---|
| committer | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2020-11-07 14:14:44 +0100 |
| commit | 659c4440918e2e1c68cf388e9d9c7eb3e83eb4d7 (patch) | |
| tree | 66b7d30a2652e4ec17d98478afa88819145ab42d /src | |
| parent | 5b3884e1850050dcf2c6928b5ee55b65ef6d989e (diff) | |
Adds more unit tests.
Diffstat (limited to 'src')
| -rw-r--r-- | src/core/src/tonkadur/fate/v1/lang/computation/Cast.java | 80 |
1 files changed, 34 insertions, 46 deletions
diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/Cast.java b/src/core/src/tonkadur/fate/v1/lang/computation/Cast.java index 3906499..8e283c9 100644 --- a/src/core/src/tonkadur/fate/v1/lang/computation/Cast.java +++ b/src/core/src/tonkadur/fate/v1/lang/computation/Cast.java @@ -3,6 +3,7 @@ package tonkadur.fate.v1.lang.computation; import java.util.Collection; import java.util.Collections; import java.util.HashMap; +import java.util.HashSet; import java.util.Map; import java.util.Set; @@ -24,55 +25,41 @@ public class Cast extends Computation static { + Set allowed_targets; + allowed_type_changes = new HashMap<Type,Set<Type>>(); - allowed_type_changes.put - ( - Type.INT, - Type.NUMBER_TYPES - ); + /** INT to ... **********************************************************/ + allowed_targets = new HashSet<Type>(); + allowed_targets.add(Type.FLOAT); + allowed_targets.add(Type.INT); + allowed_targets.add(Type.STRING); - allowed_type_changes.put - ( - Type.FLOAT, - Type.NUMBER_TYPES - ); + allowed_type_changes.put(Type.INT, allowed_targets); - allowed_type_changes.put - ( - Type.DICT, - Collections.emptySet() - ); + /** FLOAT to ... ********************************************************/ + allowed_targets = new HashSet<Type>(); + allowed_targets.add(Type.FLOAT); + allowed_targets.add(Type.INT); + allowed_targets.add(Type.STRING); - allowed_type_changes.put - ( - Type.SET, - Collections.emptySet() - ); + allowed_type_changes.put(Type.FLOAT, allowed_targets); - allowed_type_changes.put - ( - Type.LIST, - Collections.emptySet() - ); + /** BOOL to ... *********************************************************/ + allowed_targets = new HashSet<Type>(); + allowed_targets.add(Type.BOOL); + allowed_targets.add(Type.STRING); - allowed_type_changes.put - ( - Type.BOOL, - Collections.emptySet() - ); + allowed_type_changes.put(Type.BOOL, allowed_targets); - allowed_type_changes.put - ( - Type.ANY, - Collections.singleton(Type.ANY) - ); + /** BOOL to ... *********************************************************/ + allowed_targets = new HashSet<Type>(); + allowed_targets.add(Type.BOOL); + allowed_targets.add(Type.INT); + allowed_targets.add(Type.FLOAT); + allowed_targets.add(Type.STRING); - allowed_type_changes.put - ( - Type.STRING, - Type.COMPARABLE_TYPES - ); + allowed_type_changes.put(Type.STRING, allowed_targets); } public static Collection<Type> get_allowed_casts_to (final Type t) @@ -125,14 +112,15 @@ public class Cast extends Computation (value.get_type().can_be_used_as(to)) || ( - (to.is_base_type()) - && + allowed_type_changes.containsKey ( - allowed_type_changes.get(to).contains - ( - value.get_type().get_act_as_type() - ) + value.get_type().get_act_as_type().get_base_type() ) + && + allowed_type_changes.get + ( + value.get_type().get_act_as_type().get_base_type() + ).contains(to.get_act_as_type()) ) ) { |


