=== RUN   TestApplyClusterAwareness
=== RUN   TestApplyClusterAwareness/Subnet_with_existing_cluster_nodes_gets_bonus
=== RUN   TestApplyClusterAwareness/Subnet_without_existing_nodes_gets_penalty
=== RUN   TestApplyClusterAwareness/No_cluster_information_returns_base_score
=== RUN   TestApplyClusterAwareness/Multiple_nodes_in_subnet_increases_bonus
--- PASS: TestApplyClusterAwareness (0.00s)
    --- PASS: TestApplyClusterAwareness/Subnet_with_existing_cluster_nodes_gets_bonus (0.00s)
    --- PASS: TestApplyClusterAwareness/Subnet_without_existing_nodes_gets_penalty (0.00s)
    --- PASS: TestApplyClusterAwareness/No_cluster_information_returns_base_score (0.00s)
    --- PASS: TestApplyClusterAwareness/Multiple_nodes_in_subnet_increases_bonus (0.00s)
=== RUN   TestGetExistingClusterSubnets
=== RUN   TestGetExistingClusterSubnets/No_Kubernetes_client_returns_empty_map
=== RUN   TestGetExistingClusterSubnets/Extract_subnets_from_nodes_with_various_configurations
=== RUN   TestGetExistingClusterSubnets/Handle_Kubernetes_API_errors_gracefully
--- PASS: TestGetExistingClusterSubnets (0.00s)
    --- PASS: TestGetExistingClusterSubnets/No_Kubernetes_client_returns_empty_map (0.00s)
    --- PASS: TestGetExistingClusterSubnets/Extract_subnets_from_nodes_with_various_configurations (0.00s)
    --- PASS: TestGetExistingClusterSubnets/Handle_Kubernetes_API_errors_gracefully (0.00s)
=== RUN   TestExtractSubnetFromNode
=== RUN   TestExtractSubnetFromNode/No_extractable_subnet_information
=== RUN   TestExtractSubnetFromNode/Node_with_only_external_IP
--- PASS: TestExtractSubnetFromNode (0.00s)
    --- PASS: TestExtractSubnetFromNode/No_extractable_subnet_information (0.00s)
    --- PASS: TestExtractSubnetFromNode/Node_with_only_external_IP (0.00s)
=== RUN   TestParseSubnetFromProviderID
=== RUN   TestParseSubnetFromProviderID/malformed_provider_ID_-_wrong_prefix
=== RUN   TestParseSubnetFromProviderID/malformed_provider_ID_-_missing_parts
=== RUN   TestParseSubnetFromProviderID/empty_provider_ID
=== RUN   TestParseSubnetFromProviderID/provider_ID_with_only_slashes
--- PASS: TestParseSubnetFromProviderID (0.00s)
    --- PASS: TestParseSubnetFromProviderID/malformed_provider_ID_-_wrong_prefix (0.00s)
    --- PASS: TestParseSubnetFromProviderID/malformed_provider_ID_-_missing_parts (0.00s)
    --- PASS: TestParseSubnetFromProviderID/empty_provider_ID (0.00s)
    --- PASS: TestParseSubnetFromProviderID/provider_ID_with_only_slashes (0.00s)
=== RUN   TestFindSubnetByIP
=== RUN   TestFindSubnetByIP/valid_IPv4_address
=== RUN   TestFindSubnetByIP/valid_IPv6_address
=== RUN   TestFindSubnetByIP/invalid_IP_address
=== RUN   TestFindSubnetByIP/empty_IP_address
=== RUN   TestFindSubnetByIP/localhost_IP
--- PASS: TestFindSubnetByIP (0.00s)
    --- PASS: TestFindSubnetByIP/valid_IPv4_address (0.00s)
    --- PASS: TestFindSubnetByIP/valid_IPv6_address (0.00s)
    --- PASS: TestFindSubnetByIP/invalid_IP_address (0.00s)
    --- PASS: TestFindSubnetByIP/empty_IP_address (0.00s)
    --- PASS: TestFindSubnetByIP/localhost_IP (0.00s)
=== RUN   TestGetSubnetForInstance
=== RUN   TestGetSubnetForInstance/nil_client_returns_empty
=== RUN   TestGetSubnetForInstance/empty_instance_ID
--- PASS: TestGetSubnetForInstance (0.00s)
    --- PASS: TestGetSubnetForInstance/nil_client_returns_empty (0.00s)
    --- PASS: TestGetSubnetForInstance/empty_instance_ID (0.00s)
=== RUN   TestClusterAwarenessIntegration
=== RUN   TestClusterAwarenessIntegration/Real-world_scenario:_cluster-aware_subnet_selection
    cluster_awareness_test.go:357: Cluster subnet score: 157.19
    cluster_awareness_test.go:358: Isolated subnet score: 91.48
=== RUN   TestClusterAwarenessIntegration/Multi-zone_cluster_awareness
    cluster_awareness_test.go:431: Zone2 cluster subnet scores higher (128.59) than zone1 (119.06) due to more available IPs
--- PASS: TestClusterAwarenessIntegration (0.00s)
    --- PASS: TestClusterAwarenessIntegration/Real-world_scenario:_cluster-aware_subnet_selection (0.00s)
    --- PASS: TestClusterAwarenessIntegration/Multi-zone_cluster_awareness (0.00s)
=== RUN   TestSubnetNetworkValidation
=== RUN   TestSubnetNetworkValidation/CIDR_validation_helper
=== RUN   TestSubnetNetworkValidation/CIDR_validation_helper/10.240.1.100_in_10.240.1.0/24
=== RUN   TestSubnetNetworkValidation/CIDR_validation_helper/10.240.1.255_in_10.240.1.0/24
=== RUN   TestSubnetNetworkValidation/CIDR_validation_helper/10.240.2.100_in_10.240.1.0/24
=== RUN   TestSubnetNetworkValidation/CIDR_validation_helper/192.168.1.1_in_192.168.0.0/16
=== RUN   TestSubnetNetworkValidation/CIDR_validation_helper/172.16.0.1_in_192.168.0.0/16
=== RUN   TestSubnetNetworkValidation/CIDR_validation_helper/invalid-ip_in_10.240.1.0/24
=== RUN   TestSubnetNetworkValidation/Subnet_network_isolation_detection
    cluster_awareness_test.go:500: API server 10.243.65.4 reachable from cluster subnet 10.243.65.0/24: true
    cluster_awareness_test.go:502: API server 10.243.65.4 reachable from isolated subnet 10.243.64.0/24: false
--- PASS: TestSubnetNetworkValidation (0.00s)
    --- PASS: TestSubnetNetworkValidation/CIDR_validation_helper (0.00s)
        --- PASS: TestSubnetNetworkValidation/CIDR_validation_helper/10.240.1.100_in_10.240.1.0/24 (0.00s)
        --- PASS: TestSubnetNetworkValidation/CIDR_validation_helper/10.240.1.255_in_10.240.1.0/24 (0.00s)
        --- PASS: TestSubnetNetworkValidation/CIDR_validation_helper/10.240.2.100_in_10.240.1.0/24 (0.00s)
        --- PASS: TestSubnetNetworkValidation/CIDR_validation_helper/192.168.1.1_in_192.168.0.0/16 (0.00s)
        --- PASS: TestSubnetNetworkValidation/CIDR_validation_helper/172.16.0.1_in_192.168.0.0/16 (0.00s)
        --- PASS: TestSubnetNetworkValidation/CIDR_validation_helper/invalid-ip_in_10.240.1.0/24 (0.00s)
    --- PASS: TestSubnetNetworkValidation/Subnet_network_isolation_detection (0.00s)
=== RUN   TestProvider_Creation
--- PASS: TestProvider_Creation (0.00s)
=== RUN   TestConvertVPCSubnetToSubnetInfo
--- PASS: TestConvertVPCSubnetToSubnetInfo (0.00s)
=== RUN   TestConvertVPCSubnetToSubnetInfo_EdgeCases
=== RUN   TestConvertVPCSubnetToSubnetInfo_EdgeCases/subnet_with_nil_values
=== RUN   TestConvertVPCSubnetToSubnetInfo_EdgeCases/subnet_with_partial_data
=== RUN   TestConvertVPCSubnetToSubnetInfo_EdgeCases/subnet_with_zero_available_IPs
--- PASS: TestConvertVPCSubnetToSubnetInfo_EdgeCases (0.00s)
    --- PASS: TestConvertVPCSubnetToSubnetInfo_EdgeCases/subnet_with_nil_values (0.00s)
    --- PASS: TestConvertVPCSubnetToSubnetInfo_EdgeCases/subnet_with_partial_data (0.00s)
    --- PASS: TestConvertVPCSubnetToSubnetInfo_EdgeCases/subnet_with_zero_available_IPs (0.00s)
=== RUN   TestCalculateSubnetScore
=== RUN   TestCalculateSubnetScore/high_capacity_available_subnet
=== RUN   TestCalculateSubnetScore/low_capacity_subnet
=== RUN   TestCalculateSubnetScore/perfect_subnet_-_all_IPs_available
--- PASS: TestCalculateSubnetScore (0.00s)
    --- PASS: TestCalculateSubnetScore/high_capacity_available_subnet (0.00s)
    --- PASS: TestCalculateSubnetScore/low_capacity_subnet (0.00s)
    --- PASS: TestCalculateSubnetScore/perfect_subnet_-_all_IPs_available (0.00s)
=== RUN   TestVPCSubnetProvider_Interface
=== RUN   TestVPCSubnetProvider_Interface/NewProvider
=== RUN   TestVPCSubnetProvider_Interface/SelectSubnets_with_nil_client
=== RUN   TestVPCSubnetProvider_Interface/ListSubnets_with_nil_client
=== RUN   TestVPCSubnetProvider_Interface/GetSubnet_with_nil_client
--- PASS: TestVPCSubnetProvider_Interface (0.00s)
    --- PASS: TestVPCSubnetProvider_Interface/NewProvider (0.00s)
    --- PASS: TestVPCSubnetProvider_Interface/SelectSubnets_with_nil_client (0.00s)
    --- PASS: TestVPCSubnetProvider_Interface/ListSubnets_with_nil_client (0.00s)
    --- PASS: TestVPCSubnetProvider_Interface/GetSubnet_with_nil_client (0.00s)
=== RUN   TestSubnetSelection_NetworkConnectivity
=== RUN   TestSubnetSelection_NetworkConnectivity/cluster_nodes_in_first-second_subnet_scenario
    provider_test.go:300: BUG: Auto-selection algorithm prefers isolated subnet (score: 96.48) over cluster subnet (score: 67.19)
    provider_test.go:302: This is why new nodes cannot join the cluster - they're placed in isolated network
=== RUN   TestSubnetSelection_NetworkConnectivity/subnet_selection_should_prioritize_cluster_connectivity
=== RUN   TestSubnetSelection_NetworkConnectivity/multi-zone_cluster_subnet_distribution
--- PASS: TestSubnetSelection_NetworkConnectivity (0.00s)
    --- PASS: TestSubnetSelection_NetworkConnectivity/cluster_nodes_in_first-second_subnet_scenario (0.00s)
    --- PASS: TestSubnetSelection_NetworkConnectivity/subnet_selection_should_prioritize_cluster_connectivity (0.00s)
    --- PASS: TestSubnetSelection_NetworkConnectivity/multi-zone_cluster_subnet_distribution (0.00s)
=== RUN   TestSubnetInfo_Structure
--- PASS: TestSubnetInfo_Structure (0.00s)
=== RUN   TestSubnetScore_Struct
--- PASS: TestSubnetScore_Struct (0.00s)
=== RUN   TestSubnetFiltering_Logic
=== RUN   TestSubnetFiltering_Logic/filter_by_state
=== RUN   TestSubnetFiltering_Logic/filter_by_minimum_available_IPs
--- PASS: TestSubnetFiltering_Logic (0.00s)
    --- PASS: TestSubnetFiltering_Logic/filter_by_state (0.00s)
    --- PASS: TestSubnetFiltering_Logic/filter_by_minimum_available_IPs (0.00s)
=== RUN   TestSubnetSelectionLogic
=== RUN   TestSubnetSelectionLogic/balanced_strategy
=== RUN   TestSubnetSelectionLogic/availability_first
--- PASS: TestSubnetSelectionLogic (0.00s)
    --- PASS: TestSubnetSelectionLogic/balanced_strategy (0.00s)
    --- PASS: TestSubnetSelectionLogic/availability_first (0.00s)
=== RUN   TestPlacementStrategies
--- PASS: TestPlacementStrategies (0.00s)
=== RUN   TestCalculateSubnetScore_Enhanced
=== RUN   TestCalculateSubnetScore_Enhanced/high_capacity_subnet_with_good_availability
=== RUN   TestCalculateSubnetScore_Enhanced/worst_subnet_-_no_IPs_available
--- PASS: TestCalculateSubnetScore_Enhanced (0.00s)
    --- PASS: TestCalculateSubnetScore_Enhanced/high_capacity_subnet_with_good_availability (0.00s)
    --- PASS: TestCalculateSubnetScore_Enhanced/worst_subnet_-_no_IPs_available (0.00s)
=== RUN   TestProviderWithCache
--- PASS: TestProviderWithCache (0.00s)
=== RUN   TestProvider_NewProvider
=== RUN   TestProvider_NewProvider/successful_creation
=== RUN   TestProvider_NewProvider/nil_client
--- PASS: TestProvider_NewProvider (0.00s)
    --- PASS: TestProvider_NewProvider/successful_creation (0.00s)
    --- PASS: TestProvider_NewProvider/nil_client (0.00s)
=== RUN   TestProvider_Interface
--- PASS: TestProvider_Interface (0.00s)
=== RUN   TestProvider_MethodSignatures
--- PASS: TestProvider_MethodSignatures (0.00s)
PASS
ok  	github.com/kubernetes-sigs/karpenter-provider-ibm-cloud/pkg/providers/vpc/subnet	1.081s
