import pandas as pd import numpy as np class MockCropModel: def __init__(self): self.knowledge_base = { ('loamy', 'tropical'): ['Cassava', 'Banana', 'Rice'], ('clay', 'temperate'): ['Wheat', 'Potatoes', 'Barley'], ('sandy', 'arid'): ['Sorghum', 'Millet', 'Dates'], ('default', 'default'): ['Maize', 'Beans', 'Soybeans'] } def predict(self, soil_type, climate): soil = soil_type.lower() climate = climate.lower() for key in self.knowledge_base: if soil in key[0] and climate in key[1]: crops = self.knowledge_base[key] break else: crops = self.knowledge_base[('default', 'default')] confidences = np.linspace(0.9, 0.7, num=len(crops)) return pd.DataFrame({ 'Crop': crops, 'Confidence': confidences, 'Soil Type': soil_type, 'Climate Zone': climate })